118 void getWorldTransforms(
Matrix4* xform)
const;
119 Real getSquaredViewDepth(
const Camera* cam)
const;
165 virtual void setParent(
Node* parent);
200 virtual void _updateFromParent(
void)
const;
208 virtual void updateFromParentImpl(
void)
const;
212 virtual Node* createChildImpl(
void) = 0;
215 virtual Node* createChildImpl(
const String& name) = 0;
254 const String& getName(
void)
const;
258 virtual Node* getParent(
void)
const;
262 virtual const Quaternion & getOrientation()
const;
277 virtual void setOrientation(
const Quaternion& q );
307 virtual void resetOrientation(
void);
311 virtual void setPosition(
const Vector3& pos);
319 virtual const Vector3 & getPosition(
void)
const;
333 virtual void setScale(
const Vector3& scale);
351 virtual const Vector3 & getScale(
void)
const;
366 virtual void setInheritOrientation(
bool inherit);
381 virtual bool getInheritOrientation(
void)
const;
395 virtual void setInheritScale(
bool inherit);
401 virtual bool getInheritScale(
void)
const;
412 virtual void scale(
const Vector3& scale);
516 virtual Matrix3 getLocalAxes(
void)
const;
524 virtual Node* createChild(
543 virtual void addChild(
Node* child);
547 virtual unsigned short numChildren(
void)
const;
553 virtual Node* getChild(
unsigned short index)
const;
557 virtual Node* getChild(
const String& name)
const;
590 virtual Node* removeChild(
unsigned short index);
598 virtual Node* removeChild(
Node* child);
605 virtual Node* removeChild(
const String& name);
609 virtual void removeAllChildren(
void);
615 virtual void _setDerivedPosition(
const Vector3& pos);
622 virtual void _setDerivedOrientation(
const Quaternion& q);
626 virtual const Quaternion & _getDerivedOrientation(
void)
const;
630 virtual const Vector3 & _getDerivedPosition(
void)
const;
634 virtual const Vector3 & _getDerivedScale(
void)
const;
645 virtual const Matrix4& _getFullTransform(
void)
const;
659 virtual void _update(
bool updateChildren,
bool parentHasChanged);
683 virtual void setInitialState(
void);
686 virtual void resetToInitialState(
void);
692 virtual const Vector3& getInitialPosition(
void)
const;
695 virtual Vector3 convertWorldToLocalPosition(
const Vector3 &worldPos );
699 virtual Vector3 convertLocalToWorldPosition(
const Vector3 &localPos );
709 virtual const Quaternion& getInitialOrientation(
void)
const;
712 virtual const Vector3& getInitialScale(
void)
const;
715 virtual Real getSquaredViewDepth(
const Camera* cam)
const;
724 virtual void needUpdate(
bool forceParentUpdate =
false);
729 virtual void requestUpdate(
Node* child,
bool forceParentUpdate =
false);
731 virtual void cancelUpdate(
Node* child);
734 virtual DebugRenderable* getDebugRenderable(
Real scaling);
743 static void queueNeedUpdate(
Node* n);
745 static void processQueuedUpdates(
void);
Vector3 mDerivedScale
Cached combined scale.
static NameGenerator msNameGenerator
Incremented count for next name extension.
bool mCachedTransformOutOfDate
Abstract class defining the interface all renderable objects must implement.
UserObjectBindings & getUserObjectBindings()
Return an instance of user objects binding associated with this class.
Transform is relative to the local space.
bool mInheritScale
Stores whether this node inherits scale from it's parent.
ChildUpdateSet mChildrenToUpdate
List of children which need updating, used if self is not out of date but children are...
bool mQueuedForUpdate
Flag indicating that the node has been queued for update.
Listener * mListener
Node listener - only one allowed (no list) for size & performance reasons.
virtual Listener * getListener(void) const
Gets the current listener for this Node.
Inner class for displaying debug renderable for Node.
Implementation of a Quaternion, i.e.
const UserObjectBindings & getUserObjectBindings() const
Return an instance of user objects binding associated with this class.
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
A 3x3 matrix which can represent rotations around axes.
Concrete IteratorWrapper for const access to the underlying key-value container.
Utility class to generate a sequentially numbered series of names.
bool mNeedParentUpdate
Flag to indicate own transform from parent is out of date.
float Real
Software floating point type.
Matrix4 mCachedTransform
Cached derived transform as a 4x4 matrix.
static QueuedUpdates msQueuedUpdates
UserObjectBindings mUserObjectBindings
User objects binding.
Vector3 mDerivedPosition
Cached combined position.
Node * mParent
Pointer to parent node.
Variant type that can hold Any other type.
virtual void setListener(Listener *listener)
Sets a listener for this Node.
Class encapsulating a standard 4x4 homogeneous matrix.
Standard 3-dimensional vector.
Vector3 mInitialScale
The scale to use as a base for keyframe animation.
bool mParentNotified
Flag indicating that parent has been notified about update request.
virtual OGRE_DEPRECATED const Any & getUserAny(void) const
bool mInheritOrientation
Stores whether this node inherits orientation from it's parent.
Class representing a general-purpose node an articulated scene graph.
vector< Node * >::type QueuedUpdates
Transform is relative to the space of the parent node.
virtual void nodeDetached(const Node *)
Node has been detached from a parent.
ChildNodeMap mChildren
Collection of pointers to direct children; hashmap for efficiency.
String mName
Friendly name of this node, can be automatically generated if you don't care.
Quaternion mInitialOrientation
The orientation to use as a base for keyframe animation.
bool mNeedChildUpdate
Flag indicating that all children need to be updated.
Listener which gets called back on Node events.
A viewpoint from which the scene will be rendered.
MapIterator< ChildNodeMap > ChildNodeIterator
ConstMapIterator< ChildNodeMap > ConstChildNodeIterator
virtual void nodeAttached(const Node *)
Node has been attached to a parent.
Vector3 mScale
Stores the scaling factor applied to this node.
TransformSpace
Enumeration denoting the spaces which a transform can be relative to.
virtual void nodeDestroyed(const Node *)
Node is being destroyed.
Vector3 mPosition
Stores the position/translation of the node relative to its parent.
Quaternion mOrientation
Stores the orientation of the node relative to it's parent.
Class that provides convenient interface to establish a linkage between custom user application objec...
'New' rendering operation using vertex buffers.
HashMap< String, Node * > ChildNodeMap
virtual void nodeUpdated(const Node *)
Called when a node gets updated.
static const Quaternion IDENTITY
virtual OGRE_DEPRECATED void setUserAny(const Any &anything)
set< Node * >::type ChildUpdateSet
Vector3 mInitialPosition
The position to use as a base for keyframe animation.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Wrapper class which indicates a given angle value is in Radians.
static const Vector3 ZERO
Quaternion mDerivedOrientation
Cached combined orientation.