5#ifndef __I_ANIMATED_MESH_SCENE_NODE_H_INCLUDED__
6#define __I_ANIMATED_MESH_SCENE_NODE_H_INCLUDED__
17 class IShadowVolumeSceneNode;
32 class IAnimatedMeshSceneNode;
62 :
ISceneNode(parent, mgr, id, position, rotation, scale) {}
108 s32 id=-1,
bool zfailmethod=
true,
f32 infinity=1000.0f) = 0;
Base class of most objects of the Irrlicht Engine.
Axis aligned bounding box in 3d dimensional space.
Interface for an animated mesh.
Scene node capable of displaying an animated mesh and its shadow.
virtual s32 getStartFrame() const =0
Returns the current start frame number.
virtual u32 getJointCount() const =0
Gets joint count.
virtual IBoneSceneNode * getJointNode(u32 jointID)=0
same as getJointNode(const c8* jointName), but based on id
virtual f32 getAnimationSpeed() const =0
Gets the speed with which the animation is played.
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 bool getLoopMode() const =0
returns the current loop mode
virtual void setTransitionTime(f32 Time)=0
Sets the transition time in seconds.
virtual void setJointMode(E_JOINT_UPDATE_ON_RENDER mode)=0
Set how the joints should be updated on render.
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 IBoneSceneNode * getJointNode(const c8 *jointName)=0
Get a pointer to a joint in the mesh (if the mesh is a bone based mesh).
virtual void animateJoints(bool CalculateAbsolutePositions=true)=0
animates the joints in the mesh based on the current frame.
virtual bool setMD2Animation(const c8 *animationName)=0
Starts a special MD2 animation.
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 setAnimationSpeed(f32 framesPerSecond)=0
Sets the speed with which the animation is played.
virtual s32 getEndFrame() const =0
Returns the current end frame number.
virtual bool setFrameLoop(s32 begin, s32 end)=0
Sets the frame numbers between the animation is looped.
virtual IAnimatedMesh * getMesh(void)=0
Returns the current mesh.
virtual void setRenderFromIdentity(bool On)=0
render mesh ignoring its transformation.
virtual f32 getFrameNr() const =0
Returns the currently displayed frame number.
virtual bool setMD2Animation(EMD2_ANIMATION_TYPE anim)=0
Starts a default MD2 animation.
virtual void setAnimationEndCallback(IAnimationEndCallBack *callback=0)=0
Sets a callback interface which will be called if an animation playback has ended.
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 absolutetrans...
virtual void setLoopMode(bool playAnimationLooped)=0
Sets looping mode which is on by default.
virtual ~IAnimatedMeshSceneNode()
Destructor.
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 setMesh(IAnimatedMesh *mesh)=0
Sets a new mesh.
virtual ISceneNode * clone(ISceneNode *newParent=0, ISceneManager *newManager=0)=0
Creates a clone of this scene node and its children.
virtual void setCurrentFrame(f32 frame)=0
Sets the current frame number.
Callback interface for catching events of ended animations.
virtual void OnAnimationEnd(IAnimatedMeshSceneNode *node)=0
Will be called when the animation playback has ended.
Interface for bones used for skeletal animation.
Class which holds the geometry of an object.
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
Scene node for rendering a shadow volume into a stencil buffer.
EMD2_ANIMATION_TYPE
Types of standard md2 animations.
@ EJUOR_READ
get joints positions from the mesh (for attached nodes, etc)
@ EJUOR_CONTROL
control joint positions in the mesh (eg. ragdolls, or set the animation from animateJoints() )
Everything in the Irrlicht Engine can be found in this namespace.
float f32
32 bit floating point variable.
unsigned int u32
32 bit unsigned variable.
char c8
8 bit character variable.
signed int s32
32 bit signed variable.
hold a tag info for connecting meshes