![]() |
RobWorkProject
23.9.11-
|
Node representing a camera in the scene. A SceneCamera sets up everything from rendering buffer to perspective transform. More...
#include <SceneCamera.hpp>
Inherits SceneNode.
Public Types | |
| enum | AspectRatioControl { Auto , Scale , ScaleX , ScaleY , Fixed } |
| Mode for aspect ratio control. More... | |
| typedef rw::core::Ptr< SceneCamera > | Ptr |
| Smart pointer type for SceneCamera. | |
Public Types inherited from SceneNode | |
| enum | AddPolicy { Front , Back } |
| Policy for adding parent nodes. More... | |
| enum | NodeType { GroupType = 0 , CameraType , DrawableType , UserBeginType = 1024 } |
| Node types. More... | |
| typedef rw::core::Ptr< SceneNode > | Ptr |
| Smart pointer type for SceneNode. | |
| typedef std::list< SceneNode::Ptr > | NodeList |
| Type for the list of nodes. | |
| typedef const std::list< SceneNode::Ptr > | NodeListConst |
| Type for a const list of nodes. | |
Public Member Functions | |
| SceneCamera (const std::string &name, SceneNode::Ptr subGraph) | |
| constructor More... | |
| virtual | ~SceneCamera () |
| destructor | |
| void | setPerspective (double fov, int w, int h, double zNear, double zFar) |
| sets the projection matrix of this camera to be a perspective projection More... | |
| virtual rw::math::ProjectionMatrix | getProjectionMatrix () |
| gets the projection matrix More... | |
| virtual void | setProjectionMatrix (const rw::math::ProjectionMatrix &matrix) |
| sets the current camera projection matrix More... | |
| virtual void | setViewport (int x, int y, int width, int height) |
| set viewport settings | |
| virtual void | getViewport (int &x, int &y, int &width, int &height) |
| get viewport settings | |
| virtual void | setClearBufferEnabled (bool enabled) |
| set to true if the render buffer should be cleared before drawing | |
| virtual bool | isClearBufferEnabled () |
| test if buffers is cleared before drawing | |
| virtual void | setClearBufferMask (int mask) |
| choose which buffers that should be cleared | |
| virtual int | getClearBufferMask () |
| get the clear buffer mask that describe which buffers are cleared before drawing | |
| virtual void | setDepthTestEnabled (bool enabled) |
| enable or disable the use of depth tests (depth buffer) | |
| virtual bool | isDepthTestEnabled () |
| test if depth testing is enabled | |
| virtual void | setLightningEnabled (bool enabled) |
| enable or disable the use of lightning | |
| virtual bool | isLightningEnabled () |
| test if lightning is enabled | |
| virtual SceneNode::Ptr | getRefNode () |
| get the reference node | |
| virtual void | setRefNode (SceneNode::Ptr snode) |
| set the reference node of the camera | |
| virtual bool | isEnabled () |
| test if this camera is enabled | |
| virtual void | setEnabled (bool enabled) |
| enable or disable this camera | |
| SceneCamera * | asCameraNode () |
| Get a pointer to a CameraNode, if this is a CameraNode. More... | |
| void | setTransform (const rw::math::Transform3D<> &t3d) |
| set the camera transform relative to reference node (getRefNode) | |
| rw::math::Transform3D | getTransform () |
| get the camera transform | |
| void | setAspectRatioControl (AspectRatioControl control) |
| Change the mode for aspect ratio control. More... | |
| AspectRatioControl | getAspectRatioControl () |
| Get current mode of aspect ratio control. More... | |
| virtual void | setDrawMask (int mask) |
| set the mask used when drawing in the scene More... | |
| int | getDrawMask () |
| Get the mask used when drawing in the scene. More... | |
| std::string | getName () |
| get the camera name More... | |
| void | attachTo (rw::graphics::SceneNode::Ptr snode) |
| Attach camera to scene node. More... | |
| rw::graphics::SceneNode::Ptr | getAttachedNode () |
| Get the node attached to. More... | |
| double | getAspectRatio () |
| Get the aspect ratio. More... | |
Public Member Functions inherited from SceneNode | |
| virtual | ~SceneNode () |
| Destructor. | |
| void | addParent (SceneNode::Ptr node, AddPolicy policy=Back) |
| Add a parent node. More... | |
| bool | hasParent (SceneNode::Ptr parent) |
| Check if the given node is a parent node. More... | |
| void | removeParent (SceneNode::Ptr node) |
| erases the parent from the parent list. More... | |
| virtual GroupNode * | asGroupNode () |
| Get a pointer to a GroupNode, if this is a GroupNode. More... | |
| virtual DrawableNode * | asDrawableNode () |
| Get a pointer to a DrawableNode, if this is a DrawableNode. More... | |
| int | getType () |
| Get the NodeType. More... | |
| const std::string & | getName () |
| Get the name of the node. More... | |
| void | setName (const std::string &name) |
| Set the name of this node. More... | |
Protected Attributes | |
| rw::math::ProjectionMatrix | _pmatrix |
| Projection matrix for camera. | |
| int | _x |
| Viewport x. | |
| int | _y |
| Viewport y. | |
| int | _w |
| Viewport width. | |
| int | _h |
| Viewport height. | |
| int | _drawMask |
| Mask for what to draw. See DrawableNode::DrawableTypeMask. | |
| int | _clearMask |
| Mask for what should be cleared. | |
| bool | _depthTestEnabled |
| Enable/disable depth test. | |
| bool | _lightningEnabled |
| Enable/disable light. | |
| bool | _clearBufferEnabled |
| Enable/disable clear buffer. | |
| bool | _enabled |
| Enable/disable camera. | |
| rw::graphics::DrawableNode::RenderInfo | _renderInfo |
| Rendering info used by the camera. | |
| SceneNode::Ptr | _subGraph |
| The reference node of the camera. | |
| SceneNode::Ptr | _attachedTo |
| Node that the camera is attached to. | |
| std::string | _cameraName |
| rw::math::Transform3D | _t3d |
| Transform of the camera. | |
| double | _aspectRatio |
| The aspect ratio. | |
| AspectRatioControl | _ratioControl |
| Mode of aspect ratio control. | |
Additional Inherited Members | |
Static Public Member Functions inherited from SceneNode | |
| static void | removeParent (SceneNode::Ptr node, SceneNode::Ptr parent) |
| Remove a parent node. More... | |
Public Attributes inherited from SceneNode | |
| std::string | _name |
| The name of the node. | |
| std::list< SceneNode::Ptr > | _parentNodes |
| The list of parent nodes. | |
| int | _type |
| The NodeType. | |
Protected Member Functions inherited from SceneNode | |
| SceneNode (const std::string &name, int type) | |
| Construct new scene node. More... | |
Node representing a camera in the scene. A SceneCamera sets up everything from rendering buffer to perspective transform.
| enum AspectRatioControl |
Mode for aspect ratio control.
| SceneCamera | ( | const std::string & | name, |
| SceneNode::Ptr | subGraph | ||
| ) |
constructor
| name | [in] name of camera |
| subGraph | [in] the root of the subgraph that this camera is supposed to render. |
|
inlinevirtual |
|
inline |
Attach camera to scene node.
| snode | [in] node to attach to. |
|
inline |
Get the aspect ratio.
|
inline |
Get current mode of aspect ratio control.
|
inline |
Get the node attached to.
| int getDrawMask | ( | ) |
Get the mask used when drawing in the scene.
| std::string getName | ( | ) |
get the camera name
|
virtual |
gets the projection matrix
|
inline |
Change the mode for aspect ratio control.
| control | [in] new mode. |
|
virtual |
set the mask used when drawing in the scene
| mask | [in] The draw mask - see DrawableNode::DrawableTypeMask. |
| void setPerspective | ( | double | fov, |
| int | w, | ||
| int | h, | ||
| double | zNear, | ||
| double | zFar | ||
| ) |
sets the projection matrix of this camera to be a perspective projection
| fov | [in] field of view in radians. |
| w | [in] view width |
| h | [in] view height |
| zNear | [in] near clipping plane |
| zFar | [in] far clipping plane |
|
virtual |
sets the current camera projection matrix
| matrix | [in] a projection matrix |