#include <BaseCamera.hh>
Public Member Functions | |
virtual | ~BaseCamera () |
virtual unsigned int | AntiAliasing () const |
Get the level of anti-aliasing used during rendering. More... | |
virtual double | AspectRatio () const |
Get the camera's aspect ratio. More... | |
virtual void | Capture (Image &_image) |
Renders a new frame and writes the results to the given image. This is a convenience function for single-camera scenes. It wraps the pre-render, render, post-render, and get-image calls into a single function. This should be used in applications with multiple cameras or multiple consumers of a single camera's images. More... | |
virtual common::ConnectionPtr | ConnectNewImageFrame (Camera::NewFrameListener _listener) |
Subscribes a new listener to this camera's new frame event. More... | |
virtual void | Copy (Image &_image) const |
Writes the last rendered image to the given image buffer. This function can be called multiple times after PostRender has been called, without rendering the scene again. Calling this function before a single image has been rendered will have undefined behavior. More... | |
virtual Image | CreateImage () const |
Created an empty image buffer for capturing images. The resulting image will have sufficient memory allocated for subsequent calls to this camera's Capture function. However, any changes to this cameras properties may invalidate the condition. More... | |
virtual RenderWindowPtr | CreateRenderWindow () |
Create a render window. More... | |
virtual double | FarClipPlane () const |
Get the camera's far clipping plane distance. More... | |
virtual math::Vector3d | FollowOffset () const |
Get the follow offset vector in the frame specified at the time the follow target is set. More... | |
virtual double | FollowPGain () const |
Get the camera follow movement P gain. More... | |
virtual NodePtr | FollowTarget () const |
Get the target node being followed. More... | |
virtual math::Angle | HFOV () const |
Get the camera's horizontal field-of-view. More... | |
virtual PixelFormat | ImageFormat () const |
Get the image pixel format. If the image pixel format has not been set with a valid value, PF_UNKNOWN will be returned. More... | |
virtual unsigned int | ImageHeight () const |
Get the image height in pixels. More... | |
virtual unsigned int | ImageMemorySize () const |
Get the total image memory size in bytes. More... | |
virtual unsigned int | ImageWidth () const |
Get the image width in pixels. More... | |
virtual double | NearClipPlane () const |
Get the camera's near clipping plane distance. More... | |
virtual void | PostRender () |
Preforms any necessary final rendering work. Once rendering is complete the camera will alert any listeners of the new frame event. This function should only be called after a call to Render has successfully been executed. More... | |
virtual void | PreRender () |
Prepare this object and any of its children for rendering. This should be called for each object in a scene just before rendering, which can be achieved by a single call to Scene::PreRender. More... | |
virtual math::Matrix4d | ProjectionMatrix () const |
Get the projection matrix for this camera. More... | |
virtual bool | SaveFrame (const std::string &_name) |
Writes the previously rendered frame to a file. This function can be called multiple times after PostRender has been called, without rendering the scene again. Calling this function before a single image has been rendered will have undefined behavior. More... | |
virtual void | SetAntiAliasing (const unsigned int _aa) |
Set the level of anti-aliasing used during rendering. If a value of 0 is given, no anti-aliasing will be performed. Higher values can significantly slow-down rendering times, depending on the underlying render engine. More... | |
virtual void | SetAspectRatio (const double _ratio) |
Set the camera's aspect ratio. This value determines the cameras vertical field-of-view. It is often the. More... | |
virtual void | SetFarClipPlane (const double _far) |
Set the camera's far clipping plane distance. More... | |
virtual void | SetFollowOffset (const math::Vector3d &_offset) |
Set offset of camera from target node being followed. The offset will be in the frame that is specified at the time the follow target is set. More... | |
virtual void | SetFollowPGain (const double _pGain) |
Set follow P Gain. Determines how fast the camera moves to follow the target node. Valid range: [0-1]. More... | |
virtual void | SetFollowTarget (const NodePtr &_target, const math::Vector3d &_Offset, const bool _worldFrame) |
Set a node for camera to follow. The camera will automatically update its position to keep itself at the specified offset distance from the target being followed. If null is specified, camera follow is disabled. In contrast to SetTrackTarget, the camera does not change its orientation when following is enabled. More... | |
virtual void | SetHFOV (const math::Angle &_hfov) |
Set the camera's horizontal field-of-view. More... | |
virtual void | SetImageFormat (PixelFormat _format) |
Set the image pixel format. More... | |
virtual void | SetImageHeight (const unsigned int _height) |
Set the image height in pixels. More... | |
virtual void | SetImageWidth (const unsigned int _width) |
Set the image width in pixels. More... | |
virtual void | SetNearClipPlane (const double _near) |
Set the camera's near clipping plane distance. More... | |
virtual void | SetTrackOffset (const math::Vector3d &_offset) |
Set track offset. Camera will track a point that's at an offset from the target node. The offset will be in the frame that is specified at the time the track target is set. More... | |
virtual void | SetTrackPGain (const double _pGain) |
Set track P Gain. Determines how fast the camera rotates to look at the target node. Valid range: [0-1]. More... | |
virtual void | SetTrackTarget (const NodePtr &_target, const math::Vector3d &_offset, const bool _worldFrame) |
Set a node for camera to track. The camera will automatically change its orientation to face the target being tracked. If null is specified, tracking is disabled. In contrast to SetFollowTarget the camera does not change its position when tracking is enabled. More... | |
virtual math::Vector3d | TrackOffset () const |
Get the track offset vector in the frame specified at the time the track target is set. More... | |
virtual double | TrackPGain () const |
Get the camera track rotation P gain. More... | |
virtual NodePtr | TrackTarget () const |
Get the target node being tracked. More... | |
virtual void | Update () |
Renders a new frame. This is a convenience function for single-camera scenes. It wraps the pre-render, render, and post-render into a single function. This should be used in applications with multiple cameras or multiple consumers of a single camera's images. More... | |
virtual math::Matrix4d | ViewMatrix () const |
Get the view matrix for this camera. More... | |
Public Member Functions inherited from Camera | |
virtual | ~Camera () |
Deconstructor. More... | |
virtual void | Render ()=0 |
Renders the current scene using this camera. This function assumes PreRender() has already been called on the parent Scene, allowing the camera and the scene itself to prepare for rendering. More... | |
Public Member Functions inherited from Sensor | |
virtual | ~Sensor () |
Sensor. More... | |
Public Member Functions inherited from Node | |
virtual | ~Node () |
Deconstructor. More... | |
virtual bool | HasParent () const =0 |
Determine if this Geometry is attached to a Visual. More... | |
virtual math::Pose3d | LocalPose () const =0 |
Get the local pose. More... | |
virtual math::Vector3d | LocalPosition () const =0 |
Get the local position. More... | |
virtual math::Quaterniond | LocalRotation () const =0 |
Get the local rotation. More... | |
virtual math::Vector3d | Origin () const =0 |
Get position of origin. More... | |
virtual VisualPtr | Parent () const =0 |
Get the parent Visual. More... | |
virtual void | RemoveParent ()=0 |
Detach this Geometry from its parent Visual. If this Geometry does not have a parent, no work will be done. More... | |
virtual void | SetLocalPose (const math::Pose3d &_pose)=0 |
Set the local pose. More... | |
virtual void | SetLocalPosition (double _x, double _y, double _z)=0 |
Set the local position. More... | |
virtual void | SetLocalPosition (const math::Vector3d &_position)=0 |
Set the local position. More... | |
virtual void | SetLocalRotation (double _r, double _p, double _y)=0 |
Set the local rotation. More... | |
virtual void | SetLocalRotation (double _w, double _x, double _y, double _z)=0 |
Set the local rotation. More... | |
virtual void | SetLocalRotation (const math::Quaterniond &_rotation)=0 |
Set the local rotation. More... | |
virtual void | SetOrigin (double _x, double _y, double _z)=0 |
Set position of origin. The position should be relative to the original origin of the geometry. More... | |
virtual void | SetOrigin (const math::Vector3d &_origin)=0 |
Set position of origin. The position should be relative to the original origin of the geometry. More... | |
virtual void | SetWorldPose (const math::Pose3d &_pose)=0 |
Set the world pose. More... | |
virtual void | SetWorldPosition (double _x, double _y, double _z)=0 |
Set the world position. More... | |
virtual void | SetWorldPosition (const math::Vector3d &_position)=0 |
Set the world position. More... | |
virtual void | SetWorldRotation (double _r, double _p, double _y)=0 |
Set the world rotation. More... | |
virtual void | SetWorldRotation (double _w, double _x, double _y, double _z)=0 |
Set the world rotation. More... | |
virtual void | SetWorldRotation (const math::Quaterniond &_rotation)=0 |
Set the world rotation. More... | |
virtual math::Pose3d | WorldPose () const =0 |
Get the world pose. More... | |
virtual math::Vector3d | WorldPosition () const =0 |
Get the world position. More... | |
virtual math::Quaterniond | WorldRotation () const =0 |
Get the world rotation. More... | |
virtual math::Pose3d | WorldToLocal (const math::Pose3d &_pose) const =0 |
Convert given world pose to local pose. More... | |
Public Member Functions inherited from Object | |
virtual | ~Object () |
Deconstructor. More... | |
virtual void | Destroy ()=0 |
Destroy any resources associated with this object. Invoking any other functions after destroying an object will result in undefined behavior. More... | |
virtual unsigned int | Id () const =0 |
Get the object ID. This ID will be unique across all objects inside a given scene, but necessarily true for objects across different scenes. More... | |
virtual std::string | Name () const =0 |
Get the object name. This name will be unique across all objects inside a given scene, but necessarily true for objects across different scenes. More... | |
virtual ScenePtr | Scene () const =0 |
Get the Scene that created this object. More... | |
Protected Member Functions | |
BaseCamera () | |
virtual void * | CreateImageBuffer () const |
virtual void | Load () |
virtual RenderTargetPtr | RenderTarget () const =0 |
virtual void | Reset () |
Protected Attributes | |
unsigned int | antiAliasing = 0u |
Anti-aliasing. More... | |
double | aspect = 1.3333333 |
Aspect ratio. More... | |
double | farClip = 1000.0 |
Far clipping plane distance. More... | |
NodePtr | followNode |
Target node to follow. More... | |
math::Vector3d | followOffset |
Offset distance between camera and target node being followed. More... | |
double | followPGain = 1.0 |
P gain for follow mode. Determines how fast the camera moves to follow the target node. Valid range: [0-1]. More... | |
bool | followWorldFrame = false |
Follow target in world frame. More... | |
math::Angle | hfov |
Horizontal camera field of view. More... | |
ImagePtr | imageBuffer |
double | nearClip = 0.01 |
Near clipping plane distance. More... | |
common::EventT< void(const void *, unsigned int, unsigned int, unsigned int, const std::string &)> | newFrameEvent |
NodePtr | trackNode |
Target node to track if camera tracking is on. More... | |
math::Vector3d | trackOffset |
Set camera to track a point offset in target node's local or world frame depending on trackWorldFrame. More... | |
double | trackPGain = 1.0 |
P gain for tracking. Determines how fast the camera rotates to look at the target node. Valid range: [0-1]. More... | |
bool | trackWorldFrame = false |
Track point relative to target in world frame. More... | |
Additional Inherited Members | |
Public Types inherited from Camera | |
typedef std::function< void(const void *, unsigned int, unsigned int, unsigned int, const std::string &)> | NewFrameListener |
Callback function for new frame render event listeners. More... | |
Constructor & Destructor Documentation
◆ BaseCamera()
|
protected |
◆ ~BaseCamera()
|
virtual |
Member Function Documentation
◆ AntiAliasing()
|
virtual |
Get the level of anti-aliasing used during rendering.
- Returns
- The level of anti-aliasing used during rendering
Implements Camera.
Reimplemented in OgreCamera.
◆ AspectRatio()
|
virtual |
Get the camera's aspect ratio.
- Returns
- The camera's aspect ratio
Implements Camera.
Reimplemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::ProjectionMatrix().
◆ Capture()
|
virtual |
Renders a new frame and writes the results to the given image. This is a convenience function for single-camera scenes. It wraps the pre-render, render, post-render, and get-image calls into a single function. This should be used in applications with multiple cameras or multiple consumers of a single camera's images.
- Parameters
-
[out] _image Output image buffer
Implements Camera.
◆ ConnectNewImageFrame()
|
virtual |
Subscribes a new listener to this camera's new frame event.
- Parameters
-
[in] _listener New camera listener callback
Implements Camera.
◆ Copy()
|
virtual |
Writes the last rendered image to the given image buffer. This function can be called multiple times after PostRender has been called, without rendering the scene again. Calling this function before a single image has been rendered will have undefined behavior.
- Parameters
-
[out] _image Output image buffer
Implements Camera.
Referenced by BaseCamera< OgreSensor >::Capture().
◆ CreateImage()
|
virtual |
Created an empty image buffer for capturing images. The resulting image will have sufficient memory allocated for subsequent calls to this camera's Capture function. However, any changes to this cameras properties may invalidate the condition.
- Returns
- A newly allocated Image for storing this cameras images
Implements Camera.
◆ CreateImageBuffer()
|
protectedvirtual |
◆ CreateRenderWindow()
|
virtual |
Create a render window.
- Returns
- A pointer to the render window.
Implements Camera.
Reimplemented in OgreCamera.
◆ FarClipPlane()
|
virtual |
Get the camera's far clipping plane distance.
- Returns
- Far clipping plane distance
Implements Camera.
Referenced by BaseCamera< OgreSensor >::ProjectionMatrix().
◆ FollowOffset()
|
virtual |
Get the follow offset vector in the frame specified at the time the follow target is set.
- Returns
- Offset of camera from target.
Implements Camera.
◆ FollowPGain()
|
virtual |
◆ FollowTarget()
|
virtual |
◆ HFOV()
|
virtual |
Get the camera's horizontal field-of-view.
- Returns
- Angle containing the camera's horizontal field-of-view
Implements Camera.
Referenced by BaseCamera< OgreSensor >::ProjectionMatrix().
◆ ImageFormat()
|
virtual |
Get the image pixel format. If the image pixel format has not been set with a valid value, PF_UNKNOWN will be returned.
- Returns
- The image pixel format
Implements Camera.
Referenced by BaseCamera< OgreSensor >::CreateImage(), and BaseCamera< OgreSensor >::ImageMemorySize().
◆ ImageHeight()
|
virtual |
Get the image height in pixels.
- Returns
- The image height in pixels
Implements Camera.
Referenced by BaseCamera< OgreSensor >::CreateImage(), and BaseCamera< OgreSensor >::ImageMemorySize().
◆ ImageMemorySize()
|
virtual |
Get the total image memory size in bytes.
- Returns
- The image memory size in bytes
Implements Camera.
Referenced by BaseCamera< OgreSensor >::CreateImageBuffer().
◆ ImageWidth()
|
virtual |
Get the image width in pixels.
- Returns
- The image width in pixels
Implements Camera.
Referenced by BaseCamera< OgreSensor >::CreateImage(), and BaseCamera< OgreSensor >::ImageMemorySize().
◆ Load()
|
protectedvirtual |
◆ NearClipPlane()
|
virtual |
Get the camera's near clipping plane distance.
- Returns
- Near clipping plane distance
Implements Camera.
Referenced by BaseCamera< OgreSensor >::ProjectionMatrix().
◆ PostRender()
|
virtual |
Preforms any necessary final rendering work. Once rendering is complete the camera will alert any listeners of the new frame event. This function should only be called after a call to Render has successfully been executed.
Implements Camera.
Referenced by BaseCamera< OgreSensor >::Update().
◆ PreRender()
|
virtual |
Prepare this object and any of its children for rendering. This should be called for each object in a scene just before rendering, which can be achieved by a single call to Scene::PreRender.
Implements Object.
◆ ProjectionMatrix()
|
virtual |
Get the projection matrix for this camera.
- Returns
- Camera projection matrix
Implements Camera.
Reimplemented in OgreCamera.
◆ RenderTarget()
|
protectedpure virtual |
Implemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::Copy(), BaseCamera< OgreSensor >::ImageFormat(), BaseCamera< OgreSensor >::ImageHeight(), BaseCamera< OgreSensor >::ImageWidth(), BaseCamera< OgreSensor >::PreRender(), BaseCamera< OgreSensor >::SetImageFormat(), BaseCamera< OgreSensor >::SetImageHeight(), and BaseCamera< OgreSensor >::SetImageWidth().
◆ Reset()
|
protectedvirtual |
◆ SaveFrame()
|
virtual |
Writes the previously rendered frame to a file. This function can be called multiple times after PostRender has been called, without rendering the scene again. Calling this function before a single image has been rendered will have undefined behavior.
- Parameters
-
[in] _name Name of the output file
Implements Camera.
◆ SetAntiAliasing()
|
virtual |
Set the level of anti-aliasing used during rendering. If a value of 0 is given, no anti-aliasing will be performed. Higher values can significantly slow-down rendering times, depending on the underlying render engine.
- Parameters
-
[in] _aa Level of anti-aliasing used during rendering
Implements Camera.
Reimplemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetAspectRatio()
|
virtual |
Set the camera's aspect ratio. This value determines the cameras vertical field-of-view. It is often the.
but this is not necessarily true.
- Returns
- The camera's aspect ratio
Implements Camera.
Reimplemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetFarClipPlane()
|
virtual |
Set the camera's far clipping plane distance.
- Parameters
-
[in] _far Far clipping plane distance
Implements Camera.
Reimplemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetFollowOffset()
|
virtual |
Set offset of camera from target node being followed. The offset will be in the frame that is specified at the time the follow target is set.
- Parameters
-
[in] _offset Offset distance from target node.
Implements Camera.
◆ SetFollowPGain()
|
virtual |
Set follow P Gain. Determines how fast the camera moves to follow the target node. Valid range: [0-1].
- Parameters
-
[in] _pGain P gain for camera following
Implements Camera.
◆ SetFollowTarget()
|
virtual |
Set a node for camera to follow. The camera will automatically update its position to keep itself at the specified offset distance from the target being followed. If null is specified, camera follow is disabled. In contrast to SetTrackTarget, the camera does not change its orientation when following is enabled.
- Parameters
-
[in] _target Target node to follow [in] _offset Tether the camera at an offset distance from the target node. [in] _worldFrame True to follow the target node at a distance that's fixed in world frame. Default is false which means the camera follows at fixed distance in target node's local frame.
Implements Camera.
◆ SetHFOV()
|
virtual |
Set the camera's horizontal field-of-view.
- Parameters
-
[in] _angle Desired horizontal field-of-view
Implements Camera.
Reimplemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetImageFormat()
|
virtual |
Set the image pixel format.
- Parameters
-
[in] _format New image pixel format
Implements Camera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetImageHeight()
|
virtual |
Set the image height in pixels.
- Parameters
-
[in] _height New image height in pixels
Implements Camera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetImageWidth()
|
virtual |
Set the image width in pixels.
- Parameters
-
[in] _width New image width in pixels
Implements Camera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetNearClipPlane()
|
virtual |
Set the camera's near clipping plane distance.
- Parameters
-
[in] _near Near clipping plane distance
Implements Camera.
Reimplemented in OgreCamera.
Referenced by BaseCamera< OgreSensor >::Reset().
◆ SetTrackOffset()
|
virtual |
◆ SetTrackPGain()
|
virtual |
Set track P Gain. Determines how fast the camera rotates to look at the target node. Valid range: [0-1].
- Parameters
-
[in] _pGain P gain for camera tracking
Implements Camera.
◆ SetTrackTarget()
|
virtual |
Set a node for camera to track. The camera will automatically change its orientation to face the target being tracked. If null is specified, tracking is disabled. In contrast to SetFollowTarget the camera does not change its position when tracking is enabled.
- Parameters
-
[in] _target Target node to track [in] _offset Track a point that is at an offset relative to target. [in] _worldFrame If true, the offset point to track will be treated in world frame and its position relative to the target node remains fixed regardless of the target node's rotation. Default is false, which means the camera tracks the point in target node's local frame.
Implements Camera.
◆ TrackOffset()
|
virtual |
Get the track offset vector in the frame specified at the time the track target is set.
- Returns
- Point offset from target.
Implements Camera.
◆ TrackPGain()
|
virtual |
◆ TrackTarget()
|
virtual |
◆ Update()
|
virtual |
Renders a new frame. This is a convenience function for single-camera scenes. It wraps the pre-render, render, and post-render into a single function. This should be used in applications with multiple cameras or multiple consumers of a single camera's images.
Implements Camera.
Referenced by BaseCamera< OgreSensor >::Capture().
◆ ViewMatrix()
|
virtual |
Get the view matrix for this camera.
- Returns
- Camera view matrix
Implements Camera.
Reimplemented in OgreCamera.
Member Data Documentation
◆ antiAliasing
|
protected |
Anti-aliasing.
Referenced by BaseCamera< OgreSensor >::AntiAliasing(), and BaseCamera< OgreSensor >::SetAntiAliasing().
◆ aspect
|
protected |
Aspect ratio.
Referenced by BaseCamera< OgreSensor >::AspectRatio(), and BaseCamera< OgreSensor >::SetAspectRatio().
◆ farClip
|
protected |
Far clipping plane distance.
Referenced by BaseCamera< OgreSensor >::FarClipPlane(), and BaseCamera< OgreSensor >::SetFarClipPlane().
◆ followNode
|
protected |
Target node to follow.
Referenced by BaseCamera< OgreSensor >::FollowTarget(), BaseCamera< OgreSensor >::PreRender(), and BaseCamera< OgreSensor >::SetFollowTarget().
◆ followOffset
|
protected |
Offset distance between camera and target node being followed.
Referenced by BaseCamera< OgreSensor >::FollowOffset(), BaseCamera< OgreSensor >::PreRender(), BaseCamera< OgreSensor >::SetFollowOffset(), and BaseCamera< OgreSensor >::SetFollowTarget().
◆ followPGain
|
protected |
P gain for follow mode. Determines how fast the camera moves to follow the target node. Valid range: [0-1].
Referenced by BaseCamera< OgreSensor >::FollowPGain(), BaseCamera< OgreSensor >::PreRender(), and BaseCamera< OgreSensor >::SetFollowPGain().
◆ followWorldFrame
|
protected |
Follow target in world frame.
Referenced by BaseCamera< OgreSensor >::PreRender(), and BaseCamera< OgreSensor >::SetFollowTarget().
◆ hfov
|
protected |
Horizontal camera field of view.
Referenced by BaseCamera< OgreSensor >::HFOV(), and BaseCamera< OgreSensor >::SetHFOV().
◆ imageBuffer
|
protected |
◆ nearClip
|
protected |
Near clipping plane distance.
Referenced by BaseCamera< OgreSensor >::NearClipPlane(), and BaseCamera< OgreSensor >::SetNearClipPlane().
◆ newFrameEvent
|
protected |
Referenced by BaseCamera< OgreSensor >::ConnectNewImageFrame().
◆ trackNode
|
protected |
Target node to track if camera tracking is on.
Referenced by BaseCamera< OgreSensor >::PreRender(), BaseCamera< OgreSensor >::SetTrackTarget(), and BaseCamera< OgreSensor >::TrackTarget().
◆ trackOffset
|
protected |
Set camera to track a point offset in target node's local or world frame depending on trackWorldFrame.
Referenced by BaseCamera< OgreSensor >::PreRender(), BaseCamera< OgreSensor >::SetTrackOffset(), BaseCamera< OgreSensor >::SetTrackTarget(), and BaseCamera< OgreSensor >::TrackOffset().
◆ trackPGain
|
protected |
P gain for tracking. Determines how fast the camera rotates to look at the target node. Valid range: [0-1].
Referenced by BaseCamera< OgreSensor >::PreRender(), BaseCamera< OgreSensor >::SetTrackPGain(), and BaseCamera< OgreSensor >::TrackPGain().
◆ trackWorldFrame
|
protected |
Track point relative to target in world frame.
Referenced by BaseCamera< OgreSensor >::PreRender(), and BaseCamera< OgreSensor >::SetTrackTarget().
The documentation for this class was generated from the following file: