|  | OGRE-Next 3.0.0
    Object-Oriented Graphics Rendering Engine | 
Class representing a general-purpose node an articulated scene graph. More...
#include <OgreNode.h>
 Inheritance diagram for Ogre::Node:
 Inheritance diagram for Ogre::Node:| 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. | |
| Node (IdType id, NodeMemoryManager *nodeMemoryManager, Node *parent) | |
| Constructor, should only be called by parent, not directly. | |
| virtual | ~Node () | 
| virtual void | _callMemoryChangeListeners ()=0 | 
| Internal use, notifies all attached objects that our memory pointers (i.e. | |
| virtual_l2 Quaternion | _getDerivedOrientation () const | 
| Gets the orientation of the node as derived from all parents. | |
| virtual_l2 Quaternion | _getDerivedOrientationUpdated () | 
| Gets the orientation of the node as derived from all parents. | |
| virtual_l2 Vector3 | _getDerivedPosition () const | 
| Gets the position of the node as derived from all parents. | |
| virtual_l2 Vector3 | _getDerivedPositionUpdated () | 
| Gets the position of the node as derived from all parents. | |
| virtual_l2 Vector3 | _getDerivedScale () const | 
| Gets the scaling factor of the node as derived from all parents. | |
| virtual_l2 Vector3 | _getDerivedScaleUpdated () | 
| Gets the scalling factor of the node as derived from all parents. | |
| virtual_l2 FORCEINLINE const Matrix4 & | _getFullTransform () const | 
| Gets the full transformation matrix for this node. | |
| virtual_l2 const Matrix4 & | _getFullTransformUpdated () | 
| See _getDerivedScaleUpdated() remarks. | |
| Transform & | _getTransform () | 
| Returns a direct access to the Transform state. | |
| virtual void | _notifyStaticDirty () const | 
| Called by SceneManager when it is telling we're a static node being dirty Don't call this directly. | |
| virtual void | _setCachedTransformOutOfDate () | 
| virtual_l2 void | _setDerivedOrientation (const Quaternion &q) | 
| Sets the final world orientation of the node directly. | |
| virtual_l2 void | _setDerivedPosition (const Vector3 &pos) | 
| Sets the final world position of the node directly. | |
| void | _setNullNodeMemoryManager () | 
| Manually set the mNodeMemoryManager to a null ptr. | |
| void | _updateChildren () | 
| Helper method to update the Node and all children. | |
| void | addChild (Node *child) | 
| Adds a (precreated) child scene node to this node. | |
| 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. | |
| 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. | |
| 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. | |
| 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 world-space direction. | |
| 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 world-space orientation. | |
| Quaternion | convertWorldToLocalOrientationUpdated (const Quaternion &worldOrientation) | 
| virtual_l2 Vector3 | convertWorldToLocalPosition (const Vector3 &worldPos) | 
| Gets the local position, relative to this node, of the given world-space position. | |
| 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. | |
| Node * | getChild (size_t index) | 
| Gets a pointer to a child node. | |
| const Node * | getChild (size_t index) const | 
| NodeVecIterator | getChildIterator () | 
| Retrieves an iterator for efficiently looping through all children of this node. | |
| ConstNodeVecIterator | getChildIterator () const | 
| Retrieves an iterator for efficiently looping through all children of this node. | |
| 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) | |
| bool | getIndestructibleByClearScene () const | 
| virtual_l2 bool | getInheritOrientation () const | 
| Returns true if this node is affected by orientation applied to the parent node. | |
| virtual_l2 bool | getInheritScale () const | 
| Returns true if this node is affected by scaling factors applied to the parent node. | |
| Listener * | getListener () const | 
| Gets the current listener for this Node. | |
| virtual_l2 Matrix3 | getLocalAxes () const | 
| Gets a matrix whose columns are the local axes based on the nodes orientation relative to it's parent. | |
| const String & | getName () const | 
| Returns the name of the node. | |
| virtual_l2 Quaternion | getOrientation () const | 
| Returns a quaternion representing the nodes orientation. | |
| Node * | getParent () const | 
| Gets this node's parent (NULL if this is the root). | |
| virtual_l2 Vector3 | getPosition () const | 
| Gets the position of the node relative to it's parent. | |
| virtual_l2 Vector3 | getScale () const | 
| Gets the scaling factor of this node. | |
| virtual Real | getSquaredViewDepth (const Camera *cam) const | 
| Helper function, get the squared view depth. | |
| virtual OGRE_DEPRECATED const Any & | getUserAny () const | 
| UserObjectBindings & | getUserObjectBindings () | 
| Return an instance of user objects binding associated with this class. | |
| const UserObjectBindings & | getUserObjectBindings () const | 
| Return an instance of user objects binding associated with this class. | |
| bool | isCachedTransformOutOfDate () const | 
| bool | isStatic () const | 
| Checks whether this node is static. | |
| void | migrateTo (NodeMemoryManager *nodeMemoryManager) | 
| Migrates the node and all of its children to the new memory manager, at the same depth level. | |
| size_t | numChildren () const | 
| Reports the number of child nodes under this one. | |
| virtual_l2 void | pitch (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) | 
| Rotate the node around the X-axis. | |
| virtual void | removeAllChildren () | 
| Removes all child Nodes attached to this node. | |
| virtual void | removeChild (Node *child) | 
| Drops the specified child from this node. | |
| virtual_l1 void | resetOrientation () | 
| Resets the nodes orientation (local axes as world axes, no rotation). | |
| virtual_l2 void | roll (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) | 
| Rotate the node around the Z-axis. | |
| virtual_l2 void | rotate (const Quaternion &q, TransformSpace relativeTo=TS_LOCAL) | 
| Rotate the node around an arbitrary axis using a Quarternion. | |
| virtual_l2 void | rotate (const Vector3 &axis, const Radian &angle, TransformSpace relativeTo=TS_LOCAL) | 
| Rotate the node around an arbitrary axis. | |
| virtual_l2 void | scale (const Vector3 &scale) | 
| Scales the node, combining it's current scale with the passed in scaling factor. | |
| virtual_l2 void | scale (Real x, Real y, Real z) | 
| Scales the node, combining it's current scale with the passed in scaling factor. | |
| 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. | |
| virtual_l2 void | setInheritOrientation (bool inherit) | 
| Tells the node whether it should inherit orientation from it's parent node. | |
| virtual_l2 void | setInheritScale (bool inherit) | 
| Tells the node whether it should inherit scaling factors from it's parent node. | |
| virtual void | setListener (Listener *listener) | 
| Sets a listener for this Node. | |
| void | setName (const String &name) | 
| Sets a custom name for this node. | |
| virtual_l1 void | setOrientation (Quaternion q) | 
| Sets the orientation of this node via a quaternion. | |
| virtual_l1 void | setOrientation (Real w, Real x, Real y, Real z) | 
| Sets the orientation of this node via quaternion parameters. | |
| virtual_l1 void | setPosition (const Vector3 &pos) | 
| Sets the position of the node relative to it's parent. | |
| virtual_l1 void | setPosition (Real x, Real y, Real z) | 
| Sets the position of the node relative to it's parent. | |
| virtual_l1 void | setScale (const Vector3 &scale) | 
| Sets the scaling factor applied to this node. | |
| virtual_l1 void | setScale (Real x, Real y, Real z) | 
| Sets the scaling factor applied to this node. | |
| virtual bool | setStatic (bool bStatic) | 
| Turns this Node into static or dynamic. | |
| 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. | |
| virtual_l2 void | translate (const Matrix3 &axes, Real x, Real y, Real z, TransformSpace relativeTo=TS_PARENT) | 
| Moves the node along arbitrary axes. | |
| virtual_l2 void | translate (const Vector3 &d, TransformSpace relativeTo=TS_PARENT) | 
| Moves the node along the Cartesian axes. | |
| virtual_l2 void | translate (Real x, Real y, Real z, TransformSpace relativeTo=TS_PARENT) | 
| Moves the node along the Cartesian axes. | |
| virtual_l2 void | yaw (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) | 
| Rotate the node around the Y-axis. | |
|  Public Member Functions inherited from Ogre::IdObject | |
| IdObject (IdType id) | |
| We don't call generateNewId() here, to prevent objects in the stack (i.e. | |
| IdType | getId () const | 
| Get the unique id of this object. | |
| 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). | |
| 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). | |
Class representing a general-purpose 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, Ogre::Transform::mIndex, and OGRE_ASSERT_MEDIUM.
| 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 | 
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 world-space direction.
| 
 | inline | 
| virtual_l2 Quaternion Ogre::Node::convertWorldToLocalOrientation | ( | const Quaternion & | worldOrientation | ) | 
Gets the local orientation, relative to this node, of the given world-space orientation.
| 
 | inline | 
| virtual_l2 Vector3 Ogre::Node::convertWorldToLocalPosition | ( | const Vector3 & | worldPos | ) | 
Gets the local position, relative to this node, of the given world-space 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 | 
| 
 | 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.
| 
 | inline | 
Referenced by Ogre::Bone::_getFullTransform().
| 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 X-axis.
| 
 | 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 Z-axis.
| 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 | 
| 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 1
    i.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 1
    i.e. the identity matrix. | 
| x | The xtranslation component relative to the axes above. | 
| y | The ytranslation component relative to the axes above. | 
| z | The ztranslation 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 xvalue representing the translation. | 
| y | Real yvalue representing the translation. | 
| z | Real zvalue 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 Y-axis.
| 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.