Loading...
Searching...
No Matches
irr::scene::IAnimatedMeshSceneNode Class Referenceabstract

Scene node capable of displaying an animated mesh and its shadow. More...

`#include <IAnimatedMeshSceneNode.h>`

Inheritance diagram for irr::scene::IAnimatedMeshSceneNode:

## Public Member Functions

| IAnimatedMeshSceneNode (ISceneNode *parent, ISceneManager *mgr, s32 id, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
| Constructor.
virtual | ~IAnimatedMeshSceneNode ()
| Destructor.
virtual IShadowVolumeSceneNode * | addShadowVolumeSceneNode (const IMesh *shadowMesh=0, s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f)=0
| Creates shadow volume scene node as child of this node.
virtual void | animateJoints (bool CalculateAbsolutePositions=true)=0
| animates the joints in the mesh based on the current frame.
virtual ISceneNode * | clone (ISceneNode *newParent=0, ISceneManager *newManager=0)=0
| Creates a clone of this scene node and its children.
virtual f32 | getAnimationSpeed () const =0
| Gets the speed with which the animation is played.
virtual s32 | getEndFrame () const =0
| Returns the current end frame number.
virtual f32 | getFrameNr () const =0
| Returns the currently displayed frame number.
virtual u32 | getJointCount () const =0
| Gets joint count.
virtual IBoneSceneNode * | getJointNode (const c8 *jointName)=0
| Get a pointer to a joint in the mesh (if the mesh is a bone based mesh).
virtual IBoneSceneNode * | getJointNode (u32 jointID)=0
| same as getJointNode(const c8* jointName), but based on id
virtual bool | getLoopMode () const =0
| returns the current loop mode
virtual const SMD3QuaternionTag * | getMD3TagTransformation (const core::stringc &tagname)=0
| Get the absolute transformation for a special MD3 Tag if the mesh is a md3 mesh, or the absolutetransformation if it's a normal scenenode.
virtual IAnimatedMesh * | getMesh (void)=0
| Returns the current mesh.
virtual s32 | getStartFrame () const =0
| Returns the current start frame number.
virtual bool | isReadOnlyMaterials () const =0
| Returns if the scene node should not copy the materials of the mesh but use them in a read only style.
virtual void | setAnimationEndCallback (IAnimationEndCallBack *callback=0)=0
| Sets a callback interface which will be called if an animation playback has ended.
virtual void | setAnimationSpeed (f32 framesPerSecond)=0
| Sets the speed with which the animation is played.
virtual void | setCurrentFrame (f32 frame)=0
| Sets the current frame number.
virtual bool | setFrameLoop (s32 begin, s32 end)=0
| Sets the frame numbers between the animation is looped.
virtual void | setJointMode (E_JOINT_UPDATE_ON_RENDER mode)=0
| Set how the joints should be updated on render.
virtual void | setLoopMode (bool playAnimationLooped)=0
| Sets looping mode which is on by default.
virtual bool | setMD2Animation (const c8 *animationName)=0
| Starts a special MD2 animation.
virtual bool | setMD2Animation (EMD2_ANIMATION_TYPE anim)=0
| Starts a default MD2 animation.
virtual void | setMesh (IAnimatedMesh *mesh)=0
| Sets a new mesh.
virtual void | setReadOnlyMaterials (bool readonly)=0
| Sets if the scene node should not copy the materials of the mesh but use them in a read only style.
virtual void | setRenderFromIdentity (bool On)=0
| render mesh ignoring its transformation.
virtual void | setTransitionTime (f32 Time)=0
| Sets the transition time in seconds.
Public Member Functions inherited from irr::scene::ISceneNode
| ISceneNode (ISceneNode *parent, ISceneManager *mgr, s32 id=-1, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
| Constructor.
virtual | ~ISceneNode ()
| Destructor.
virtual void | addAnimator (ISceneNodeAnimator *animator)
| Adds an animator which should animate this node.
virtual void | addChild (ISceneNode *child)
| Adds a child to this scene node.
virtual void | deserializeAttributes (io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
| Reads attributes of the scene node.
virtual core::vector3df | getAbsolutePosition () const
| Gets the absolute position of the node in world coordinates.
virtual const core::matrix4 & | getAbsoluteTransformation () const
| Get the absolute transformation of the node. Is recalculated every OnAnimate()-call.
const core::list< ISceneNodeAnimator * > & | getAnimators () const
| Get a list of all scene node animators.
u32 | getAutomaticCulling () const
| Gets the automatic culling state.
virtual const core::aabbox3d< f32 > & | getBoundingBox () const =0
| Get the axis aligned, not transformed bounding box of this node.
const core::list< ISceneNode * > & | getChildren () const
| Returns a const reference to the list of all children.
virtual s32 | getID () const
| Get the id of the scene node.
virtual video::SMaterial & | getMaterial (u32 num)
| Returns the material based on the zero based index i.
virtual u32 | getMaterialCount () const
| Get amount of materials used by this scene node.
virtual const c8 * | getName () const
| Returns the name of the node.
scene::ISceneNode * | getParent () const
| Returns the parent of this scene node.
virtual const core::vector3df & | getPosition () const
| Gets the position of the node relative to its parent.
virtual core::matrix4 | getRelativeTransformation () const
| Returns the relative transformation of the scene node.
virtual const core::vector3df & | getRotation () const
| Gets the rotation of the node relative to its parent.
virtual const core::vector3df & | getScale () const
| Gets the scale of the scene node relative to its parent.
virtual ISceneManager * | getSceneManager (void) const
| Retrieve the scene manager for this node.
virtual const core::aabbox3d< f32 > | getTransformedBoundingBox () const
| Get the axis aligned, transformed and animated absolute bounding box of this node.
virtual ITriangleSelector * | getTriangleSelector () const
| Returns the triangle selector attached to this scene node.
virtual ESCENE_NODE_TYPE | getType () const
| Returns type of the scene node.
u32 | isDebugDataVisible () const
| Returns if debug data like bounding boxes are drawn.
bool | isDebugObject () const
| Returns if this scene node is a debug object.
virtual bool | isTrulyVisible () const
| Check whether the node is truly visible, taking into accounts its parents' visibility.
virtual bool | isVisible () const
| Returns whether the node should be visible (if all of its parents are visible).
virtual void | OnAnimate (u32 timeMs)
| OnAnimate() is called just before rendering the whole scene.
virtual void | OnRegisterSceneNode ()
| This method is called just before the rendering process of the whole scene.
virtual void | remove ()
| Removes this scene node from the scene.
virtual void | removeAll ()
| Removes all children of this scene node.
virtual void | removeAnimator (ISceneNodeAnimator *animator)
| Removes an animator from this scene node.
virtual void | removeAnimators ()
| Removes all animators from this scene node.
virtual bool | removeChild (ISceneNode *child)
| Removes a child from this scene node.
virtual void | render ()=0
| Renders the node.
virtual void | serializeAttributes (io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
| Writes attributes of the scene node.
void | setAutomaticCulling (u32 state)
| Enables or disables automatic culling based on the bounding box.
virtual void | setDebugDataVisible (u32 state)
| Sets if debug data like bounding boxes should be drawn.
virtual void | setID (s32 id)
| Sets the id of the scene node.
void | setIsDebugObject (bool debugObject)
| Sets if this scene node is a debug object.
void | setMaterialFlag (video::E_MATERIAL_FLAG flag, bool newvalue)
| Sets all material flags at once to a new value.
void | setMaterialTexture (u32 textureLayer, video::ITexture *texture)
| Sets the texture of the specified layer in all materials of this scene node to the new texture.
void | setMaterialType (video::E_MATERIAL_TYPE newType)
| Sets the material type of all materials in this scene node to a new material type.
virtual void | setName (const c8 *name)
| Sets the name of the node.
virtual void | setName (const core::stringc &name)
| Sets the name of the node.
virtual void | setParent (ISceneNode *newParent)
| Changes the parent of the scene node.
virtual void | setPosition (const core::vector3df &newpos)
| Sets the position of the node relative to its parent.
virtual void | setRotation (const core::vector3df &rotation)
| Sets the rotation of the node relative to its parent.
virtual void | setScale (const core::vector3df &scale)
| Sets the relative scale of the scene node.
virtual void | setTriangleSelector (ITriangleSelector *selector)
| Sets the triangle selector of the scene node.
virtual void | setVisible (bool isVisible)
| Sets if the node should be visible or not.
virtual void | updateAbsolutePosition ()
| Updates the absolute position based on the relative and the parents position.
Public Member Functions inherited from irr::IReferenceCounted
| IReferenceCounted ()
| Constructor.
virtual | ~IReferenceCounted ()
| Destructor.
bool | drop () const
| Drops the object. Decrements the reference counter by one.
const c8 * | getDebugName () const
| Returns the debug name of the object.
s32 | getReferenceCount () const
| Get the reference count.
void | grab () const
| Grabs the object. Increments the reference counter by one.

## Additional Inherited Members

Protected Member Functions inherited from irr::scene::ISceneNode
void | cloneMembers (ISceneNode *toCopyFrom, ISceneManager *newManager)
| A clone function for the ISceneNode members.
void | setSceneManager (ISceneManager *newManager)
Protected Member Functions inherited from irr::IReferenceCounted
void | setDebugName (const c8 *newName)
| Sets the debug name of the object.
Protected Attributes inherited from irr::scene::ISceneNode
core::matrix4 | AbsoluteTransformation
| Absolute transformation of the node.
core::list< ISceneNodeAnimator * > | Animators
| List of all animator nodes.
u32 | AutomaticCullingState
| Automatic culling state.
core::list< ISceneNode * > | Children
| List of all children of this node.
u32 | DebugDataVisible
| Flag if debug data should be drawn, such as Bounding Boxes.
s32 | ID
| ID of the node.
bool | IsDebugObject
| Is debug object?
bool | IsVisible
| Is the node visible?
core::stringc | Name
| Name of the scene node.
ISceneNode * | Parent
| Pointer to the parent.
core::vector3df | RelativeRotation
| Relative rotation of the scene node.
core::vector3df | RelativeScale
| Relative scale of the scene node.
core::vector3df | RelativeTranslation
| Relative translation of the scene node.
ISceneManager * | SceneManager
| Pointer to the scene manager.
ITriangleSelector * | TriangleSelector
| Pointer to the triangle selector.

## Detailed Description

Scene node capable of displaying an animated mesh and its shadow.

The shadow is optional: If a shadow should be displayed too, just invoke the IAnimatedMeshSceneNode::createShadowVolumeSceneNode().

Definition at line 53 of file IAnimatedMeshSceneNode.h.

## Constructor & Destructor Documentation

## IAnimatedMeshSceneNode()

irr::scene::IAnimatedMeshSceneNode::IAnimatedMeshSceneNode | ( | ISceneNode * | parent,
|  | ISceneManager * | mgr,
|  | s32 | id,
|  | const core::vector3df & | position = core::vector3df(0,0,0),
|  | const core::vector3df & | rotation = core::vector3df(0,0,0),
|  | const core::vector3df & | scale = core::vector3df(1.0f, 1.0f, 1.0f) )

inline

Constructor.

Definition at line 58 of file IAnimatedMeshSceneNode.h.

References irr::scene::ISceneNode::ISceneNode().

## ~IAnimatedMeshSceneNode()

virtual irr::scene::IAnimatedMeshSceneNode::~IAnimatedMeshSceneNode | ( |  | ) |

inline virtual

Destructor.

Definition at line 65 of file IAnimatedMeshSceneNode.h.

## Member Function Documentation

## addShadowVolumeSceneNode()

virtual IShadowVolumeSceneNode * irr::scene::IAnimatedMeshSceneNode::addShadowVolumeSceneNode | ( | const IMesh * | shadowMesh = 0,
|  | s32 | id = -1,
|  | bool | zfailmethod = true,
|  | f32 | infinity = 1000.0f )

pure virtual

Creates shadow volume scene node as child of this node.

The shadow can be rendered using the ZPass or the zfail method. ZPass is a little bit faster because the shadow volume creation is easier, but with this method there occur ugly looking artifacs when the camera is inside the shadow volume. These error do not occur with the ZFail method.

Parameters

  shadowMesh | Optional custom mesh for shadow volume.
  id | Id of the shadow scene node. This id can be used to identify the node later.
  zfailmethod | If set to true, the shadow will use the zfail method, if not, zpass is used.
  infinity | Value used by the shadow volume algorithm to scale the shadow volume (for zfail shadow volume we support only finite shadows, so camera zfar must be larger than shadow back cap, which is depend on infinity parameter).

Returns
  Pointer to the created shadow scene node. This pointer should not be dropped. See IReferenceCounted::drop() for more information.

## animateJoints()

virtual void irr::scene::IAnimatedMeshSceneNode::animateJoints | ( | bool | CalculateAbsolutePositions = true | ) |

pure virtual

animates the joints in the mesh based on the current frame.

Also takes in to account transitions.

## clone()

virtual ISceneNode * irr::scene::IAnimatedMeshSceneNode::clone | ( | ISceneNode * | newParent = 0,
|  | ISceneManager * | newManager = 0 )

pure virtual

Creates a clone of this scene node and its children.

Parameters

  newParent | An optional new parent.
  newManager | An optional new scene manager.

Returns
  The newly created clone of this node.

Reimplemented from irr::scene::ISceneNode.

References irr::scene::ISceneNode::ISceneNode().

## getAnimationSpeed()

virtual f32 irr::scene::IAnimatedMeshSceneNode::getAnimationSpeed | ( |  | ) | const

pure virtual

Gets the speed with which the animation is played.

Returns
  Frames per second played.

## getEndFrame()

virtual s32 irr::scene::IAnimatedMeshSceneNode::getEndFrame | ( |  | ) | const

pure virtual

Returns the current end frame number.

## getFrameNr()

virtual f32 irr::scene::IAnimatedMeshSceneNode::getFrameNr | ( |  | ) | const

pure virtual

Returns the currently displayed frame number.

## getJointCount()

virtual u32 irr::scene::IAnimatedMeshSceneNode::getJointCount | ( |  | ) | const

pure virtual

Gets joint count.

Returns
  Amount of joints in the mesh.

## getJointNode() [1/2]

virtual IBoneSceneNode * irr::scene::IAnimatedMeshSceneNode::getJointNode | ( | const c8 * | jointName | ) |

pure virtual

Get a pointer to a joint in the mesh (if the mesh is a bone based mesh).

With this method it is possible to attach scene nodes to joints for example possible to attach a weapon to the left hand of an animated model. This example shows how:

ISceneNode* hand =
yourAnimatedMeshSceneNode->getJointNode("LeftHand");
hand->addChild(weaponSceneNode);
irr::scene::ISceneNode::ISceneNode
ISceneNode(ISceneNode *parent, ISceneManager *mgr, s32 id=-1, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
Constructor.
Definition ISceneNode.h:45
irr::scene::ISceneNode::addChild
virtual void addChild(ISceneNode *child)
Adds a child to this scene node.
Definition ISceneNode.h:280

Please note that the joint returned by this method may not exist before this call and the joints in the node were created by it.

Parameters

  jointName | Name of the joint.

Returns
  Pointer to the scene node which represents the joint with the specified name. Returns 0 if the contained mesh is not an skinned mesh or the name of the joint could not be found.

## getJointNode() [2/2]

virtual IBoneSceneNode * irr::scene::IAnimatedMeshSceneNode::getJointNode | ( | u32 | jointID | ) |

pure virtual

same as getJointNode(const c8* jointName), but based on id

## getLoopMode()

virtual bool irr::scene::IAnimatedMeshSceneNode::getLoopMode | ( |  | ) | const

pure virtual

returns the current loop mode

When true the animations are played looped

## getMD3TagTransformation()

virtual const SMD3QuaternionTag * irr::scene::IAnimatedMeshSceneNode::getMD3TagTransformation | ( | const core::stringc & | tagname | ) |

pure virtual

Get the absolute transformation for a special MD3 Tag if the mesh is a md3 mesh, or the absolutetransformation if it's a normal scenenode.

## getMesh()

virtual IAnimatedMesh * irr::scene::IAnimatedMeshSceneNode::getMesh | ( | void |  | ) |

pure virtual

Returns the current mesh.

## getStartFrame()

virtual s32 irr::scene::IAnimatedMeshSceneNode::getStartFrame | ( |  | ) | const

pure virtual

Returns the current start frame number.

## isReadOnlyMaterials()

virtual bool irr::scene::IAnimatedMeshSceneNode::isReadOnlyMaterials | ( |  | ) | const

pure virtual

Returns if the scene node should not copy the materials of the mesh but use them in a read only style.

## setAnimationEndCallback()

virtual void irr::scene::IAnimatedMeshSceneNode::setAnimationEndCallback | ( | IAnimationEndCallBack * | callback = 0 | ) |

pure virtual

Sets a callback interface which will be called if an animation playback has ended.

Set this to 0 to disable the callback again. Please note that this will only be called when in non looped mode, see IAnimatedMeshSceneNode::setLoopMode().

## setAnimationSpeed()

virtual void irr::scene::IAnimatedMeshSceneNode::setAnimationSpeed | ( | f32 | framesPerSecond | ) |

pure virtual

Sets the speed with which the animation is played.

Parameters

  framesPerSecond | Frames per second played.

## setCurrentFrame()

virtual void irr::scene::IAnimatedMeshSceneNode::setCurrentFrame | ( | f32 | frame | ) |

pure virtual

Sets the current frame number.

From now on the animation is played from this frame.

Parameters

  frame | Number of the frame to let the animation be started from. The frame number must be a valid frame number of the IMesh used by this scene node. Set IAnimatedMesh::getMesh() for details.

## setFrameLoop()

virtual bool irr::scene::IAnimatedMeshSceneNode::setFrameLoop | ( | s32 | begin,
|  | s32 | end )

pure virtual

Sets the frame numbers between the animation is looped.

The default is 0 - MaximalFrameCount of the mesh.

Parameters

  begin | Start frame number of the loop.
  end | End frame number of the loop.

Returns
  True if successful, false if not.

## setJointMode()

virtual void irr::scene::IAnimatedMeshSceneNode::setJointMode | ( | E_JOINT_UPDATE_ON_RENDER | mode | ) |

pure virtual

Set how the joints should be updated on render.

## setLoopMode()

virtual void irr::scene::IAnimatedMeshSceneNode::setLoopMode | ( | bool | playAnimationLooped | ) |

pure virtual

Sets looping mode which is on by default.

If set to false, animations will not be played looped.

## setMD2Animation() [1/2]

virtual bool irr::scene::IAnimatedMeshSceneNode::setMD2Animation | ( | const c8 * | animationName | ) |

pure virtual

Starts a special MD2 animation.

With this method it is easily possible to start a Run, Attack, Die or whatever animation, if the mesh contained in this scene node is an md2 mesh. Otherwise, nothing happens. This method uses a character string to identify the animation. If the animation is a standard md2 animation, you might want to start this animation with the EMD2_ANIMATION_TYPE enumeration instead.

Parameters

  animationName | Name of the animation which should be played.

Returns
  Returns true if successful, and false if not, for example if the mesh in the scene node is not an md2 mesh, or no animation with this name could be found.

## setMD2Animation() [2/2]

virtual bool irr::scene::IAnimatedMeshSceneNode::setMD2Animation | ( | EMD2_ANIMATION_TYPE | anim | ) |

pure virtual

Starts a default MD2 animation.

With this method it is easily possible to start a Run, Attack, Die or whatever animation, if the mesh contained in this scene node is an md2 mesh. Otherwise, nothing happens.

Parameters

  anim | An MD2 animation type, which should be played, for example EMAT_STAND for the standing animation.

Returns
  True if successful, and false if not, for example if the mesh in the scene node is not a md2 mesh.

## setMesh()

virtual void irr::scene::IAnimatedMeshSceneNode::setMesh | ( | IAnimatedMesh * | mesh | ) |

pure virtual

Sets a new mesh.

## setReadOnlyMaterials()

virtual void irr::scene::IAnimatedMeshSceneNode::setReadOnlyMaterials | ( | bool | readonly | ) |

pure virtual

Sets if the scene node should not copy the materials of the mesh but use them in a read only style.

In this way it is possible to change the materials a mesh causing all mesh scene nodes referencing this mesh to change too.

## setRenderFromIdentity()

virtual void irr::scene::IAnimatedMeshSceneNode::setRenderFromIdentity | ( | bool | On | ) |

pure virtual

render mesh ignoring its transformation.

Culling is unaffected.

## setTransitionTime()

virtual void irr::scene::IAnimatedMeshSceneNode::setTransitionTime | ( | f32 | Time | ) |

pure virtual

Sets the transition time in seconds.

Note: This needs to enable joints, and setJointmode set to EJUOR_CONTROL. You must call animateJoints(), or the mesh will not animate.

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

- IAnimatedMeshSceneNode.h

- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0