| Irrlicht 3D Engine |

Public Member Functions | Protected Member Functions | Protected Attributes
irr::scene::ICameraSceneNode Class Reference

Scene Node which is a (controlable) camera. More...

`#include <ICameraSceneNode.h>`

Inheritance diagram for irr::scene::ICameraSceneNode:

List of all members.

## Public Member Functions

- ICameraSceneNode (ISceneNode *parent, ISceneManager *mgr, s32 id, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
    Constructor.
- virtual void bindTargetAndRotation (bool bound)=0
    Binds the camera scene node's rotation to its target position and vice vera, or unbinds them.
- virtual void deserializeAttributes (io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
    Reads attributes of the camera node.
- virtual f32 getAspectRatio () const =0
    Gets the aspect ratio of the camera.
- virtual f32 getFarValue () const =0
    Gets the value of the far plane of the camera.
- virtual f32 getFOV () const =0
    Gets the field of view of the camera.
- virtual f32 getNearValue () const =0
    Gets the value of the near plane of the camera.
- virtual const core::matrix4 & getProjectionMatrix () const =0
    Gets the current projection matrix of the camera.
- virtual const core::vector3df & getTarget () const =0
    Gets the current look at target of the camera.
- virtual bool getTargetAndRotationBinding (void) const =0
    Queries if the camera scene node's rotation and its target position are bound together.
- virtual const core::vector3df & getUpVector () const =0
    Gets the up vector of the camera.
- virtual const SViewFrustum * getViewFrustum () const =0
    Get the view frustum.
- virtual const core::matrix4 & getViewMatrix () const =0
    Gets the current view matrix of the camera.
- virtual const core::matrix4 & getViewMatrixAffector () const =0
    Get the custom view matrix affector.
- virtual bool isInputReceiverEnabled () const =0
    Checks if the input receiver of the camera is currently enabled.
- virtual bool isOrthogonal () const
    Checks if a camera is orthogonal.
- virtual bool OnEvent (const SEvent &event)=0
    It is possible to send mouse and key events to the camera.
- virtual void serializeAttributes (io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
    Writes attributes of the camera node.
- virtual void setAspectRatio (f32 aspect)=0
    Sets the aspect ratio (default: 4.0f / 3.0f)
- virtual void setFarValue (f32 zf)=0
    Sets the value of the far clipping plane (default: 2000.0f)
- virtual void setFOV (f32 fovy)=0
    Sets the field of view (Default: PI / 2.5f)
- virtual void setInputReceiverEnabled (bool enabled)=0
    Disables or enables the camera to get key or mouse inputs.
- virtual void setNearValue (f32 zn)=0
    Sets the value of the near clipping plane. (default: 1.0f)
- virtual void setProjectionMatrix (const core::matrix4 &projection, bool isOrthogonal=false)=0
    Sets the projection matrix of the camera.
- virtual void setRotation (const core::vector3df &rotation)=0
    Sets the rotation of the node.
- virtual void setTarget (const core::vector3df &pos)=0
    Sets the look at target of the camera.
- virtual void setUpVector (const core::vector3df &pos)=0
    Sets the up vector of the camera.
- virtual void setViewMatrixAffector (const core::matrix4 &affector)=0
    Sets a custom view matrix affector.

## Protected Member Functions

- void cloneMembers (ICameraSceneNode *toCopyFrom)

## Protected Attributes

- bool IsOrthogonal

## Detailed Description

Scene Node which is a (controlable) camera.

The whole scene will be rendered from the cameras point of view. Because the ICameraScenNode is a SceneNode, it can be attached to any other scene node, and will follow its parents movement, rotation and so on.

Definition at line 23 of file ICameraSceneNode.h.

## Constructor & Destructor Documentation

irr::scene::ICameraSceneNode::ICameraSceneNode | ( | ISceneNode * | parent,
|  | ISceneManager * | mgr,
|  | s32 | id,
|  | const core::vector3df & | position = `core::vector3df(0,0,0)`,
|  | const core::vector3df & | rotation = `core::vector3df(0,0,0)`,
|  | const core::vector3df & | scale = `core::vector3df(1.0f,1.0f,1.0f)`
| ) |  | `[inline]`

Constructor.

Definition at line 28 of file ICameraSceneNode.h.

## Member Function Documentation

virtual void irr::scene::ICameraSceneNode::bindTargetAndRotation | ( | bool | bound | ) | `[pure virtual]`

Binds the camera scene node's rotation to its target position and vice vera, or unbinds them.

When bound, calling setRotation() will update the camera's target position to be along its +Z axis, and likewise calling setTarget() will update its rotation so that its +Z axis will point at the target point. FPS camera use this binding by default; other cameras do not.

Parameters:

  bound | True to bind the camera's scene node rotation and targetting, false to unbind them.

See also:
  getTargetAndRotationBinding()

void irr::scene::ICameraSceneNode::cloneMembers | ( | ICameraSceneNode * | toCopyFrom | ) | `[inline, protected]`

Definition at line 195 of file ICameraSceneNode.h.

References IsOrthogonal.

virtual void irr::scene::ICameraSceneNode::deserializeAttributes | ( | io::IAttributes * | in,
|  | io::SAttributeReadWriteOptions * | options = `0`
| ) |  | `[inline, virtual]`

Reads attributes of the camera node.

Reimplemented from irr::scene::ISceneNode.

Definition at line 183 of file ICameraSceneNode.h.

References irr::io::IAttributes::findAttribute(), irr::io::IAttributes::getAttributeAsBool(), and IsOrthogonal.

virtual f32 irr::scene::ICameraSceneNode::getAspectRatio | ( |  | ) | const`[pure virtual]`

Gets the aspect ratio of the camera.

Returns:
  The aspect ratio of the camera.

virtual f32 irr::scene::ICameraSceneNode::getFarValue | ( |  | ) | const`[pure virtual]`

Gets the value of the far plane of the camera.

Returns:
  The value of the far plane of the camera.

virtual f32 irr::scene::ICameraSceneNode::getFOV | ( |  | ) | const`[pure virtual]`

Gets the field of view of the camera.

Returns:
  The field of view of the camera in radians.

virtual f32 irr::scene::ICameraSceneNode::getNearValue | ( |  | ) | const`[pure virtual]`

Gets the value of the near plane of the camera.

Returns:
  The value of the near plane of the camera.

virtual const core::matrix4& irr::scene::ICameraSceneNode::getProjectionMatrix | ( |  | ) | const`[pure virtual]`

Gets the current projection matrix of the camera.

Returns:
  The current projection matrix of the camera.

virtual const core::vector3df& irr::scene::ICameraSceneNode::getTarget | ( |  | ) | const`[pure virtual]`

Gets the current look at target of the camera.

Returns:
  The current look at target of the camera, in world co-ordinates

virtual bool irr::scene::ICameraSceneNode::getTargetAndRotationBinding | ( | void |  | ) | const`[pure virtual]`

Queries if the camera scene node's rotation and its target position are bound together.

See also:
  bindTargetAndRotation()

virtual const core::vector3df& irr::scene::ICameraSceneNode::getUpVector | ( |  | ) | const`[pure virtual]`

Gets the up vector of the camera.

Returns:
  The up vector of the camera, in world space.

virtual const SViewFrustum* irr::scene::ICameraSceneNode::getViewFrustum | ( |  | ) | const`[pure virtual]`

Get the view frustum.

Needed sometimes by bspTree or LOD render nodes.

Returns:
  The current view frustum.

virtual const core::matrix4& irr::scene::ICameraSceneNode::getViewMatrix | ( |  | ) | const`[pure virtual]`

Gets the current view matrix of the camera.

Returns:
  The current view matrix of the camera.

virtual const core::matrix4& irr::scene::ICameraSceneNode::getViewMatrixAffector | ( |  | ) | const`[pure virtual]`

Get the custom view matrix affector.

Returns:
  The affector matrix.

virtual bool irr::scene::ICameraSceneNode::isInputReceiverEnabled | ( |  | ) | const`[pure virtual]`

Checks if the input receiver of the camera is currently enabled.

virtual bool irr::scene::ICameraSceneNode::isOrthogonal | ( |  | ) | const`[inline, virtual]`

Checks if a camera is orthogonal.

Definition at line 151 of file ICameraSceneNode.h.

References _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX, and IsOrthogonal.

virtual bool irr::scene::ICameraSceneNode::OnEvent | ( | const SEvent & | event | ) | `[pure virtual]`

It is possible to send mouse and key events to the camera.

Most cameras may ignore this input, but camera scene nodes which are created for example with ISceneManager::addCameraSceneNodeMaya or ISceneManager::addCameraSceneNodeFPS, may want to get this input for changing their position, look at target or whatever.

Implements irr::IEventReceiver.

virtual void irr::scene::ICameraSceneNode::serializeAttributes | ( | io::IAttributes * | out,
|  | io::SAttributeReadWriteOptions * | options = `0`
| ) |  | const`[inline, virtual]`

Writes attributes of the camera node.

Reimplemented from irr::scene::ISceneNode.

Definition at line 173 of file ICameraSceneNode.h.

References irr::io::IAttributes::addBool(), and IsOrthogonal.

virtual void irr::scene::ICameraSceneNode::setAspectRatio | ( | f32 | aspect | ) | `[pure virtual]`

Sets the aspect ratio (default: 4.0f / 3.0f)

Parameters:

  aspect,: | New aspect ratio.

virtual void irr::scene::ICameraSceneNode::setFarValue | ( | f32 | zf | ) | `[pure virtual]`

Sets the value of the far clipping plane (default: 2000.0f)

Parameters:

  zf,: | New z far value.

virtual void irr::scene::ICameraSceneNode::setFOV | ( | f32 | fovy | ) | `[pure virtual]`

Sets the field of view (Default: PI / 2.5f)

Parameters:

  fovy,: | New field of view in radians.

virtual void irr::scene::ICameraSceneNode::setInputReceiverEnabled | ( | bool | enabled | ) | `[pure virtual]`

Disables or enables the camera to get key or mouse inputs.

If this is set to true, the camera will respond to key inputs otherwise not.

virtual void irr::scene::ICameraSceneNode::setNearValue | ( | f32 | zn | ) | `[pure virtual]`

Sets the value of the near clipping plane. (default: 1.0f)

Parameters:

  zn,: | New z near value.

virtual void irr::scene::ICameraSceneNode::setProjectionMatrix | ( | const core::matrix4 & | projection,
|  | bool | isOrthogonal = `false`
| ) |  | `[pure virtual]`

Sets the projection matrix of the camera.

The core::matrix4 class has some methods to build a projection matrix. e.g: core::matrix4::buildProjectionMatrixPerspectiveFovLH. Note that the matrix will only stay as set by this method until one of the following Methods are called: setNearValue, setFarValue, setAspectRatio, setFOV.

Parameters:

  projection | The new projection matrix of the camera.
  isOrthogonal | Set this to true if the matrix is an orthogonal one (e.g. from matrix4::buildProjectionMatrixOrtho).

virtual void irr::scene::ICameraSceneNode::setRotation | ( | const core::vector3df & | rotation | ) | `[pure virtual]`

Sets the rotation of the node.

This only modifies the relative rotation of the node. If the camera's target and rotation are bound (

See also:
  bindTargetAndRotation() ) then calling this will also change the camera's target to match the rotation.

Parameters:

  rotation | New rotation of the node in degrees.

Reimplemented from irr::scene::ISceneNode.

virtual void irr::scene::ICameraSceneNode::setTarget | ( | const core::vector3df & | pos | ) | `[pure virtual]`

Sets the look at target of the camera.

If the camera's target and rotation are bound (

See also:
  bindTargetAndRotation() ) then calling this will also change the camera's scene node rotation to match the target. Note that setTarget uses the current absolute position internally, so if you changed setPosition since last rendering you must call updateAbsolutePosition before using this function.

Parameters:

  pos | Look at target of the camera, in world co-ordinates.

virtual void irr::scene::ICameraSceneNode::setUpVector | ( | const core::vector3df & | pos | ) | `[pure virtual]`

Sets the up vector of the camera.

Parameters:

  pos,: | New upvector of the camera.

virtual void irr::scene::ICameraSceneNode::setViewMatrixAffector | ( | const core::matrix4 & | affector | ) | `[pure virtual]`

Sets a custom view matrix affector.

The matrix passed here, will be multiplied with the view matrix when it gets updated. This allows for custom camera setups like, for example, a reflection camera.

Parameters:

  affector | The affector matrix.

## Member Data Documentation

bool irr::scene::ICameraSceneNode::IsOrthogonal`[protected]`

Definition at line 200 of file ICameraSceneNode.h.

Referenced by cloneMembers(), deserializeAttributes(), isOrthogonal(), and serializeAttributes().

The documentation for this class was generated from the following file:

- ICameraSceneNode.h