OGRE-Next
3.0.0
Object-Oriented Graphics Rendering Engine
|
Class representing a general-purpose 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 world-space 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 world-space 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 world-space 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 X-axis. 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 Z-axis. 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 Y-axis. 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 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_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 |
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 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 |
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 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.