18 #ifndef _GAZEBO_RENDERING_WIDEANGLECAMERA_HH_
19 #define _GAZEBO_RENDERING_WIDEANGLECAMERA_HH_
35 #include "gazebo/msgs/MessageTypes.hh"
52 class WideAngleCamera;
53 class CameraLensPrivate;
54 class WideAngleCameraPrivate;
73 public:
void Init(
const double _c1,
const double _c2,
74 const std::string &_fun,
const double _f,
79 public:
void Init(
const std::string &_name);
83 public:
void Load(sdf::ElementPtr _sdf);
90 public: std::string Type()
const;
94 public:
bool IsCustom()
const;
98 public:
double C1()
const;
102 public:
double C2()
const;
106 public:
double C3()
const;
110 public:
double F()
const;
114 public: std::string Fun()
const;
118 public:
double CutOffAngle()
const;
122 public:
bool ScaleToHFOV()
const;
126 public:
void SetType(
const std::string &_type);
130 public:
void SetC1(
const double _c);
134 public:
void SetC2(
const double _c);
138 public:
void SetC3(
const double _c);
142 public:
void SetF(
const double _f);
146 public:
void SetFun(
const std::string &_fun);
150 public:
void SetCutOffAngle(
const double _angle);
155 public:
void SetScaleToHFOV(
const bool _scale);
162 public:
void SetUniformVariables(Ogre::Pass *_pass,
const float _ratio,
167 private:
void ConvertToCustom();
171 private: std::unique_ptr<CameraLensPrivate> dataPtr;
178 protected Ogre::CompositorInstance::Listener
187 const bool _autoRender =
true,
188 const int _textureSize = 256);
194 public:
void Init()
override;
197 public:
void Load()
override;
201 public:
virtual void Fini()
override;
205 public:
int EnvTextureSize()
const;
212 public:
void SetRenderTarget(Ogre::RenderTarget *_target)
override;
216 public:
void SetEnvTextureSize(
const int _size);
219 protected:
void CreateEnvCameras();
222 public:
void SetClipDist()
override;
226 protected:
void CreateEnvRenderTexture(
const std::string &_textureName);
229 protected:
void RenderImpl()
override;
235 protected:
void notifyMaterialRender(Ogre::uint32 _pass_id,
236 Ogre::MaterialPtr &_material)
override;
240 private: std::unique_ptr<WideAngleCameraPrivate> dataPtr;
Basic camera sensor.
Definition: Camera.hh:85
Camera with variable mapping function.
Definition: WideAngleCamera.hh:176
Describes a lens of a camera as amapping function of type r = c1*f*fun(theta/c2+c3) ...
Definition: WideAngleCamera.hh:59
virtual void Load()
Load the camera with default parmeters.
boost::shared_ptr< Scene > ScenePtr
Definition: RenderTypes.hh:80
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
#define GAZEBO_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system.hh:59