OGRE: Ogre::SceneNode Class Reference

| OGRE 2.2.4 Object-Oriented Graphics Rendering Engine

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Ogre::SceneNode Class Reference
Core | Component » Scene

Class representing a node in the scene graph. More...

`#include <OgreSceneNode.h>`

Inheritance diagram for Ogre::SceneNode:
[legend]

## Public Types
typedef ConstVectorIterator< NodeVec > | ConstNodeVecIterator
typedef ConstVectorIterator< ObjectVec > | ConstObjectIterator
typedef vector< Node * >::type | NodeVec
typedef VectorIterator< NodeVec > | NodeVecIterator
typedef VectorIterator< ObjectVec > | ObjectIterator
typedef vector< MovableObject * >::type | ObjectVec
enum | TransformSpace { TS_LOCAL, TS_PARENT, TS_WORLD }
| Enumeration denoting the spaces which a transform can be relative to. More...

## Public Member Functions
| SceneNode (const Transform &transformPtrs)
| Don't use this constructor unless you know what you're doing. More...
| SceneNode (IdType id, SceneManager *creator, NodeMemoryManager *nodeMemoryManager, SceneNode *parent)
| Constructor, only to be called by the creator SceneManager. More...
virtual | ~SceneNode ()
virtual_l1 void | _attachBone (SkeletonInstance *skeletonInstance, Bone *bone)
| Attaches a bone to this SceneNode. More...
virtual void | _callMemoryChangeListeners (void)
| Internal use, notifies all attached objects that our memory pointers (i.e. More...
virtual_l1 void | _detachAllBones (SkeletonInstance *skeletonInstance)
| Detaches all bones from this SceneNode that belong to the given SkeletonInstance. More...
virtual_l1 void | _detachBone (SkeletonInstance *skeletonInstance, Bone *bone)
| Detaches a bone from this SceneNode. More...
virtual_l2 Quaternion | _getDerivedOrientation (void) const
| Gets the orientation of the node as derived from all parents. More...
virtual_l2 Quaternion | _getDerivedOrientationUpdated (void)
| Gets the orientation of the node as derived from all parents. More...
virtual_l2 Vector3 | _getDerivedPosition (void) const
| Gets the position of the node as derived from all parents. More...
virtual_l2 Vector3 | _getDerivedPositionUpdated (void)
| Gets the position of the node as derived from all parents. More...
virtual_l2 Vector3 | _getDerivedScale (void) const
| Gets the scaling factor of the node as derived from all parents. More...
virtual_l2 Vector3 | _getDerivedScaleUpdated (void)
| Gets the scalling factor of the node as derived from all parents. More...
virtual_l2 FORCEINLINE const Matrix4 & | _getFullTransform (void) const
| Gets the full transformation matrix for this node. More...
virtual_l2 const Matrix4 & | _getFullTransformUpdated (void)
| @See _getDerivedScaleUpdated remarks. More...
Transform & | _getTransform ()
| Returns a direct access to the Transform state. More...
virtual void | _notifyStaticDirty (void) 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 (void)
| Manually set the mNodeMemoryManager to a null ptr. More...
void | addChild (Node *child)
| Adds a (precreated) child scene node to this node. More...
virtual_l2 void | attachObject (MovableObject *obj)
| Adds an instance of a scene object 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...
virtual SceneNode * | createChildSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC, const Vector3 &translate=Vector3::ZERO, const Quaternion &rotate=Quaternion::IDENTITY)
| Creates an unnamed new SceneNode as a child of this node. More...
virtual void | detachAllBones (void)
| Detaches all bones from from this SceneNode. It is safe to use directly. More...
virtual void | detachAllObjects (void)
| Detaches all objects attached to this node. More...
virtual_l2 void | detachObject (MovableObject *obj)
| Detaches an object by pointer. More...
virtual void | flipVisibility (bool cascade=true)
| Inverts the visibility of all objects attached to this node. More...
MovableObject * | getAttachedObject (const String &name)
| Retrieves a pointer to an attached object. More...
MovableObject * | getAttachedObject (size_t index)
| Retrieves a pointer to an attached object. More...
virtual ObjectIterator | getAttachedObjectIterator (void)
| Retrieves an iterator which can be used to efficiently step through the objects attached to this node. More...
virtual ConstObjectIterator | getAttachedObjectIterator (void) const
| Retrieves an iterator which can be used to efficiently step through the objects attached to 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 (void)
| Retrieves an iterator for efficiently looping through all children of this node. More...
ConstNodeVecIterator | getChildIterator (void) const
| Retrieves an iterator for efficiently looping through all children of this node. More...
SceneManager * | getCreator (void) const
| Gets the creator of this scene node. More...
virtual NodeMemoryManager * | getDefaultNodeMemoryManager (SceneMemoryMgrTypes sceneType)
| As Node::getDebugRenderable, except scaling is automatically determined. More...
uint16 | getDepthLevel () const
| Returns how deep in the hierarchy we are (eg. 0 -> root node, 1 -> child of root) More...
IdType | getId () const
| Get the unique id of this object. More...
bool | getIndestructibleByClearScene (void) const
virtual_l2 bool | getInheritOrientation (void) const
| Returns true if this node is affected by orientation applied to the parent node. More...
virtual_l2 bool | getInheritScale (void) const
| Returns true if this node is affected by scaling factors applied to the parent node. More...
Listener * | getListener (void) const
| Gets the current listener for this Node. More...
virtual_l2 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_l2 Quaternion | getOrientation () const
| Returns a quaternion representing the nodes orientation. More...
Node * | getParent (void) const
| Gets this node's parent (NULL if this is the root). More...
SceneNode * | getParentSceneNode (void) const
| Gets the parent of this SceneNode. More...
virtual_l2 Vector3 | getPosition (void) const
| Gets the position of the node relative to it's parent. More...
virtual_l2 Vector3 | getScale (void) 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 (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...
bool | isStatic () const
| Checks whether this node is static. @See setStatic. More...
bool | isYawFixed (void) const
virtual void | lookAt (const Vector3 &targetPoint, TransformSpace relativeTo, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
| Points the local -Z direction of this node at a point in space. 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 | numAttachedObjects (void) const
| Reports the number of objects attached to this node. More...
size_t | numChildren (void) const
| Reports the number of child nodes under this one. More...
void | operator delete (void *ptr)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete (void *ptr, void *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz)
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 *ptr)
| placement operator new More...
void * | operator new[] (size_t sz)
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
bool | operator() (const IdObject &left, const IdObject &right)
bool | operator() (const IdObject *left, const IdObject *right)
virtual_l2 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 void | removeAndDestroyAllChildren (void)
| Removes and destroys all children of this node. More...
virtual void | removeAndDestroyChild (SceneNode *sceneNode)
| This method removes and destroys the child and all of its children. More...
virtual void | removeChild (Node *child)
| Drops the specified child from this node. More...
virtual_l1 void | resetOrientation (void)
| 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 aritrary 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...
virtual void | setAutoTracking (bool enabled, SceneNode *const target=0, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z, const Vector3 &offset=Vector3::ZERO)
| Enables / disables automatic tracking of another SceneNode. More...
virtual void | setDirection (const Vector3 &vec, TransformSpace relativeTo=TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
| Sets the node's direction vector ie it's local -z. More...
virtual void | setDirection (Real x, Real y, Real z, TransformSpace relativeTo=TS_LOCAL, const Vector3 &localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
| Sets the node's direction vector ie it's local -z. More...
void | setFixedYawAxis (bool useFixed, const Vector3 &fixedAxis=Vector3::UNIT_Y)
| Tells the node whether to yaw around it's own local Y axis or a fixed axis of choice. 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 void | setVisible (bool visible, bool cascade=true)
| Makes all objects attached to this node become visible / invisible. More...
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...
void | yaw (const Radian &angle, TransformSpace relativeTo=TS_LOCAL)
| Rotate the node around the Y-axis. More...

## Static Public Member Functions
static void | updateAllTransforms (const size_t numNodes, Transform t)
| @See SceneManager::updateAllTransforms() More...

## 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...

## Detailed Description

Class representing a node in the scene graph.

Remarks
  A SceneNode is a type of Node which is used to organise objects in a scene. It has the same hierarchical transformation properties of the generic Node class, but also adds the ability to attach world objects to the node, and stores hierarchical bounding volumes of the nodes in the tree. Child nodes are contained within the bounds of the parent, and so on down the tree, allowing for fast culling.

## Member Typedef Documentation

## ◆ ConstNodeVecIterator

typedef ConstVectorIterator<NodeVec> Ogre::Node::ConstNodeVecIterator
| inherited

## ◆ ConstObjectIterator

typedef ConstVectorIterator<ObjectVec> Ogre::SceneNode::ConstObjectIterator

## ◆ NodeVec

typedef vector<Node*>::type Ogre::Node::NodeVec
| inherited

## ◆ NodeVecIterator

typedef VectorIterator<NodeVec> Ogre::Node::NodeVecIterator
| inherited

## ◆ ObjectIterator

typedef VectorIterator<ObjectVec> Ogre::SceneNode::ObjectIterator

## ◆ ObjectVec

typedef vector<MovableObject*>::type Ogre::SceneNode::ObjectVec

## Member Enumeration Documentation

## ◆ TransformSpace

enum Ogre::Node::TransformSpace
| inherited

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.

## Constructor & Destructor Documentation

## ◆ SceneNode() [1/2]

Ogre::SceneNode::SceneNode | ( | IdType | id,
|  | SceneManager * | creator,
|  | NodeMemoryManager * | nodeMemoryManager,
|  | SceneNode * | parent
| ) |  |

Constructor, only to be called by the creator SceneManager.

## ◆ SceneNode() [2/2]

Ogre::SceneNode::SceneNode | ( | const Transform & | transformPtrs | ) |

Don't use this constructor unless you know what you're doing.

@See NodeMemoryManager::mDummyNode

## ◆ ~SceneNode()

virtual Ogre::SceneNode::~SceneNode | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ _attachBone()

virtual_l1 void Ogre::SceneNode::_attachBone | ( | SkeletonInstance * | skeletonInstance,
|  | Bone * | bone
| ) |  |

Attaches a bone to this SceneNode.

Don't use directly.

See also
  SkeletonInstance::setSceneNodeAsParentOfBone

## ◆ _callMemoryChangeListeners()

virtual void Ogre::SceneNode::_callMemoryChangeListeners | ( | void |  | ) |
| 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)

Implements Ogre::Node.

## ◆ _detachAllBones()

virtual_l1 void Ogre::SceneNode::_detachAllBones | ( | SkeletonInstance * | skeletonInstance | ) |

Detaches all bones from this SceneNode that belong to the given SkeletonInstance.

Don't use directly.

See also
  SkeletonInstance::setSceneNodeAsParentOfBone

## ◆ _detachBone()

virtual_l1 void Ogre::SceneNode::_detachBone | ( | SkeletonInstance * | skeletonInstance,
|  | Bone * | bone
| ) |  |

Detaches a bone from this SceneNode.

Don't use directly.

See also
  SkeletonInstance::setSceneNodeAsParentOfBone

## ◆ _getDerivedOrientation()

virtual_l2 Quaternion Ogre::Node::_getDerivedOrientation | ( | void |  | ) | const
| inherited

Gets the orientation of the node as derived from all parents.

Remarks
  Assumes the caches are already updated. Will trigger an assert otherwise. @See _getDerivedOrientationUpdated if you need the update process to be guaranteed

## ◆ _getDerivedOrientationUpdated()

virtual_l2 Quaternion Ogre::Node::_getDerivedOrientationUpdated | ( | void |  | ) |
| inherited

Gets the orientation of the node as derived from all parents.

Remarks
  Unlike _getDerivedOrientation, this function guarantees the cache stays up to date. It is strongly advised against calling this function for a large number of nodes. Refactor your queries so that they happen after SceneManager::UpdateAllTransforms() has been called

## ◆ _getDerivedPosition()

virtual_l2 Vector3 Ogre::Node::_getDerivedPosition | ( | void |  | ) | const
| inherited

Gets the position of the node as derived from all parents.

Remarks
  Assumes the caches are already updated. Will trigger an assert otherwise. @See _getDerivedPositionUpdated if you need the update process to be guaranteed

## ◆ _getDerivedPositionUpdated()

virtual_l2 Vector3 Ogre::Node::_getDerivedPositionUpdated | ( | void |  | ) |
| inherited

Gets the position of the node as derived from all parents.

Remarks
  Unlike _getDerivedPosition, this function guarantees the cache stays up to date. It is strongly advised against calling this function for a large number of nodes. Refactor your queries so that they happen after SceneManager::UpdateAllTransforms() has been called

## ◆ _getDerivedScale()

virtual_l2 Vector3 Ogre::Node::_getDerivedScale | ( | void |  | ) | const
| inherited

Gets the scaling factor of the node as derived from all parents.

Remarks
  Assumes the caches are already updated. Will trigger an assert otherwise. @See _getDerivedScaleUpdated if you need the update process to be guaranteed

## ◆ _getDerivedScaleUpdated()

virtual_l2 Vector3 Ogre::Node::_getDerivedScaleUpdated | ( | void |  | ) |
| inherited

Gets the scalling factor of the node as derived from all parents.

Remarks
  Unlike _getDerivedScale, this function guarantees the cache stays up to date. It is STRONGLY advised against calling this function for a large number of nodes. Refactor your queries so that they happen after SceneManager::UpdateAllTransforms() has been called

## ◆ _getFullTransform()

virtual_l2 FORCEINLINE const Matrix4& Ogre::Node::_getFullTransform | ( | void |  | ) | const
| inlineinherited

Gets the full transformation matrix for this node.

Remarks
  This method returns the full transformation matrix for this node, including the effect of any parent node transformations, provided they have been updated using the Node::_update method. This should only be called by a SceneManager which knows the derived transforms have been updated before calling this method. Applications using Ogre should just use the relative transforms. Assumes the caches are already updated

References Ogre::Transform::mDerivedTransform, and Ogre::Transform::mIndex.

## ◆ _getFullTransformUpdated()

virtual_l2 const Matrix4& Ogre::Node::_getFullTransformUpdated | ( | void |  | ) |
| inherited

@See _getDerivedScaleUpdated remarks.

@See _getFullTransform

## ◆ _getTransform()

Transform& Ogre::Node::_getTransform | ( |  | ) |
| inlineinherited

Returns a direct access to the Transform state.

## ◆ _notifyStaticDirty()

virtual void Ogre::SceneNode::_notifyStaticDirty | ( | void |  | ) | const
| virtual

Called by SceneManager when it is telling we're a static node being dirty Don't call this directly.

See also
  SceneManager::notifyStaticDirty

Reimplemented from Ogre::Node.

## ◆ _setDerivedOrientation()

virtual_l2 void Ogre::Node::_setDerivedOrientation | ( | const Quaternion & | q | ) |
| inherited

Sets the final world orientation of the node directly.

Remarks
  It's advisable to use the local setOrientation if possible, this simply does the conversion for you.

## ◆ _setDerivedPosition()

virtual_l2 void Ogre::Node::_setDerivedPosition | ( | const Vector3 & | pos | ) |
| inherited

Sets the final world position of the node directly.

Remarks
  It's advisable to use the local setPosition if possible

## ◆ _setNullNodeMemoryManager()

void Ogre::Node::_setNullNodeMemoryManager | ( | void |  | ) |
| inlineinherited

Manually set the mNodeMemoryManager to a null ptr.

Remarks
  Node doesn't follow the rule of three. This function is useful when you make multiple hard copies but only the destructor must release the mTransform only slots once.

## ◆ addChild()

void Ogre::Node::addChild | ( | Node * | child | ) |
| inherited

Adds a (precreated) child scene node to this node.

If it is attached to another node, it must be detached first.

Parameters

  child | The Node which is to become a child node of this one

## ◆ attachObject()

virtual_l2 void Ogre::SceneNode::attachObject | ( | MovableObject * | obj | ) |

Adds an instance of a scene object to this node.

Remarks
  Scene objects can include Entity objects, Camera objects, Light objects, ParticleSystem objects etc. Anything that subclasses from MovableObject.

## ◆ convertLocalToWorldDirection()

virtual_l2 Vector3 Ogre::Node::convertLocalToWorldDirection | ( | const Vector3 & | localDir,
|  | bool | useScale
| ) |  |
| inherited

Gets the world direction of a point in the node local space useful for simple transforms that don't require a child node.

## ◆ convertLocalToWorldDirectionUpdated()

Vector3 Ogre::Node::convertLocalToWorldDirectionUpdated | ( | const Vector3 & | localDir,
|  | bool | useScale
| ) |  |
| inlineinherited

## ◆ convertLocalToWorldOrientation()

virtual_l2 Quaternion Ogre::Node::convertLocalToWorldOrientation | ( | const Quaternion & | localOrientation | ) |
| inherited

Gets the world orientation of an orientation in the node local space useful for simple transforms that don't require a child node.

## ◆ convertLocalToWorldOrientationUpdated()

Quaternion Ogre::Node::convertLocalToWorldOrientationUpdated | ( | const Quaternion & | localOrientation | ) |
| inlineinherited

## ◆ convertLocalToWorldPosition()

virtual_l2 Vector3 Ogre::Node::convertLocalToWorldPosition | ( | const Vector3 & | localPos | ) |
| inherited

Gets the world position of a point in the node local space useful for simple transforms that don't require a child node.

## ◆ convertLocalToWorldPositionUpdated()

Vector3 Ogre::Node::convertLocalToWorldPositionUpdated | ( | const Vector3 & | localPos | ) |
| inlineinherited

## ◆ convertWorldToLocalDirection()

virtual_l2 Vector3 Ogre::Node::convertWorldToLocalDirection | ( | const Vector3 & | worldDir,
|  | bool | useScale
| ) |  |
| inherited

Gets the local direction, relative to this node, of the given world-space direction.

## ◆ convertWorldToLocalDirectionUpdated()

Vector3 Ogre::Node::convertWorldToLocalDirectionUpdated | ( | const Vector3 & | worldDir,
|  | bool | useScale
| ) |  |
| inlineinherited

## ◆ convertWorldToLocalOrientation()

virtual_l2 Quaternion Ogre::Node::convertWorldToLocalOrientation | ( | const Quaternion & | worldOrientation | ) |
| inherited

Gets the local orientation, relative to this node, of the given world-space orientation.

## ◆ convertWorldToLocalOrientationUpdated()

Quaternion Ogre::Node::convertWorldToLocalOrientationUpdated | ( | const Quaternion & | worldOrientation | ) |
| inlineinherited

## ◆ convertWorldToLocalPosition()

virtual_l2 Vector3 Ogre::Node::convertWorldToLocalPosition | ( | const Vector3 & | worldPos | ) |
| inherited

Gets the local position, relative to this node, of the given world-space position.

## ◆ convertWorldToLocalPositionUpdated()

Vector3 Ogre::Node::convertWorldToLocalPositionUpdated | ( | const Vector3 & | worldPos | ) |
| inlineinherited

## ◆ createChild()

virtual Node* Ogre::Node::createChild | ( | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`,
|  | const Vector3 & | translate = `Vector3::ZERO`,
|  | const Quaternion & | rotate = `Quaternion::IDENTITY`
| ) |  |
| virtualinherited

Creates an unnamed new Node as a child of this node.

Parameters

  translate | Initial translation offset of child relative to parent
  rotate | Initial rotation relative to parent

## ◆ createChildSceneNode()

virtual SceneNode* Ogre::SceneNode::createChildSceneNode | ( | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`,
|  | const Vector3 & | translate = `Vector3::ZERO`,
|  | const Quaternion & | rotate = `Quaternion::IDENTITY`
| ) |  |
| virtual

Creates an unnamed new SceneNode as a child of this node.

Parameters

  translate | Initial translation offset of child relative to parent
  rotate | Initial rotation relative to parent

## ◆ detachAllBones()

virtual void Ogre::SceneNode::detachAllBones | ( | void |  | ) |
| virtual

Detaches all bones from from this SceneNode. It is safe to use directly.

## ◆ detachAllObjects()

virtual void Ogre::SceneNode::detachAllObjects | ( | void |  | ) |
| virtual

Detaches all objects attached to this node.

## ◆ detachObject()

virtual_l2 void Ogre::SceneNode::detachObject | ( | MovableObject * | obj | ) |

Detaches an object by pointer.

Remarks
  It's fast, takes only O(1)

## ◆ flipVisibility()

virtual void Ogre::SceneNode::flipVisibility | ( | bool | cascade = `true` | ) |
| virtual

Inverts the visibility of all objects attached to this node.

Remarks
  This is a shortcut to calling setVisible(!isVisible()) on the objects attached to this node, and optionally to all objects attached to child nodes.

Parameters

  cascade | If true, this setting cascades into child nodes too.

## ◆ getAttachedObject() [1/2]

MovableObject* Ogre::SceneNode::getAttachedObject | ( | const String & | name | ) |

Retrieves a pointer to an attached object.

Remarks
  Retrieves by object name, see alternate version to retrieve by index. Retrieving by name forces a linear search O(N), prefer using the index, which is O(1)

## ◆ getAttachedObject() [2/2]

MovableObject* Ogre::SceneNode::getAttachedObject | ( | size_t | index | ) |
| inline

Retrieves a pointer to an attached object.

Remarks
  Retrieves by index, see alternate version to retrieve by name. The index of an object may change as other objects are added / removed.

## ◆ getAttachedObjectIterator() [1/2]

virtual ObjectIterator Ogre::SceneNode::getAttachedObjectIterator | ( | void |  | ) |
| virtual

Retrieves an iterator which can be used to efficiently step through the objects attached to this node.

Remarks
  This is a much faster way to go through all the objects attached to the node than using getAttachedObject. But the iterator returned is only valid until a change is made to the collection (ie an addition or removal) so treat the returned iterator as transient, and don't add / remove items as you go through the iterator, save changes until the end, or retrieve a new iterator after making the change. Making changes to the object returned through the iterator is OK though.

## ◆ getAttachedObjectIterator() [2/2]

virtual ConstObjectIterator Ogre::SceneNode::getAttachedObjectIterator | ( | void |  | ) | const
| virtual

Retrieves an iterator which can be used to efficiently step through the objects attached to this node.

Remarks
  This is a much faster way to go through all the objects attached to the node than using getAttachedObject. But the iterator returned is only valid until a change is made to the collection (ie an addition or removal) so treat the returned iterator as transient, and don't add / remove items as you go through the iterator, save changes until the end, or retrieve a new iterator after making the change. Making changes to the object returned through the iterator is OK though.

## ◆ getChild() [1/2]

Node* Ogre::Node::getChild | ( | size_t | index | ) |
| inlineinherited

Gets a pointer to a child node.

## ◆ getChild() [2/2]

const Node* Ogre::Node::getChild | ( | size_t | index | ) | const
| inlineinherited

## ◆ getChildIterator() [1/2]

NodeVecIterator Ogre::Node::getChildIterator | ( | void |  | ) |
| inherited

Retrieves an iterator for efficiently looping through all children of this node.

Remarks
  Using this is faster than repeatedly calling getChild if you want to go through all (or most of) the children of this node. Note that the returned iterator is only valid whilst no children are added or removed from this node. Thus you should not store this returned iterator for later use, nor should you add / remove children whilst iterating through it; store up changes for later. Note that calling methods on returned items in the iterator IS allowed and does not invalidate the iterator.

## ◆ getChildIterator() [2/2]

ConstNodeVecIterator Ogre::Node::getChildIterator | ( | void |  | ) | const
| inherited

Retrieves an iterator for efficiently looping through all children of this node.

Remarks
  Using this is faster than repeatedly calling getChild if you want to go through all (or most of) the children of this node. Note that the returned iterator is only valid whilst no children are added or removed from this node. Thus you should not store this returned iterator for later use, nor should you add / remove children whilst iterating through it; store up changes for later. Note that calling methods on returned items in the iterator IS allowed and does not invalidate the iterator.

## ◆ getCreator()

SceneManager* Ogre::SceneNode::getCreator | ( | void |  | ) | const
| inline

Gets the creator of this scene node.

Remarks
  This method returns the SceneManager which created this node. This can be useful for destroying this node.

## ◆ getDefaultNodeMemoryManager()

virtual NodeMemoryManager* Ogre::SceneNode::getDefaultNodeMemoryManager | ( | SceneMemoryMgrTypes | sceneType | ) |
| virtual

As Node::getDebugRenderable, except scaling is automatically determined.

Implements Ogre::Node.

## ◆ getDepthLevel()

uint16 Ogre::Node::getDepthLevel | ( |  | ) | const
| inlineinherited

Returns how deep in the hierarchy we are (eg. 0 -> root node, 1 -> child of root)

## ◆ getId()

IdType Ogre::IdObject::getId | ( |  | ) | const
| inlineinherited

Get the unique id of this object.

## ◆ getIndestructibleByClearScene()

bool Ogre::Node::getIndestructibleByClearScene | ( | void |  | ) | const
| inherited

## ◆ getInheritOrientation()

virtual_l2 bool Ogre::Node::getInheritOrientation | ( | void |  | ) | const
| inherited

Returns true if this node is affected by orientation applied to the parent node.

Remarks
  Orientations, unlike other transforms, are not always inherited by child nodes. Whether or not orientations affect the orientation of the child nodes depends on the setInheritOrientation option of the child. In some cases you want a orientating of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative orientation based on the parent's orientation), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own orientation). The default is to inherit as with other transforms.
  See setInheritOrientation for more info.

## ◆ getInheritScale()

virtual_l2 bool Ogre::Node::getInheritScale | ( | void |  | ) | const
| inherited

Returns true if this node is affected by scaling factors applied to the parent node.

Remarks
  See setInheritScale for more info.

## ◆ getListener()

Listener* Ogre::Node::getListener | ( | void |  | ) | const
| inlineinherited

Gets the current listener for this Node.

## ◆ getLocalAxes()

virtual_l2 Matrix3 Ogre::Node::getLocalAxes | ( | void |  | ) | const
| inherited

Gets a matrix whose columns are the local axes based on the nodes orientation relative to it's parent.

## ◆ getName()

const String& Ogre::Node::getName | ( | void |  | ) | const
| inlineinherited

Returns the name of the node.

## ◆ getOrientation()

virtual_l2 Quaternion Ogre::Node::getOrientation | ( |  | ) | const
| inherited

Returns a quaternion representing the nodes orientation.

Remarks
  Don't call this function too often, as we need to convert from SoA

## ◆ getParent()

Node* Ogre::Node::getParent | ( | void |  | ) | const
| inherited

Gets this node's parent (NULL if this is the root).

## ◆ getParentSceneNode()

SceneNode* Ogre::SceneNode::getParentSceneNode | ( | void |  | ) | const

Gets the parent of this SceneNode.

## ◆ getPosition()

virtual_l2 Vector3 Ogre::Node::getPosition | ( | void |  | ) | const
| inherited

Gets the position of the node relative to it's parent.

Remarks
  Don't call this function too often, as we need to convert from SoA

## ◆ getScale()

virtual_l2 Vector3 Ogre::Node::getScale | ( | void |  | ) | const
| inherited

Gets the scaling factor of this node.

Remarks
  Don't call this function too often, as we need to convert from SoA

## ◆ getSquaredViewDepth()

virtual Real Ogre::Node::getSquaredViewDepth | ( | const Camera * | cam | ) | const
| virtualinherited

Helper function, get the squared view depth.

## ◆ getUserAny()

virtual OGRE_DEPRECATED const Any& Ogre::Node::getUserAny | ( | void |  | ) | const
| inlinevirtualinherited

Deprecated:
  use UserObjectBindings::getUserAny via getUserObjectBindings() instead. Retrieves the custom user value associated with this object.

## ◆ getUserObjectBindings() [1/2]

UserObjectBindings& Ogre::Node::getUserObjectBindings | ( |  | ) |
| inlineinherited

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.

See also
  UserObjectBindings::setUserAny.

## ◆ getUserObjectBindings() [2/2]

const UserObjectBindings& Ogre::Node::getUserObjectBindings | ( |  | ) | const
| inlineinherited

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.

See also
  UserObjectBindings::setUserAny.

## ◆ isStatic()

bool Ogre::Node::isStatic | ( |  | ) | const
| inherited

Checks whether this node is static. @See setStatic.

## ◆ isYawFixed()

bool Ogre::SceneNode::isYawFixed | ( | void |  | ) | const
| inline

## ◆ lookAt()

virtual void Ogre::SceneNode::lookAt | ( | const Vector3 & | targetPoint,
|  | TransformSpace | relativeTo,
|  | const Vector3 & | localDirectionVector = `Vector3::NEGATIVE_UNIT_Z`
| ) |  |
| virtual

Points the local -Z direction of this node at a point in space.

Parameters

  targetPoint | A vector specifying the look at point.
  relativeTo | The space in which the point resides
  localDirectionVector | The vector which normally describes the natural direction of the node, usually -Z

## ◆ migrateTo()

void Ogre::Node::migrateTo | ( | NodeMemoryManager * | nodeMemoryManager | ) |
| inherited

Migrates the node and all of its children to the new memory manager, at the same depth level.

Parameters

  nodeMemoryManager | New memory manager to migrate to.

## ◆ numAttachedObjects()

size_t Ogre::SceneNode::numAttachedObjects | ( | void |  | ) | const
| inline

Reports the number of objects attached to this node.

## ◆ numChildren()

size_t Ogre::Node::numChildren | ( | void |  | ) | const
| inlineinherited

Reports the number of child nodes under this one.

## ◆ operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |
| inlineinherited

## ◆ operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |
| inlineinherited

## ◆ operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |
| inlineinherited

## ◆ operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |
| inlineinherited

## ◆ operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |
| inlineinherited

## ◆ operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |
| inlineinherited

## ◆ operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |
| inlineinherited

operator new, with debug line info

## ◆ operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |
| inlineinherited

placement operator new

## ◆ operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) |
| inlineinherited

## ◆ operator new[]() [2/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |
| inlineinherited

array operator new, with debug line info

## ◆ operator()() [1/2]

bool Ogre::IdObject::operator() | ( | const IdObject & | left,
|  | const IdObject & | right
| ) |  |
| inlineinherited

## ◆ operator()() [2/2]

bool Ogre::IdObject::operator() | ( | const IdObject * | left,
|  | const IdObject * | right
| ) |  |
| inlineinherited

## ◆ pitch()

virtual_l2 void Ogre::Node::pitch | ( | const Radian & | angle,
|  | TransformSpace | relativeTo = `TS_LOCAL`
| ) |  |
| inherited

Rotate the node around the X-axis.

## ◆ removeAllChildren()

virtual void Ogre::Node::removeAllChildren | ( | void |  | ) |
| virtualinherited

Removes all child Nodes attached to this node.

Does not delete the nodes, just detaches them from this parent, potentially to be reattached elsewhere.

## ◆ removeAndDestroyAllChildren()

virtual void Ogre::SceneNode::removeAndDestroyAllChildren | ( | void |  | ) |
| virtual

Removes and destroys all children of this node.

Remarks
  Use this to destroy all child nodes of this node and remove them from the scene graph. Note that all objects attached to this node will be detached but will not be destroyed.

## ◆ removeAndDestroyChild()

virtual void Ogre::SceneNode::removeAndDestroyChild | ( | SceneNode * | sceneNode | ) |
| virtual

This method removes and destroys the child and all of its children.

Remarks
  Unlike removeChild, which removes a single child from this node but does not destroy it, this method destroys the child and all of it's children.

  Use this if you wish to recursively destroy a node as well as detaching it from it's parent. Note that any objects attached to the nodes will be detached but will not themselves be destroyed.

Parameters

  SceneNode,must | be a child of ours

## ◆ removeChild()

virtual void Ogre::Node::removeChild | ( | Node * | child | ) |
| virtualinherited

Drops the specified child from this node.

Remarks
  Does not delete the node, just detaches it from this parent, potentially to be reattached elsewhere.

  Asserts if child is not one of our children.

## ◆ resetOrientation()

virtual_l1 void Ogre::Node::resetOrientation | ( | void |  | ) |
| inherited

Resets the nodes orientation (local axes as world axes, no rotation).

Remarks
  Orientations, unlike other transforms, are not always inherited by child nodes. Whether or not orientations affect the orientation of the child nodes depends on the setInheritOrientation option of the child. In some cases you want a orientating of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative orientation based on the parent's orientation), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own orientation). The default is to inherit as with other transforms.

  Note that rotations are oriented around the node's origin.

## ◆ roll()

virtual_l2 void Ogre::Node::roll | ( | const Radian & | angle,
|  | TransformSpace | relativeTo = `TS_LOCAL`
| ) |  |
| inherited

Rotate the node around the Z-axis.

## ◆ rotate() [1/2]

virtual_l2 void Ogre::Node::rotate | ( | const Quaternion & | q,
|  | TransformSpace | relativeTo = `TS_LOCAL`
| ) |  |
| inherited

Rotate the node around an aritrary axis using a Quarternion.

## ◆ rotate() [2/2]

virtual_l2 void Ogre::Node::rotate | ( | const Vector3 & | axis,
|  | const Radian & | angle,
|  | TransformSpace | relativeTo = `TS_LOCAL`
| ) |  |
| inherited

Rotate the node around an arbitrary axis.

## ◆ scale() [1/2]

virtual_l2 void Ogre::Node::scale | ( | const Vector3 & | scale | ) |
| inherited

Scales the node, combining it's current scale with the passed in scaling factor.

Remarks
  This method applies an extra scaling factor to the node's existing scale, (unlike setScale which overwrites it) combining it's current scale with the new one. E.g. calling this method twice with Vector3(2,2,2) would have the same effect as setScale(Vector3(4,4,4)) if the existing scale was 1.

  Note that like rotations, scalings are oriented around the node's origin.

## ◆ scale() [2/2]

virtual_l2 void Ogre::Node::scale | ( | Real | x,
|  | Real | y,
|  | Real | z
| ) |  |
| inherited

Scales the node, combining it's current scale with the passed in scaling factor.

Remarks
  This method applies an extra scaling factor to the node's existing scale, (unlike setScale which overwrites it) combining it's current scale with the new one. E.g. calling this method twice with Vector3(2,2,2) would have the same effect as setScale(Vector3(4,4,4)) if the existing scale was 1.

  Note that like rotations, scalings are oriented around the node's origin.

## ◆ setAutoTracking()

virtual void Ogre::SceneNode::setAutoTracking | ( | bool | enabled,
|  | SceneNode *const | target = `0`,
|  | const Vector3 & | localDirectionVector = `Vector3::NEGATIVE_UNIT_Z`,
|  | const Vector3 & | offset = `Vector3::ZERO`
| ) |  |
| virtual

Enables / disables automatic tracking of another SceneNode.

Remarks
  If you enable auto-tracking, this SceneNode will automatically rotate to point it's -Z at the target SceneNode every frame, no matter how it or the other SceneNode move. Note that by default the -Z points at the origin of the target SceneNode, if you want to tweak this, provide a vector in the 'offset' parameter and the target point will be adjusted.

Parameters

  enabled | If true, tracking will be enabled and the next parameter cannot be null. If false tracking will be disabled and the current orientation will be maintained.
  target | Pointer to the SceneNode to track. Make sure you don't delete this SceneNode before turning off tracking (e.g. SceneManager::clearScene will delete it so be careful of this). Can be null if and only if the enabled param is false.
  localDirectionVector | The local vector considered to be the usual 'direction' of the node; normally the local -Z but can be another direction.
  offset | If supplied, this is the target point in local space of the target node instead of the origin of the target node. Good for fine tuning the look at point.

## ◆ setDirection() [1/2]

virtual void Ogre::SceneNode::setDirection | ( | const Vector3 & | vec,
|  | TransformSpace | relativeTo = `TS_LOCAL`,
|  | const Vector3 & | localDirectionVector = `Vector3::NEGATIVE_UNIT_Z`
| ) |  |
| virtual

Sets the node's direction vector ie it's local -z.

Remarks
  Note that the 'up' vector for the orientation will automatically be recalculated based on the current 'up' vector (i.e. the roll will remain the same). If you need more control, use setOrientation.

Parameters

  vec | The direction vector
  relativeTo | The space in which this direction vector is expressed
  localDirectionVector | The vector which normally describes the natural direction of the node, usually -Z

## ◆ setDirection() [2/2]

virtual void Ogre::SceneNode::setDirection | ( | Real | x,
|  | Real | y,
|  | Real | z,
|  | TransformSpace | relativeTo = `TS_LOCAL`,
|  | const Vector3 & | localDirectionVector = `Vector3::NEGATIVE_UNIT_Z`
| ) |  |
| virtual

Sets the node's direction vector ie it's local -z.

Remarks
  Note that the 'up' vector for the orientation will automatically be recalculated based on the current 'up' vector (i.e. the roll will remain the same). If you need more control, use setOrientation.

Parameters

  x,y,z | The components of the direction vector
  relativeTo | The space in which this direction vector is expressed
  localDirectionVector | The vector which normally describes the natural direction of the node, usually -Z

## ◆ setFixedYawAxis()

void Ogre::SceneNode::setFixedYawAxis | ( | bool | useFixed,
|  | const Vector3 & | fixedAxis = `Vector3::UNIT_Y`
| ) |  |

Tells the node whether to yaw around it's own local Y axis or a fixed axis of choice.

Remarks
  This method allows you to change the yaw behaviour of the node - by default, it yaws around it's own local Y axis when told to yaw with TS_LOCAL, this makes it yaw around a fixed axis. You only really need this when you're using auto tracking (see setAutoTracking, because when you're manually rotating a node you can specify the TransformSpace in which you wish to work anyway.

Parameters

  useFixed | If true, the axis passed in the second parameter will always be the yaw axis no matter what the node orientation. If false, the node returns to it's default behaviour.
  fixedAxis | The axis to use if the first parameter is true.

## ◆ setIndestructibleByClearScene()

void Ogre::Node::setIndestructibleByClearScene | ( | bool | indestructible | ) |
| inherited

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.

Remarks
  This function provides trivial setter/getters rather than making mIndestructibleByClearScene public for two reasons:
  1. It's rare called
  2. There's a lot of value in debugging when a node is set to indestructible, which could happen by accident; and would thus leak.

## ◆ setInheritOrientation()

virtual_l2 void Ogre::Node::setInheritOrientation | ( | bool | inherit | ) |
| inherited

Tells the node whether it should inherit orientation from it's parent node.

Remarks
  Orientations, unlike other transforms, are not always inherited by child nodes. Whether or not orientations affect the orientation of the child nodes depends on the setInheritOrientation option of the child. In some cases you want a orientating of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative orientation based on the parent's orientation), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own orientation). The default is to inherit as with other transforms.

Parameters

  inherit | If true, this node's orientation will be affected by its parent's orientation. If false, it will not be affected.

## ◆ setInheritScale()

virtual_l2 void Ogre::Node::setInheritScale | ( | bool | inherit | ) |
| inherited

Tells the node whether it should inherit scaling factors from it's parent node.

Remarks
  Scaling factors, unlike other transforms, are not always inherited by child nodes. Whether or not scalings affect the size of the child nodes depends on the setInheritScale option of the child. In some cases you want a scaling factor of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative size based on the parent's size), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own size). The default is to inherit as with other transforms.

Parameters

  inherit | If true, this node's scale will be affected by its parent's scale. If false, it will not be affected.

## ◆ setListener()

virtual void Ogre::SceneNode::setListener | ( | Listener * | listener | ) |
| virtual

Sets a listener for this Node.

Remarks
  Note for size and performance reasons only one listener per node is allowed.

Reimplemented from Ogre::Node.

## ◆ setName()

void Ogre::Node::setName | ( | const String & | name | ) |
| inlineinherited

Sets a custom name for this node.

Doesn't have to be unique

## ◆ setOrientation() [1/2]

virtual_l1 void Ogre::Node::setOrientation | ( | Quaternion | q | ) |
| inherited

Sets the orientation of this node via a quaternion.

Remarks
  Orientations, unlike other transforms, are not always inherited by child nodes. Whether or not orientations affect the orientation of the child nodes depends on the setInheritOrientation option of the child. In some cases you want a orientating of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative orientation based on the parent's orientation), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own orientation). The default is to inherit as with other transforms. Don't call this function too often, as we need to convert to SoA

  Note that rotations are oriented around the node's origin.

## ◆ setOrientation() [2/2]

virtual_l1 void Ogre::Node::setOrientation | ( | Real | w,
|  | Real | x,
|  | Real | y,
|  | Real | z
| ) |  |
| inherited

Sets the orientation of this node via quaternion parameters.

Remarks
  Orientations, unlike other transforms, are not always inherited by child nodes. Whether or not orientations affect the orientation of the child nodes depends on the setInheritOrientation option of the child. In some cases you want a orientating of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative orientation based on the parent's orientation), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own orientation). The default is to inherit as with other transforms. Don't call this function too often, as we need to convert to SoA

  Note that rotations are oriented around the node's origin.

## ◆ setPosition() [1/2]

virtual_l1 void Ogre::Node::setPosition | ( | const Vector3 & | pos | ) |
| inherited

Sets the position of the node relative to it's parent.

Remarks
  Don't call this function too often, as we need to convert to SoA

## ◆ setPosition() [2/2]

virtual_l1 void Ogre::Node::setPosition | ( | Real | x,
|  | Real | y,
|  | Real | z
| ) |  |
| inherited

Sets the position of the node relative to it's parent.

Remarks
  Don't call this function too often, as we need to convert to SoA

## ◆ setScale() [1/2]

virtual_l1 void Ogre::Node::setScale | ( | const Vector3 & | scale | ) |
| inherited

Sets the scaling factor applied to this node.

Remarks
  Scaling factors, unlike other transforms, are not always inherited by child nodes. Whether or not scalings affect the size of the child nodes depends on the setInheritScale option of the child. In some cases you want a scaling factor of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative size based on the parent's size), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own size). The default is to inherit as with other transforms. Don't call this function too often, as we need to convert to SoA

  Note that like rotations, scalings are oriented around the node's origin.

## ◆ setScale() [2/2]

virtual_l1 void Ogre::Node::setScale | ( | Real | x,
|  | Real | y,
|  | Real | z
| ) |  |
| inherited

Sets the scaling factor applied to this node.

Remarks
  Scaling factors, unlike other transforms, are not always inherited by child nodes. Whether or not scalings affect the size of the child nodes depends on the setInheritScale option of the child. In some cases you want a scaling factor of a parent node to apply to a child node (e.g. where the child node is a part of the same object, so you want it to be the same relative size based on the parent's size), but not in other cases (e.g. where the child node is just for positioning another object, you want it to maintain it's own size). The default is to inherit as with other transforms. Don't call this function too often, as we need to convert to SoA

  Note that like rotations, scalings are oriented around the node's origin.

## ◆ setStatic()

virtual bool Ogre::SceneNode::setStatic | ( | bool | bStatic | ) |
| virtual

Turns this Node into static or dynamic.

Remarks
  Switching between dynamic and static has some overhead and forces to update all static scene when converted to static. So don't do it frequently. Static objects are not updated every frame, only when requested explicitly. Use this feature if you plan to have this object unaltered for a very long times

  Changing this attribute to a node will cause to switch the attribute to all attached entities (but not children or parent nodes; it's perfectly valid and useful to have dynamic children of a static parent; although the opposite (static children, dynamic parent) is probably a bug.

Returns
  True if setStatic made an actual change. False otherwise. Can fail because the object was already static/dynamic, or because switching is not supported

Reimplemented from Ogre::Node.

## ◆ setUserAny()

virtual OGRE_DEPRECATED void Ogre::Node::setUserAny | ( | const Any & | anything | ) |
| inlinevirtualinherited

Deprecated:
  use UserObjectBindings::setUserAny via getUserObjectBindings() instead. Sets any kind of user value on this object.

Remarks
  This method allows you to associate any user value you like with this Node. This can be a pointer back to one of your own classes for instance.

## ◆ setVisible()

virtual void Ogre::SceneNode::setVisible | ( | bool | visible,
|  | bool | cascade = `true`
| ) |  |
| virtual

Makes all objects attached to this node become visible / invisible.

Remarks
  This is a shortcut to calling setVisible() on the objects attached to this node, and optionally to all objects attached to child nodes.

Parameters

  visible | Whether the objects are to be made visible or invisible
  cascade | If true, this setting cascades into child nodes too.

## ◆ translate() [1/4]

virtual_l2 void Ogre::Node::translate | ( | const Matrix3 & | axes,
|  | const Vector3 & | move,
|  | TransformSpace | relativeTo = `TS_PARENT`
| ) |  |
| inherited

Moves the node along arbitrary axes.

Remarks
  This method translates the node by a vector which is relative to a custom set of axes.

Parameters

  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.

## ◆ translate() [2/4]

virtual_l2 void Ogre::Node::translate | ( | const Matrix3 & | axes,
|  | Real | x,
|  | Real | y,
|  | Real | z,
|  | TransformSpace | relativeTo = `TS_PARENT`
| ) |  |
| inherited

Moves the node along arbitrary axes.

Remarks
  This method translates the node by a vector which is relative to a custom set of axes.

Parameters

  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.

## ◆ translate() [3/4]

virtual_l2 void Ogre::Node::translate | ( | const Vector3 & | d,
|  | TransformSpace | relativeTo = `TS_PARENT`
| ) |  |
| inherited

Moves the node along the Cartesian axes.

  This method moves the node by the supplied vector along the world Cartesian axes, i.e. along world x,y,z

Parameters

  d | Vector with x,y,z values representing the translation.
  relativeTo | The space which this transform is relative to.

## ◆ translate() [4/4]

virtual_l2 void Ogre::Node::translate | ( | Real | x,
|  | Real | y,
|  | Real | z,
|  | TransformSpace | relativeTo = `TS_PARENT`
| ) |  |
| inherited

Moves the node along the Cartesian axes.

  This method moves the node by the supplied vector along the world Cartesian axes, i.e. along world x,y,z

Parameters

  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.

## ◆ updateAllTransforms()

static void Ogre::Node::updateAllTransforms | ( | const size_t | numNodes,
|  | Transform | t
| ) |  |
| staticinherited

@See SceneManager::updateAllTransforms()

Remarks
  We don't pass by reference on purpose (avoid implicit aliasing)

## ◆ yaw()

void Ogre::SceneNode::yaw | ( | const Radian & | angle,
|  | TransformSpace | relativeTo = `TS_LOCAL`
| ) |  |

Rotate the node around the Y-axis.

## Member Data Documentation

## ◆ mGlobalIndex

size_t Ogre::Node::mGlobalIndex
| inherited

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.

Remarks
  It is the parent (or our creator) the one that sets this value, not ourselves. Do NOT modify it manually.

## ◆ mParentIndex

size_t Ogre::Node::mParentIndex
| inherited

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.

Remarks
  It is the parent (or our creator) the one that sets this value, not ourselves. Do NOT modify it manually.

The documentation for this class was generated from the following file:

- OgreSceneNode.h