17 #ifndef IGNITION_RENDERING_CAMERA_HH_ 18 #define IGNITION_RENDERING_CAMERA_HH_ 25 #include "ignition/rendering/config.hh" 36 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
40 class IGNITION_RENDERING_VISIBLE
Camera :
52 public:
virtual unsigned int ImageWidth()
const = 0;
56 public:
virtual void SetImageWidth(
unsigned int _width) = 0;
60 public:
virtual unsigned int ImageHeight()
const = 0;
64 public:
virtual void SetImageHeight(
unsigned int _height) = 0;
69 public:
virtual PixelFormat ImageFormat()
const = 0;
73 public:
virtual void SetImageFormat(
PixelFormat _format) = 0;
77 public:
virtual unsigned int ImageMemorySize()
const = 0;
85 public:
virtual void SetHFOV(
const math::Angle &_angle) = 0;
89 public:
virtual double AspectRatio()
const = 0;
95 public:
virtual void SetAspectRatio(
const double _ratio) = 0;
101 public:
virtual unsigned int AntiAliasing()
const = 0;
108 public:
virtual void SetAntiAliasing(
const unsigned int _aa) = 0;
112 public:
virtual double FarClipPlane()
const = 0;
116 public:
virtual void SetFarClipPlane(
const double _far) = 0;
120 public:
virtual double NearClipPlane()
const = 0;
124 public:
virtual void SetNearClipPlane(
const double _near) = 0;
129 public:
virtual void Render() = 0;
135 public:
virtual void PostRender() = 0;
148 public:
virtual void Update() = 0;
155 public:
virtual Image CreateImage()
const = 0;
163 public:
virtual void Capture(
Image &_image) = 0;
170 public:
virtual void Copy(
Image &_image)
const = 0;
177 public:
virtual bool SaveFrame(
const std::string &_name) = 0;
182 NewFrameListener _listener) = 0;
208 public:
virtual void SetTrackTarget(
const NodePtr &_target,
210 const bool _worldFrame =
false) = 0;
214 public:
virtual NodePtr TrackTarget()
const = 0;
220 public:
virtual void SetTrackOffset(
const math::Vector3d &_offset) = 0;
230 public:
virtual void SetTrackPGain(
const double _pGain) = 0;
234 public:
virtual double TrackPGain()
const = 0;
247 public:
virtual void SetFollowTarget(
const NodePtr &_target,
249 const bool _worldFrame =
false) = 0;
253 public:
virtual NodePtr FollowTarget()
const = 0;
259 public:
virtual void SetFollowOffset(
const math::Vector3d &_offset) = 0;
269 public:
virtual void SetFollowPGain(
const double _pGain) = 0;
273 public:
virtual double FollowPGain()
const = 0;
277 public:
virtual void SetMaterial(
const MaterialPtr &_material) = 0;
283 public:
virtual unsigned int RenderTextureGLId()
const = 0;
287 public:
virtual void AddRenderPass(
const RenderPassPtr &_pass) = 0;
291 public:
virtual void RemoveRenderPass(
const RenderPassPtr &_pass) = 0;
295 public:
virtual unsigned int RenderPassCount()
const = 0;
299 public:
virtual RenderPassPtr RenderPassByIndex(
unsigned int _index)
Represents a scene sensor. The most obvious example is a camera, but it can be anything that generate...
Definition: Sensor.hh:32
Encapsulates a raw image buffer and relevant properties.
Definition: Image.hh:36
std::function< void(const void *, unsigned int, unsigned int, unsigned int, const std::string &)> NewFrameListener
Callback function for new frame render event listeners.
Definition: Camera.hh:45
PixelFormat
Image pixel format types.
Definition: PixelFormat.hh:32
virtual ~Camera()
Deconstructor.
Definition: Camera.hh:48
Posable camera used for rendering the scene graph.
Definition: Camera.hh:40
static const Vector3 Zero