Class representing a general-purpose node an articulated scene graph. More...
#include <OgreNode.h>
Classes | |
class | DebugRenderable |
Inner class for displaying debug renderable for Node. More... | |
class | Listener |
Listener which gets called back on Node events. More... | |
Public Types | |
typedef MapIterator< ChildNodeMap > | ChildNodeIterator |
typedef HashMap< String, Node * > | ChildNodeMap |
typedef ConstMapIterator < ChildNodeMap > | ConstChildNodeIterator |
enum | TransformSpace { TS_LOCAL, TS_PARENT, TS_WORLD } |
Enumeration denoting the spaces which a transform can be relative to. More... | |
Public Member Functions | |
Node () | |
Constructor, should only be called by parent, not directly. More... | |
Node (const String &name) | |
Constructor, should only be called by parent, not directly. More... | |
virtual | ~Node () |
virtual const Quaternion & | _getDerivedOrientation (void) const |
Gets the orientation of the node as derived from all parents. More... | |
virtual const Vector3 & | _getDerivedPosition (void) const |
Gets the position of the node as derived from all parents. More... | |
virtual const Vector3 & | _getDerivedScale (void) const |
Gets the scaling factor of the node as derived from all parents. More... | |
virtual const Matrix4 & | _getFullTransform (void) const |
Gets the full transformation matrix for this node. More... | |
virtual void | _setDerivedOrientation (const Quaternion &q) |
Sets the final world orientation of the node directly. More... | |
virtual void | _setDerivedPosition (const Vector3 &pos) |
Sets the final world position of the node directly. More... | |
virtual void | _update (bool updateChildren, bool parentHasChanged) |
Internal method to update the Node. More... | |
virtual void | addChild (Node *child) |
Adds a (precreated) child scene node to this node. More... | |
virtual void | cancelUpdate (Node *child) |
Called by children to notify their parent that they no longer need an update. More... | |
virtual 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... | |
virtual 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... | |
virtual Quaternion | convertWorldToLocalOrientation (const Quaternion &worldOrientation) |
Gets the local orientation, relative to this node, of the given world-space orientation. More... | |
virtual Vector3 | convertWorldToLocalPosition (const Vector3 &worldPos) |
Gets the local position, relative to this node, of the given world-space position. More... | |
virtual Node * | createChild (const Vector3 &translate=Vector3::ZERO, const Quaternion &rotate=Quaternion::IDENTITY) |
Creates an unnamed new Node as a child of this node. More... | |
virtual Node * | createChild (const String &name, const Vector3 &translate=Vector3::ZERO, const Quaternion &rotate=Quaternion::IDENTITY) |
Creates a new named Node as a child of this node. More... | |
virtual Node * | getChild (unsigned short index) const |
Gets a pointer to a child node. More... | |
virtual Node * | getChild (const String &name) const |
Gets a pointer to a named child node. More... | |
virtual ChildNodeIterator | getChildIterator (void) |
Retrieves an iterator for efficiently looping through all children of this node. More... | |
virtual ConstChildNodeIterator | getChildIterator (void) const |
Retrieves an iterator for efficiently looping through all children of this node. More... | |
virtual DebugRenderable * | getDebugRenderable (Real scaling) |
Get a debug renderable for rendering the Node. More... | |
virtual bool | getInheritOrientation (void) const |
Returns true if this node is affected by orientation applied to the parent node. More... | |
virtual bool | getInheritScale (void) const |
Returns true if this node is affected by scaling factors applied to the parent node. More... | |
virtual const Quaternion & | getInitialOrientation (void) const |
Gets the initial orientation of this node, see setInitialState for more info. More... | |
virtual const Vector3 & | getInitialPosition (void) const |
Gets the initial position of this node, see setInitialState for more info. More... | |
virtual const Vector3 & | getInitialScale (void) const |
Gets the initial position of this node, see setInitialState for more info. More... | |
virtual Listener * | getListener (void) const |
Gets the current listener for this Node. More... | |
virtual Matrix3 | getLocalAxes (void) const |
Gets a matrix whose columns are the local axes based on the nodes orientation relative to it's parent. More... | |
const String & | getName (void) const |
Returns the name of the node. More... | |
virtual const Quaternion & | getOrientation () const |
Returns a quaternion representing the nodes orientation. More... | |
virtual Node * | getParent (void) const |
Gets this node's parent (NULL if this is the root). More... | |
virtual const Vector3 & | getPosition (void) const |
Gets the position of the node relative to it's parent. More... | |
virtual const Vector3 & | getScale (void) const |
Gets the scaling factor of this node. More... | |
Real | getSquaredViewDepth (const Camera *cam) const |
Helper function, get the squared view depth. More... | |
virtual const Any & | getUserAny (void) 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... | |
virtual void | needUpdate (bool forceParentUpdate=false) |
To be called in the event of transform changes to this node that require it's recalculation. More... | |
virtual unsigned short | numChildren (void) const |
Reports the number of child nodes under this one. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
virtual void | pitch (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) |
Rotate the node around the X-axis. More... | |
virtual void | removeAllChildren (void) |
Removes all child Nodes attached to this node. More... | |
virtual Node * | removeChild (unsigned short index) |
Drops the specified child from this node. More... | |
virtual Node * | removeChild (Node *child) |
Drops the specified child from this node. More... | |
virtual Node * | removeChild (const String &name) |
Drops the named child from this node. More... | |
virtual void | requestUpdate (Node *child, bool forceParentUpdate=false) |
Called by children to notify their parent that they need an update. More... | |
virtual void | resetOrientation (void) |
Resets the nodes orientation (local axes as world axes, no rotation). More... | |
virtual void | resetToInitialState (void) |
Resets the position / orientation / scale of this node to it's initial state, see setInitialState for more info. More... | |
virtual void | roll (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) |
Rotate the node around the Z-axis. More... | |
virtual void | rotate (const Vector3 &axis, const Radian &angle, TransformSpace relativeTo=TS_LOCAL) |
Rotate the node around an arbitrary axis. More... | |
virtual void | rotate (const Quaternion &q, TransformSpace relativeTo=TS_LOCAL) |
Rotate the node around an aritrary axis using a Quarternion. More... | |
virtual void | scale (const Vector3 &scale) |
Scales the node, combining it's current scale with the passed in scaling factor. More... | |
virtual void | scale (Real x, Real y, Real z) |
Scales the node, combining it's current scale with the passed in scaling factor. More... | |
virtual void | setInheritOrientation (bool inherit) |
Tells the node whether it should inherit orientation from it's parent node. More... | |
virtual void | setInheritScale (bool inherit) |
Tells the node whether it should inherit scaling factors from it's parent node. More... | |
virtual void | setInitialState (void) |
Sets the current transform of this node to be the 'initial state' ie that position / orientation / scale to be used as a basis for delta values used in keyframe animation. More... | |
virtual void | setListener (Listener *listener) |
Sets a listener for this Node. More... | |
virtual void | setOrientation (const Quaternion &q) |
Sets the orientation of this node via a quaternion. More... | |
virtual void | setOrientation (Real w, Real x, Real y, Real z) |
Sets the orientation of this node via quaternion parameters. More... | |
virtual void | setPosition (const Vector3 &pos) |
Sets the position of the node relative to it's parent. More... | |
virtual void | setPosition (Real x, Real y, Real z) |
Sets the position of the node relative to it's parent. More... | |
virtual void | setScale (const Vector3 &scale) |
Sets the scaling factor applied to this node. More... | |
virtual void | setScale (Real x, Real y, Real z) |
Sets the scaling factor applied to this node. More... | |
virtual void | setUserAny (const Any &anything) |
virtual void | translate (const Vector3 &d, TransformSpace relativeTo=TS_PARENT) |
Moves the node along the Cartesian axes. More... | |
virtual void | translate (Real x, Real y, Real z, TransformSpace relativeTo=TS_PARENT) |
Moves the node along the Cartesian axes. More... | |
virtual void | translate (const Matrix3 &axes, const Vector3 &move, TransformSpace relativeTo=TS_PARENT) |
Moves the node along arbitrary axes. More... | |
virtual void | translate (const Matrix3 &axes, Real x, Real y, Real z, TransformSpace relativeTo=TS_PARENT) |
Moves the node along arbitrary axes. More... | |
virtual void | yaw (const Radian &angle, TransformSpace relativeTo=TS_LOCAL) |
Rotate the node around the Y-axis. More... | |
Static Public Member Functions | |
static void | processQueuedUpdates (void) |
Process queued 'needUpdate' calls. More... | |
static void | queueNeedUpdate (Node *n) |
Queue a 'needUpdate' call to a node safely. More... | |
Protected Types | |
typedef set< Node * >::type | ChildUpdateSet |
typedef vector< Node * >::type | QueuedUpdates |
Protected Member Functions | |
virtual void | _updateFromParent (void) const |
Triggers the node to update it's combined transforms. More... | |
virtual Node * | createChildImpl (void)=0 |
Internal method for creating a new child node - must be overridden per subclass. More... | |
virtual Node * | createChildImpl (const String &name)=0 |
Internal method for creating a new child node - must be overridden per subclass. More... | |
virtual void | setParent (Node *parent) |
Only available internally - notification of parent. More... | |
virtual void | updateFromParentImpl (void) const |
Class-specific implementation of _updateFromParent. More... | |
Protected Attributes | |
Matrix4 | mCachedTransform |
Cached derived transform as a 4x4 matrix. More... | |
bool | mCachedTransformOutOfDate |
ChildNodeMap | mChildren |
Collection of pointers to direct children; hashmap for efficiency. More... | |
ChildUpdateSet | mChildrenToUpdate |
List of children which need updating, used if self is not out of date but children are. More... | |
DebugRenderable * | mDebug |
Quaternion | mDerivedOrientation |
Cached combined orientation. More... | |
Vector3 | mDerivedPosition |
Cached combined position. More... | |
Vector3 | mDerivedScale |
Cached combined scale. More... | |
bool | mInheritOrientation |
Stores whether this node inherits orientation from it's parent. More... | |
bool | mInheritScale |
Stores whether this node inherits scale from it's parent. More... | |
Quaternion | mInitialOrientation |
The orientation to use as a base for keyframe animation. More... | |
Vector3 | mInitialPosition |
The position to use as a base for keyframe animation. More... | |
Vector3 | mInitialScale |
The scale to use as a base for keyframe animation. More... | |
Listener * | mListener |
Node listener - only one allowed (no list) for size & performance reasons. More... | |
String | mName |
Friendly name of this node, can be automatically generated if you don't care. More... | |
bool | mNeedChildUpdate |
Flag indicating that all children need to be updated. More... | |
bool | mNeedParentUpdate |
Flag to indicate own transform from parent is out of date. More... | |
Quaternion | mOrientation |
Stores the orientation of the node relative to it's parent. More... | |
Node * | mParent |
Pointer to parent node. More... | |
bool | mParentNotified |
Flag indicating that parent has been notified about update request. More... | |
Vector3 | mPosition |
Stores the position/translation of the node relative to its parent. More... | |
bool | mQueuedForUpdate |
Flag indicating that the node has been queued for update. More... | |
Vector3 | mScale |
Stores the scaling factor applied to this node. More... | |
UserObjectBindings | mUserObjectBindings |
User objects binding. More... | |
Static Protected Attributes | |
static NameGenerator | msNameGenerator |
Incremented count for next name extension. More... | |
static QueuedUpdates | msQueuedUpdates |
Class representing a general-purpose node an articulated scene graph.
Definition at line 62 of file OgreNode.h.
Definition at line 77 of file OgreNode.h.
typedef HashMap<String, Node*> Ogre::Node::ChildNodeMap |
Definition at line 76 of file OgreNode.h.
|
protected |
Definition at line 129 of file OgreNode.h.
Definition at line 78 of file OgreNode.h.
|
protected |
Definition at line 229 of file OgreNode.h.
Enumeration denoting the spaces which a transform can be relative to.
Enumerator | |
---|---|
TS_LOCAL |
Transform is relative to the local space. |
TS_PARENT |
Transform is relative to the space of the parent node. |
TS_WORLD |
Transform is relative to world space. |
Definition at line 67 of file OgreNode.h.
Ogre::Node::Node | ( | ) |
Constructor, should only be called by parent, not directly.
Ogre::Node::Node | ( | const String & | name | ) |
Constructor, should only be called by parent, not directly.
|
virtual |
|
virtual |
Gets the orientation of the node as derived from all parents.
|
virtual |
Gets the position of the node as derived from all parents.
|
virtual |
Gets the scaling factor of the node as derived from all parents.
|
virtual |
Gets the full transformation matrix for this node.
|
virtual |
Sets the final world orientation of the node directly.
|
virtual |
Sets the final world position of the node directly.
|
virtual |
Internal method to update the Node.
updateChildren | If true, the update cascades down to all children. Specify false if you wish to update children separately, e.g. because of a more selective SceneManager implementation. |
parentHasChanged | This flag indicates that the parent xform has changed, so the child should retrieve the parent's xform and combine it with its own even if it hasn't changed itself. |
Reimplemented in Ogre::SceneNode, Ogre::PCZSceneNode, and Ogre::BspSceneNode.
|
protectedvirtual |
Triggers the node to update it's combined transforms.
|
virtual |
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 |
Called by children to notify their parent that they no longer need an update.
|
virtual |
Gets the world orientation of an orientation in the node local space useful for simple transforms that don't require a child node.
Gets the world position of a point in the node local space useful for simple transforms that don't require a child node.
|
virtual |
Gets the local orientation, relative to this node, of the given world-space orientation.
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 |
|
virtual |
Creates a new named Node as a child of this node.
translate | Initial translation offset of child relative to parent |
rotate | Initial rotation relative to parent |
|
protectedpure virtual |
Internal method for creating a new child node - must be overridden per subclass.
Implemented in Ogre::Bone, and Ogre::SceneNode.
Internal method for creating a new child node - must be overridden per subclass.
Implemented in Ogre::Bone, and Ogre::SceneNode.
|
virtual |
Gets a pointer to a child node.
Gets a pointer to a named child node.
|
virtual |
Retrieves an iterator for efficiently looping through all children of this node.
|
virtual |
Retrieves an iterator for efficiently looping through all children of this node.
|
virtual |
Get a debug renderable for rendering the Node.
|
virtual |
Returns true if this node is affected by orientation applied to the parent node.
|
virtual |
Returns true if this node is affected by scaling factors applied to the parent node.
|
virtual |
Gets the initial orientation of this node, see setInitialState for more info.
|
virtual |
Gets the initial position of this node, see setInitialState for more info.
|
virtual |
Gets the initial position of this node, see setInitialState for more info.
|
inlinevirtual |
Gets the current listener for this Node.
Definition at line 664 of file OgreNode.h.
|
virtual |
Gets a matrix whose columns are the local axes based on the nodes orientation relative to it's parent.
const String& Ogre::Node::getName | ( | void | ) | const |
Returns the name of the node.
|
virtual |
Returns a quaternion representing the nodes orientation.
|
virtual |
Gets this node's parent (NULL if this is the root).
|
virtual |
Gets the position of the node relative to it's parent.
|
virtual |
Gets the scaling factor of this node.
Helper function, get the squared view depth.
|
inlinevirtual |
Retrieves the custom user value associated with this object.
Definition at line 754 of file OgreNode.h.
|
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.
Definition at line 760 of file OgreNode.h.
|
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.
Definition at line 766 of file OgreNode.h.
|
virtual |
To be called in the event of transform changes to this node that require it's recalculation.
forceParentUpdate | Even if the node thinks it has already told it's parent, tell it anyway |
Reimplemented in Ogre::Bone, and Ogre::TagPoint.
|
virtual |
Reports the number of child nodes under this one.
|
inlineinherited |
Definition at line 95 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 101 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 107 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 112 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 118 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
operator new, with debug line info
Definition at line 67 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 72 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
placement operator new
Definition at line 78 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
array operator new, with debug line info
Definition at line 85 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 90 of file OgreMemoryAllocatedObject.h.
|
virtual |
Rotate the node around the X-axis.
|
static |
Process queued 'needUpdate' calls.
|
static |
Queue a 'needUpdate' call to a node safely.
|
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.
Reimplemented in Ogre::OctreeNode.
|
virtual |
Drops the specified child from this node.
Reimplemented in Ogre::OctreeNode.
Drops the specified child from this node.
Reimplemented in Ogre::OctreeNode.
Drops the named child from this node.
Reimplemented in Ogre::OctreeNode.
|
virtual |
Called by children to notify their parent that they need an update.
forceParentUpdate | Even if the node thinks it has already told it's parent, tell it anyway |
|
virtual |
Resets the nodes orientation (local axes as world axes, no rotation).
|
virtual |
Resets the position / orientation / scale of this node to it's initial state, see setInitialState for more info.
|
virtual |
Rotate the node around the Z-axis.
|
virtual |
Rotate the node around an arbitrary axis.
|
virtual |
Rotate the node around an aritrary axis using a Quarternion.
|
virtual |
Scales the node, combining it's current scale with the passed in scaling factor.
Scales the node, combining it's current scale with the passed in scaling factor.
|
virtual |
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 |
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. |
|
virtual |
Sets the current transform of this node to be the 'initial state' ie that position / orientation / scale to be used as a basis for delta values used in keyframe animation.
|
inlinevirtual |
Sets a listener for this Node.
Definition at line 660 of file OgreNode.h.
|
virtual |
Sets the orientation of this node via a quaternion.
Sets the orientation of this node via quaternion parameters.
|
protectedvirtual |
Only available internally - notification of parent.
Reimplemented in Ogre::SceneNode.
|
virtual |
Sets the position of the node relative to it's parent.
Sets the position of the node relative to it's parent.
|
virtual |
Sets the scaling factor applied to this node.
Sets the scaling factor applied to this node.
|
inlinevirtual |
Sets any kind of user value on this object.
Definition at line 749 of file OgreNode.h.
|
virtual |
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 |
Moves the node along the Cartesian axes.
x | |
y | |
z | Real x, y and z values representing the translation. |
relativeTo | The space which this transform is relative to. |
|
virtual |
Moves the node along arbitrary axes.
axes | A 3x3 Matrix containg 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 |
Moves the node along arbitrary axes.
axes | A 3x3 Matrix containg 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,y,z | Translation components relative to the axes above. |
relativeTo | The space which this transform is relative to. |
|
protectedvirtual |
Class-specific implementation of _updateFromParent.
Reimplemented in Ogre::TagPoint, Ogre::SceneNode, and Ogre::PCZSceneNode.
|
virtual |
Rotate the node around the Y-axis.
Reimplemented in Ogre::SceneNode.
|
mutableprotected |
Cached derived transform as a 4x4 matrix.
Definition at line 223 of file OgreNode.h.
|
mutableprotected |
Definition at line 224 of file OgreNode.h.
|
protected |
Collection of pointers to direct children; hashmap for efficiency.
Definition at line 127 of file OgreNode.h.
|
mutableprotected |
List of children which need updating, used if self is not out of date but children are.
Definition at line 131 of file OgreNode.h.
|
protected |
Definition at line 232 of file OgreNode.h.
|
mutableprotected |
Cached combined orientation.
Definition at line 172 of file OgreNode.h.
|
mutableprotected |
Cached combined position.
Definition at line 181 of file OgreNode.h.
|
mutableprotected |
Cached combined scale.
Definition at line 190 of file OgreNode.h.
|
protected |
Stores whether this node inherits orientation from it's parent.
Definition at line 157 of file OgreNode.h.
|
protected |
Stores whether this node inherits scale from it's parent.
Definition at line 160 of file OgreNode.h.
|
protected |
The orientation to use as a base for keyframe animation.
Definition at line 218 of file OgreNode.h.
|
protected |
The position to use as a base for keyframe animation.
Definition at line 216 of file OgreNode.h.
|
protected |
The scale to use as a base for keyframe animation.
Definition at line 220 of file OgreNode.h.
|
protected |
Node listener - only one allowed (no list) for size & performance reasons.
Definition at line 227 of file OgreNode.h.
|
protected |
Friendly name of this node, can be automatically generated if you don't care.
Definition at line 142 of file OgreNode.h.
|
mutableprotected |
Flag indicating that all children need to be updated.
Definition at line 135 of file OgreNode.h.
|
mutableprotected |
Flag to indicate own transform from parent is out of date.
Definition at line 133 of file OgreNode.h.
|
protected |
Stores the orientation of the node relative to it's parent.
Definition at line 148 of file OgreNode.h.
|
protected |
Pointer to parent node.
Definition at line 125 of file OgreNode.h.
|
mutableprotected |
Flag indicating that parent has been notified about update request.
Definition at line 137 of file OgreNode.h.
|
protected |
Stores the position/translation of the node relative to its parent.
Definition at line 151 of file OgreNode.h.
|
mutableprotected |
Flag indicating that the node has been queued for update.
Definition at line 139 of file OgreNode.h.
|
protected |
Stores the scaling factor applied to this node.
Definition at line 154 of file OgreNode.h.
|
staticprotected |
Incremented count for next name extension.
Definition at line 145 of file OgreNode.h.
|
staticprotected |
Definition at line 230 of file OgreNode.h.
|
protected |
User objects binding.
Definition at line 235 of file OgreNode.h.