![]() |
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: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.
| 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 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 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.