|
| TagPoint (IdType id, SceneManager *creator, NodeMemoryManager *nodeMemoryManager, SceneNode *parent) |
|
| ~TagPoint () override |
|
virtual_l1 void | _attachBone (SkeletonInstance *skeletonInstance, Bone *bone) |
| Attaches a bone to this SceneNode. More...
|
|
void | _callMemoryChangeListeners () override |
| 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 () const |
| Gets the orientation of the node as derived from all parents. More...
|
|
Matrix3 | _getDerivedOrientationMatrix () const |
|
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...
|
|
void | _notifyStaticDirty () const override |
| 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 | _setParentBone (Bone *bone) |
| Don't call directly. More...
|
|
void | _unsetParentBone () |
|
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 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 TagPoint * | createChildTagPoint (const Vector3 &vPos=Vector3::ZERO, const Quaternion &qRot=Quaternion::IDENTITY) |
|
virtual void | detachAllBones () |
| Detaches all bones from from this SceneNode. It is safe to use directly. More...
|
|
virtual void | detachAllObjects () |
| 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 () |
| Retrieves an iterator which can be used to efficiently step through the objects attached to this node. More...
|
|
virtual ConstObjectIterator | getAttachedObjectIterator () 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 () |
| 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...
|
|
SceneManager * | getCreator () const |
| Gets the creator of this scene node. More...
|
|
NodeMemoryManager * | getDefaultNodeMemoryManager (SceneMemoryMgrTypes sceneType) override |
| 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 () 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...
|
|
Bone * | getParentBone () const |
| Gets this Bones's parent (NULL if no parent). More...
|
|
SceneNode * | getParentSceneNode () const |
| Gets the parent of this SceneNode. 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. @See setStatic. More...
|
|
bool | isYawFixed () 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 () const |
| Reports the number of objects attached to this node. More...
|
|
size_t | numChildren () 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 () |
| Removes all child Nodes attached to this node. More...
|
|
virtual void | removeAndDestroyAllChildren () |
| 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 () |
| 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...
|
|
void | setListener (Listener *listener) override |
| 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...
|
|
bool | setStatic (bool bStatic) override |
| 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...
|
|
TagPoints are like SceneNodes, that can be children of a Bone.
Q: Can I use a SceneNode as child of a Bone? A: No.
Q: Can I use a TagPoint as child of a Bone? A: Yes. That's the idea.
Q: Can I use a SceneNode as child of a TagPoint? A: Yes.
Q: Can I use a TagPoint as child of a TagPoint? A: Yes.
Q: Can I use a TagPoint as child of a SceneNode? A: Yes.
Q: Is there a performance hit for using a TagPoint as a SceneNode? A: No, though there is higher memory consumption (and indirectly could decrease performance by affecting the cache or the bandwidth)
Q: So... TagPoints are better than SceneNodes, because they can be used like SceneNodes, but also be used with bones? A: Yes.
Q: Why not merge TagPoints into SceneNodes then, and remove TagPoints? A: Good question. Theoretically the TagPoint functionality does not belong to SceneNode (more dependencies, more clutter in the same cpp files). Also TagPoints require more memory; which can add up when you have tens of thousands (or +100k's) of nodes. Only pay for what you use.
Q: Can I attach a TagPoint to Skeleton 'A' bone, and then attach an Item/Entity with Skeleton 'B' to this TagPoint? A: Yesish. It will work, but Skeleton B will see the changes from Skeleton A with one frame of latency (i.e. lag behind). If the animation is too fast or too different between frames, it may be noticeable. That's because we update Skeleton A, then B, then the TagPoints. To fix this we would have to update Skeleton 'A', then the TagPoints, then Skeleton 'B'; which is too cumbersome for such rare corner case.
Q: What happens on circular dependencies? i.e. Skeleton gets attached to TagPoint, TagPoint gets attached to bone of said Skeleton? A: Undefined. Probably very wonky behavior.
Q: What happens if I call setStatic( true )? A: If the TagPoint is ultimately the child of a Bone, then nothing happens. If the TagPoint is ultimately the child of the Root SceneNode, then it works as usual.
Q: What happens if I called setStatic( true ) on a TagPoint that belonged to the Root SceneNode, and now I've detached, and attached it to a bone? A: The information about being static is completely lost (i.e. it's like calling setStatic( false ) prior to attaching to the bone)