OGRENext
4.0.0unstable
ObjectOriented Graphics Rendering Engine

Class representing a generalpurpose node an articulated scene graph. More...
#include <OgreNode.h>
Classes  
class  Listener 
Listener which gets called back on Node events. More...  
Public Types  
typedef ConstVectorIterator< NodeVec >  ConstNodeVecIterator 
typedef vector< Node * >::type  NodeVec 
typedef VectorIterator< NodeVec >  NodeVecIterator 
enum  TransformSpace { TS_LOCAL , TS_PARENT , TS_WORLD } 
Enumeration denoting the spaces which a transform can be relative to. More...  
Public Member Functions  
Node (const Transform &transformPtrs)  
Don't use this constructor unless you know what you're doing. More...  
Node (IdType id, NodeMemoryManager *nodeMemoryManager, Node *parent)  
Constructor, should only be called by parent, not directly. More...  
virtual  ~Node () 
virtual void  _callMemoryChangeListeners ()=0 
Internal use, notifies all attached objects that our memory pointers (i.e. More...  
virtual_l2 Quaternion  _getDerivedOrientation () const 
Gets the orientation of the node as derived from all parents. More...  
virtual_l2 Quaternion  _getDerivedOrientationUpdated () 
Gets the orientation of the node as derived from all parents. More...  
virtual_l2 Vector3  _getDerivedPosition () const 
Gets the position of the node as derived from all parents. More...  
virtual_l2 Vector3  _getDerivedPositionUpdated () 
Gets the position of the node as derived from all parents. More...  
virtual_l2 Vector3  _getDerivedScale () const 
Gets the scaling factor of the node as derived from all parents. More...  
virtual_l2 Vector3  _getDerivedScaleUpdated () 
Gets the scalling factor of the node as derived from all parents. More...  
virtual_l2 FORCEINLINE const Matrix4 &  _getFullTransform () const 
Gets the full transformation matrix for this node. More...  
virtual_l2 const Matrix4 &  _getFullTransformUpdated () 
See _getDerivedScaleUpdated() remarks. More...  
Transform &  _getTransform () 
Returns a direct access to the Transform state. More...  
virtual void  _notifyStaticDirty () const 
Called by SceneManager when it is telling we're a static node being dirty Don't call this directly. More...  
virtual_l2 void  _setDerivedOrientation (const Quaternion &q) 
Sets the final world orientation of the node directly. More...  
virtual_l2 void  _setDerivedPosition (const Vector3 &pos) 
Sets the final world position of the node directly. More...  
void  _setNullNodeMemoryManager () 
Manually set the mNodeMemoryManager to a null ptr. More...  
void  _updateChildren () 
Helper method to update the Node and all children. More...  
void  addChild (Node *child) 
Adds a (precreated) child scene node to this node. More...  
virtual_l2 Vector3  convertLocalToWorldDirection (const Vector3 &localDir, bool useScale) 
Gets the world direction of a point in the node local space useful for simple transforms that don't require a child node. More...  
Vector3  convertLocalToWorldDirectionUpdated (const Vector3 &localDir, bool useScale) 
virtual_l2 Quaternion  convertLocalToWorldOrientation (const Quaternion &localOrientation) 
Gets the world orientation of an orientation in the node local space useful for simple transforms that don't require a child node. More...  
Quaternion  convertLocalToWorldOrientationUpdated (const Quaternion &localOrientation) 
virtual_l2 Vector3  convertLocalToWorldPosition (const Vector3 &localPos) 
Gets the world position of a point in the node local space useful for simple transforms that don't require a child node. More...  
Vector3  convertLocalToWorldPositionUpdated (const Vector3 &localPos) 
virtual_l2 Vector3  convertWorldToLocalDirection (const Vector3 &worldDir, bool useScale) 
Gets the local direction, relative to this node, of the given worldspace direction. More...  
Vector3  convertWorldToLocalDirectionUpdated (const Vector3 &worldDir, bool useScale) 
virtual_l2 Quaternion  convertWorldToLocalOrientation (const Quaternion &worldOrientation) 
Gets the local orientation, relative to this node, of the given worldspace orientation. More...  
Quaternion  convertWorldToLocalOrientationUpdated (const Quaternion &worldOrientation) 
virtual_l2 Vector3  convertWorldToLocalPosition (const Vector3 &worldPos) 
Gets the local position, relative to this node, of the given worldspace position. More...  
Vector3  convertWorldToLocalPositionUpdated (const Vector3 &worldPos) 
virtual Node *  createChild (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC, const Vector3 &translate=Vector3::ZERO, const Quaternion &rotate=Quaternion::IDENTITY) 
Creates an unnamed new Node as a child of this node. More...  
Node *  getChild (size_t index) 
Gets a pointer to a child node. More...  
const Node *  getChild (size_t index) const 
NodeVecIterator  getChildIterator () 
Retrieves an iterator for efficiently looping through all children of this node. More...  
ConstNodeVecIterator  getChildIterator () const 
Retrieves an iterator for efficiently looping through all children of this node. More...  
virtual NodeMemoryManager *  getDefaultNodeMemoryManager (SceneMemoryMgrTypes sceneType)=0 
uint16  getDepthLevel () const 
Returns how deep in the hierarchy we are (eg. 0 > root node, 1 > child of root) More...  
bool  getIndestructibleByClearScene () const 
virtual_l2 bool  getInheritOrientation () const 
Returns true if this node is affected by orientation applied to the parent node. More...  
virtual_l2 bool  getInheritScale () const 
Returns true if this node is affected by scaling factors applied to the parent node. More...  
Listener *  getListener () const 
Gets the current listener for this Node. More...  
virtual_l2 Matrix3  getLocalAxes () const 
Gets a matrix whose columns are the local axes based on the nodes orientation relative to it's parent. More...  
const String &  getName () const 
Returns the name of the node. More...  
virtual_l2 Quaternion  getOrientation () const 
Returns a quaternion representing the nodes orientation. More...  
Node *  getParent () const 
Gets this node's parent (NULL if this is the root). More...  
virtual_l2 Vector3  getPosition () const 
Gets the position of the node relative to it's parent. More...  
virtual_l2 Vector3  getScale () const 
Gets the scaling factor of this node. More...  
virtual Real  getSquaredViewDepth (const Camera *cam) const 
Helper function, get the squared view depth. More...  
virtual OGRE_DEPRECATED const Any &  getUserAny () const 
UserObjectBindings &  getUserObjectBindings () 
Return an instance of user objects binding associated with this class. More...  
const UserObjectBindings &  getUserObjectBindings () const 
Return an instance of user objects binding associated with this class. More...  
bool  isStatic () const 
Checks whether this node is static. More...  
void  migrateTo (NodeMemoryManager *nodeMemoryManager) 
Migrates the node and all of its children to the new memory manager, at the same depth level. More...  
size_t  numChildren () const 
Reports the number of child nodes under this one. More...  
virtual_l2 void  pitch (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) 
Rotate the node around the Xaxis. More...  
virtual void  removeAllChildren () 
Removes all child Nodes attached to this node. More...  
virtual void  removeChild (Node *child) 
Drops the specified child from this node. More...  
virtual_l1 void  resetOrientation () 
Resets the nodes orientation (local axes as world axes, no rotation). More...  
virtual_l2 void  roll (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) 
Rotate the node around the Zaxis. More...  
virtual_l2 void  rotate (const Quaternion &q, TransformSpace relativeTo=TS_LOCAL) 
Rotate the node around an arbitrary axis using a Quarternion. More...  
virtual_l2 void  rotate (const Vector3 &axis, const Radian &angle, TransformSpace relativeTo=TS_LOCAL) 
Rotate the node around an arbitrary axis. More...  
virtual_l2 void  scale (const Vector3 &scale) 
Scales the node, combining it's current scale with the passed in scaling factor. More...  
virtual_l2 void  scale (Real x, Real y, Real z) 
Scales the node, combining it's current scale with the passed in scaling factor. More...  
void  setIndestructibleByClearScene (bool indestructible) 
Calling SceneManager::clearScene won't destroy this node nor detach its objects (but may still destroy parent and children nodes if they're not indestructible) when this is true. More...  
virtual_l2 void  setInheritOrientation (bool inherit) 
Tells the node whether it should inherit orientation from it's parent node. More...  
virtual_l2 void  setInheritScale (bool inherit) 
Tells the node whether it should inherit scaling factors from it's parent node. More...  
virtual void  setListener (Listener *listener) 
Sets a listener for this Node. More...  
void  setName (const String &name) 
Sets a custom name for this node. More...  
virtual_l1 void  setOrientation (Quaternion q) 
Sets the orientation of this node via a quaternion. More...  
virtual_l1 void  setOrientation (Real w, Real x, Real y, Real z) 
Sets the orientation of this node via quaternion parameters. More...  
virtual_l1 void  setPosition (const Vector3 &pos) 
Sets the position of the node relative to it's parent. More...  
virtual_l1 void  setPosition (Real x, Real y, Real z) 
Sets the position of the node relative to it's parent. More...  
virtual_l1 void  setScale (const Vector3 &scale) 
Sets the scaling factor applied to this node. More...  
virtual_l1 void  setScale (Real x, Real y, Real z) 
Sets the scaling factor applied to this node. More...  
virtual bool  setStatic (bool bStatic) 
Turns this Node into static or dynamic. More...  
virtual OGRE_DEPRECATED void  setUserAny (const Any &anything) 
virtual_l2 void  translate (const Matrix3 &axes, const Vector3 &move, TransformSpace relativeTo=TS_PARENT) 
Moves the node along arbitrary axes. More...  
virtual_l2 void  translate (const Matrix3 &axes, Real x, Real y, Real z, TransformSpace relativeTo=TS_PARENT) 
Moves the node along arbitrary axes. More...  
virtual_l2 void  translate (const Vector3 &d, TransformSpace relativeTo=TS_PARENT) 
Moves the node along the Cartesian axes. More...  
virtual_l2 void  translate (Real x, Real y, Real z, TransformSpace relativeTo=TS_PARENT) 
Moves the node along the Cartesian axes. More...  
virtual_l2 void  yaw (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) 
Rotate the node around the Yaxis. More...  
Public Member Functions inherited from Ogre::IdObject  
IdObject (IdType id)  
We don't call generateNewId() here, to prevent objects in the stack (i.e. More...  
IdType  getId () const 
Get the unique id of this object. More...  
bool  operator() (const IdObject &left, const IdObject &right) 
bool  operator() (const IdObject *left, const IdObject *right) 
Static Public Member Functions  
static void  updateAllTransforms (const size_t numNodes, Transform t) 
Public Attributes  
size_t  mGlobalIndex 
Index in the vector holding this node reference (could be our parent node, or a global array tracking all created nodes to avoid memory leaks). More...  
size_t  mParentIndex 
Index in the vector holding this node reference (could be our parent node, or a global array tracking all created nodes to avoid memory leaks). More...  
Class representing a generalpurpose node an articulated scene graph.
typedef vector<Node *>::type Ogre::Node::NodeVec 
Ogre::Node::Node  (  IdType  id, 
NodeMemoryManager *  nodeMemoryManager,  
Node *  parent  
) 
Constructor, should only be called by parent, not directly.
Ogre::Node::Node  (  const Transform &  transformPtrs  ) 
Don't use this constructor unless you know what you're doing.

virtual 

pure virtual 
Internal use, notifies all attached objects that our memory pointers (i.e.
Transform) may have changed (e.g. during cleanups, change of parent, etc)
Implemented in Ogre::SceneNode.
virtual_l2 Quaternion Ogre::Node::_getDerivedOrientation  (  )  const 
Gets the orientation of the node as derived from all parents.
virtual_l2 Quaternion Ogre::Node::_getDerivedOrientationUpdated  (  ) 
Gets the orientation of the node as derived from all parents.
virtual_l2 Vector3 Ogre::Node::_getDerivedPosition  (  )  const 
Gets the position of the node as derived from all parents.
virtual_l2 Vector3 Ogre::Node::_getDerivedPositionUpdated  (  ) 
Gets the position of the node as derived from all parents.
virtual_l2 Vector3 Ogre::Node::_getDerivedScale  (  )  const 
Gets the scaling factor of the node as derived from all parents.
virtual_l2 Vector3 Ogre::Node::_getDerivedScaleUpdated  (  ) 
Gets the scalling factor of the node as derived from all parents.

inline 
Gets the full transformation matrix for this node.
References Ogre::Transform::mDerivedTransform, and Ogre::Transform::mIndex.
virtual_l2 const Matrix4& Ogre::Node::_getFullTransformUpdated  (  ) 
See _getDerivedScaleUpdated() remarks.

virtual 
Called by SceneManager when it is telling we're a static node being dirty Don't call this directly.
Reimplemented in Ogre::SceneNode.
virtual_l2 void Ogre::Node::_setDerivedOrientation  (  const Quaternion &  q  ) 
Sets the final world orientation of the node directly.
virtual_l2 void Ogre::Node::_setDerivedPosition  (  const Vector3 &  pos  ) 
Sets the final world position of the node directly.

inline 
Manually set the mNodeMemoryManager to a null ptr.
void Ogre::Node::_updateChildren  (  ) 
void Ogre::Node::addChild  (  Node *  child  ) 
Adds a (precreated) child scene node to this node.
If it is attached to another node, it must be detached first.
child  The Node which is to become a child node of this one 
virtual_l2 Vector3 Ogre::Node::convertLocalToWorldDirection  (  const Vector3 &  localDir, 
bool  useScale  
) 
Gets the world direction of a point in the node local space useful for simple transforms that don't require a child node.

inline 
virtual_l2 Quaternion Ogre::Node::convertLocalToWorldOrientation  (  const Quaternion &  localOrientation  ) 
Gets the world orientation of an orientation in the node local space useful for simple transforms that don't require a child node.

inline 
virtual_l2 Vector3 Ogre::Node::convertLocalToWorldPosition  (  const Vector3 &  localPos  ) 
Gets the world position of a point in the node local space useful for simple transforms that don't require a child node.
virtual_l2 Vector3 Ogre::Node::convertWorldToLocalDirection  (  const Vector3 &  worldDir, 
bool  useScale  
) 
Gets the local direction, relative to this node, of the given worldspace direction.

inline 
virtual_l2 Quaternion Ogre::Node::convertWorldToLocalOrientation  (  const Quaternion &  worldOrientation  ) 
Gets the local orientation, relative to this node, of the given worldspace orientation.

inline 
virtual_l2 Vector3 Ogre::Node::convertWorldToLocalPosition  (  const Vector3 &  worldPos  ) 
Gets the local position, relative to this node, of the given worldspace position.

virtual 
Creates an unnamed new Node as a child of this node.
translate  Initial translation offset of child relative to parent 
rotate  Initial rotation relative to parent 

inline 
Gets a pointer to a child node.

inline 
NodeVecIterator Ogre::Node::getChildIterator  (  ) 
Retrieves an iterator for efficiently looping through all children of this node.
ConstNodeVecIterator Ogre::Node::getChildIterator  (  )  const 
Retrieves an iterator for efficiently looping through all children of this node.

pure virtual 
Implemented in Ogre::SceneNode.

inline 
Returns how deep in the hierarchy we are (eg. 0 > root node, 1 > child of root)
bool Ogre::Node::getIndestructibleByClearScene  (  )  const 
virtual_l2 bool Ogre::Node::getInheritOrientation  (  )  const 
Returns true if this node is affected by orientation applied to the parent node.
virtual_l2 bool Ogre::Node::getInheritScale  (  )  const 
Returns true if this node is affected by scaling factors applied to the parent node.
virtual_l2 Matrix3 Ogre::Node::getLocalAxes  (  )  const 
Gets a matrix whose columns are the local axes based on the nodes orientation relative to it's parent.

inline 
Returns the name of the node.
virtual_l2 Quaternion Ogre::Node::getOrientation  (  )  const 
Returns a quaternion representing the nodes orientation.
Node* Ogre::Node::getParent  (  )  const 
Gets this node's parent (NULL if this is the root).
virtual_l2 Vector3 Ogre::Node::getPosition  (  )  const 
Gets the position of the node relative to it's parent.
virtual_l2 Vector3 Ogre::Node::getScale  (  )  const 
Gets the scaling factor of this node.
Helper function, get the squared view depth.

inlinevirtual 
Retrieves the custom user value associated with this object.

inline 
Return an instance of user objects binding associated with this class.
You can use it to associate one or more custom objects with this class instance.

inline 
Return an instance of user objects binding associated with this class.
You can use it to associate one or more custom objects with this class instance.
bool Ogre::Node::isStatic  (  )  const 
Checks whether this node is static.
void Ogre::Node::migrateTo  (  NodeMemoryManager *  nodeMemoryManager  ) 
Migrates the node and all of its children to the new memory manager, at the same depth level.
nodeMemoryManager  New memory manager to migrate to. 

inline 
Reports the number of child nodes under this one.
virtual_l2 void Ogre::Node::pitch  (  const Radian &  angle, 
TransformSpace  relativeTo = TS_LOCAL 

) 
Rotate the node around the Xaxis.

virtual 
Removes all child Nodes attached to this node.
Does not delete the nodes, just detaches them from this parent, potentially to be reattached elsewhere.

virtual 
Drops the specified child from this node.
virtual_l1 void Ogre::Node::resetOrientation  (  ) 
Resets the nodes orientation (local axes as world axes, no rotation).
virtual_l2 void Ogre::Node::roll  (  const Radian &  angle, 
TransformSpace  relativeTo = TS_LOCAL 

) 
Rotate the node around the Zaxis.
virtual_l2 void Ogre::Node::rotate  (  const Quaternion &  q, 
TransformSpace  relativeTo = TS_LOCAL 

) 
Rotate the node around an arbitrary axis using a Quarternion.
virtual_l2 void Ogre::Node::rotate  (  const Vector3 &  axis, 
const Radian &  angle,  
TransformSpace  relativeTo = TS_LOCAL 

) 
Rotate the node around an arbitrary axis.
virtual_l2 void Ogre::Node::scale  (  const Vector3 &  scale  ) 
Scales the node, combining it's current scale with the passed in scaling factor.
virtual_l2 void Ogre::Node::scale  (  Real  x, 
Real  y,  
Real  z  
) 
Scales the node, combining it's current scale with the passed in scaling factor.
void Ogre::Node::setIndestructibleByClearScene  (  bool  indestructible  ) 
Calling SceneManager::clearScene won't destroy this node nor detach its objects (but may still destroy parent and children nodes if they're not indestructible) when this is true.
virtual_l2 void Ogre::Node::setInheritOrientation  (  bool  inherit  ) 
Tells the node whether it should inherit orientation from it's parent node.
inherit  If true, this node's orientation will be affected by its parent's orientation. If false, it will not be affected. 
virtual_l2 void Ogre::Node::setInheritScale  (  bool  inherit  ) 
Tells the node whether it should inherit scaling factors from it's parent node.
inherit  If true, this node's scale will be affected by its parent's scale. If false, it will not be affected. 

inlinevirtual 
Sets a listener for this Node.
Reimplemented in Ogre::SceneNode.

inline 
Sets a custom name for this node.
Doesn't have to be unique
virtual_l1 void Ogre::Node::setOrientation  (  Quaternion  q  ) 
Sets the orientation of this node via a quaternion.
virtual_l1 void Ogre::Node::setOrientation  (  Real  w, 
Real  x,  
Real  y,  
Real  z  
) 
Sets the orientation of this node via quaternion parameters.
virtual_l1 void Ogre::Node::setPosition  (  const Vector3 &  pos  ) 
Sets the position of the node relative to it's parent.
virtual_l1 void Ogre::Node::setPosition  (  Real  x, 
Real  y,  
Real  z  
) 
Sets the position of the node relative to it's parent.
virtual_l1 void Ogre::Node::setScale  (  const Vector3 &  scale  ) 
Sets the scaling factor applied to this node.
virtual_l1 void Ogre::Node::setScale  (  Real  x, 
Real  y,  
Real  z  
) 
Sets the scaling factor applied to this node.

virtual 
Turns this Node into static or dynamic.
Reimplemented in Ogre::SceneNode.

inlinevirtual 
Sets any kind of user value on this object.
virtual_l2 void Ogre::Node::translate  (  const Matrix3 &  axes, 
const Vector3 &  move,  
TransformSpace  relativeTo = TS_PARENT 

) 
Moves the node along arbitrary axes.
axes  A 3x3 Matrix containing 3 column vectors each representing the axes X, Y and Z respectively. In this format the standard cartesian axes would be expressed as: 1 0 0 0 1 0 0 0 1i.e. the identity matrix. 
move  Vector relative to the axes above. 
relativeTo  The space which this transform is relative to. 
virtual_l2 void Ogre::Node::translate  (  const Matrix3 &  axes, 
Real  x,  
Real  y,  
Real  z,  
TransformSpace  relativeTo = TS_PARENT 

) 
Moves the node along arbitrary axes.
axes  A 3x3 Matrix containing 3 column vectors each representing the axes X, Y and Z respectively. In this format the standard cartesian axes would be expressed as 1 0 0 0 1 0 0 0 1i.e. the identity matrix. 
x  The x translation component relative to the axes above. 
y  The y translation component relative to the axes above. 
z  The z translation component relative to the axes above. 
relativeTo  The space which this transform is relative to. 
virtual_l2 void Ogre::Node::translate  (  const Vector3 &  d, 
TransformSpace  relativeTo = TS_PARENT 

) 
Moves the node along the Cartesian axes.
d  Vector with x,y,z values representing the translation. 
relativeTo  The space which this transform is relative to. 
virtual_l2 void Ogre::Node::translate  (  Real  x, 
Real  y,  
Real  z,  
TransformSpace  relativeTo = TS_PARENT 

) 
Moves the node along the Cartesian axes.
x  Real x value representing the translation. 
y  Real y value representing the translation. 
z  Real z value representing the translation. 
relativeTo  The space which this transform is relative to. 

static 
virtual_l2 void Ogre::Node::yaw  (  const Radian &  angle, 
TransformSpace  relativeTo = TS_LOCAL 

) 
Rotate the node around the Yaxis.
size_t Ogre::Node::mGlobalIndex 
Index in the vector holding this node reference (could be our parent node, or a global array tracking all created nodes to avoid memory leaks).
Used for O(1) removals.
size_t Ogre::Node::mParentIndex 
Index in the vector holding this node reference (could be our parent node, or a global array tracking all created nodes to avoid memory leaks).
Used for O(1) removals.