18 #ifndef GZ_RENDERING_OGRE2_OGRE2DEPTHCAMERA_HH_
19 #define GZ_RENDERING_OGRE2_OGRE2DEPTHCAMERA_HH_
34 #include "gz/common/Event.hh"
35 #include "gz/common/Console.hh"
49 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
52 class Ogre2DepthCameraPrivate;
66 public:
virtual void Init()
override;
69 public:
virtual void Destroy()
override;
72 public:
virtual void CreateRenderTexture();
76 public:
virtual void CreateDepthTexture()
override;
80 private:
void CreateWorkspaceInstance();
83 public:
virtual void PreRender()
override;
86 public:
virtual void PostRender()
override;
90 public:
virtual const float *DepthData()
const override;
97 unsigned int,
const std::string &)> _subscriber)
override;
103 std::function<
void(
const float *,
unsigned int,
unsigned int,
104 unsigned int,
const std::string &)> _subscriber)
override;
107 public:
virtual void Render()
override;
111 public:
virtual void SetFarClipPlane(
const double _far)
override;
115 public:
virtual void SetNearClipPlane(
const double _near)
override;
120 public:
double NearClipPlane()
const override;
125 public:
double FarClipPlane()
const override;
128 public:
void SetShadowsDirty()
override;
131 public:
void AddRenderPass(
const RenderPassPtr &_pass)
override;
134 public:
virtual Ogre::Camera *
OgreCamera()
const override;
144 protected:
static double LimitFOV(
const double _fov);
147 protected:
void CreateCamera();
154 private:
void SetShadowsNodeDefDirty();