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;
 
  200       public: 
virtual void Fini() 
override;
 
  204       public: 
int EnvTextureSize() 
const;
 
  211       public: 
void SetRenderTarget(Ogre::RenderTarget *_target) 
override;
 
  215       public: 
void SetEnvTextureSize(
const int _size);
 
  218       protected: 
void CreateEnvCameras();
 
  221       public: 
void SetClipDist() 
override;
 
  225       protected: 
void CreateEnvRenderTexture(
const std::string &_textureName);
 
  228       protected: 
void RenderImpl() 
override;
 
  234       protected: 
void notifyMaterialRender(Ogre::uint32 _pass_id,
 
  235         Ogre::MaterialPtr &_material) 
override;
 
  239       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
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