17 #ifndef GZ_RENDERING_OGRE_OGRECAMERA_HH_
18 #define GZ_RENDERING_OGRE_OGRECAMERA_HH_
37 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
40 class OgreSelectionBuffer;
54 public:
virtual void SetHFOV(
const math::Angle &_hfov)
override;
57 public:
virtual double AspectRatio()
const override;
60 public:
virtual void SetAspectRatio(
const double _ratio)
override;
63 public:
virtual unsigned int AntiAliasing()
const override;
66 public:
virtual void SetAntiAliasing(
const unsigned int _aa)
override;
69 public:
virtual void SetFarClipPlane(
const double _far)
override;
72 public:
virtual void SetNearClipPlane(
const double _near)
override;
74 public:
virtual math::Color BackgroundColor()
const;
76 public:
virtual void SetBackgroundColor(
const math::Color &_color);
79 public:
virtual void Render()
override;
88 public:
virtual void SetProjectionMatrix(
98 public:
void SetVFOV(
double cameraVFOV)
const;
102 public:
double NearClip()
const;
106 public:
double FarClip()
const;
110 &_mousePos)
override;
114 public:
virtual void SetMaterial(
118 public:
virtual unsigned int RenderTextureGLId()
const override;
121 public:
virtual void Destroy()
override;
124 public:
virtual void SetVisibilityMask(uint32_t _mask)
override;
127 public:
virtual Ogre::Camera *
Camera()
const override;
134 protected:
virtual void Init()
override;
136 protected:
virtual void SetSelectionBuffer();
140 protected:
void SyncOgreCameraAspectRatio();
142 private:
void CreateCamera();
144 protected:
virtual void CreateRenderTexture();
148 protected:
void DestroyRenderTexture();
150 protected: Ogre::Camera *ogreCamera =
nullptr;