arsa  2.7
IAnimatedMeshSceneNode.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_ANIMATED_MESH_SCENE_NODE_H_INCLUDED__
6 #define __I_ANIMATED_MESH_SCENE_NODE_H_INCLUDED__
7 
8 #include "ISceneNode.h"
9 #include "IBoneSceneNode.h"
10 #include "IAnimatedMeshMD2.h"
11 #include "IAnimatedMeshMD3.h"
12 
13 namespace irr
14 {
15 namespace scene
16 {
17  class IShadowVolumeSceneNode;
18 
20  {
23 
26 
29  };
30 
31 
32  class IAnimatedMeshSceneNode;
33 
35 
40  {
41  public:
42 
44 
47  virtual void OnAnimationEnd(IAnimatedMeshSceneNode* node) = 0;
48  };
49 
52  {
53  public:
54 
57  const core::vector3df& position = core::vector3df(0,0,0),
58  const core::vector3df& rotation = core::vector3df(0,0,0),
59  const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f))
60  : ISceneNode(parent, mgr, id, position, rotation, scale) {}
61 
64 
66 
70  virtual void setCurrentFrame(f32 frame) = 0;
71 
73 
81  virtual bool setFrameLoop(s32 begin, s32 end) = 0;
82 
84 
85  virtual void setAnimationSpeed(f32 framesPerSecond) = 0;
86 
88 
89  virtual f32 getAnimationSpeed() const =0;
90 
113  virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,
114  s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f) = 0;
115 
117 
131  virtual IBoneSceneNode* getJointNode(const c8* jointName)=0;
132 
134  virtual IBoneSceneNode* getJointNode(u32 jointID) = 0;
135 
137 
138  virtual u32 getJointCount() const = 0;
139 
141 
148  virtual bool setMD2Animation(EMD2_ANIMATION_TYPE anim) = 0;
149 
151 
163  virtual bool setMD2Animation(const c8* animationName) = 0;
164 
166  virtual f32 getFrameNr() const = 0;
168  virtual s32 getStartFrame() const = 0;
170  virtual s32 getEndFrame() const = 0;
171 
173 
174  virtual void setLoopMode(bool playAnimationLooped) = 0;
175 
177 
178  virtual bool getLoopMode() const = 0;
179 
181 
184  virtual void setAnimationEndCallback(IAnimationEndCallBack* callback=0) = 0;
185 
187 
190  virtual void setReadOnlyMaterials(bool readonly) = 0;
191 
193  virtual bool isReadOnlyMaterials() const = 0;
194 
196  virtual void setMesh(IAnimatedMesh* mesh) = 0;
197 
199  virtual IAnimatedMesh* getMesh(void) = 0;
200 
202  virtual const SMD3QuaternionTag* getMD3TagTransformation( const core::stringc & tagname) = 0;
203 
206 
208 
211  virtual void setTransitionTime(f32 Time) =0;
212 
214 
215  virtual void animateJoints(bool CalculateAbsolutePositions=true) = 0;
216 
218 
219  virtual void setRenderFromIdentity( bool On )=0;
220 
222 
225  virtual ISceneNode* clone(ISceneNode* newParent=0, ISceneManager* newManager=0) = 0;
226 
227  };
228 
229 } // end namespace scene
230 } // end namespace irr
231 
232 #endif
233 
virtual void setAnimationEndCallback(IAnimationEndCallBack *callback=0)=0
Sets a callback interface which will be called if an animation playback has ended.
GLenum GLenum GLenum GLenum GLenum scale
GLuint id
virtual u32 getJointCount() const =0
Gets joint count.
virtual void setRenderFromIdentity(bool On)=0
render mesh ignoring its transformation.
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.
float f32
32 bit floating point variable.
Definition: irrTypes.h:108
Scene node for rendering a shadow volume into a stencil buffer.
GLuint GLuint end
Definition: SDL_opengl.h:1571
char c8
8 bit character variable.
Definition: irrTypes.h:35
Scene node interface.
Definition: ISceneNode.h:40
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 OnAnimationEnd(IAnimatedMeshSceneNode *node)=0
Will be called when the animation playback has ended.
Everything in the Irrlicht Engine can be found in this namespace.
Definition: CARSADPad.h:6
hold a tag info for connecting meshes
Very simple string class with some useful features.
Definition: irrString.h:37
Interface for bones used for skeletal animation.
Class which holds the geometry of an object.
Definition: IMesh.h:71
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 ISceneNode * clone(ISceneNode *newParent=0, ISceneManager *newManager=0)=0
Creates a clone of this scene node and its children.
virtual bool setMD2Animation(EMD2_ANIMATION_TYPE anim)=0
Starts a default MD2 animation.
EMD2_ANIMATION_TYPE
Types of standard md2 animations.
virtual void setTransitionTime(f32 Time)=0
Sets the transition time in seconds.
virtual s32 getStartFrame() const =0
Returns the current start frame number.
virtual IBoneSceneNode * getJointNode(const c8 *jointName)=0
Get a pointer to a joint in the mesh (if the mesh is a bone based mesh).
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
Scene node capable of displaying an animated mesh.
virtual bool getLoopMode() const =0
returns the current loop mode
virtual f32 getAnimationSpeed() const =0
Gets the speed with which the animation is played.
virtual void animateJoints(bool CalculateAbsolutePositions=true)=0
animates the joints in the mesh based on the current frame.
GLfloat f
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
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...
GLenum mode
virtual IAnimatedMesh * getMesh(void)=0
Returns the current mesh.
virtual bool setFrameLoop(s32 begin, s32 end)=0
Sets the frame numbers between the animation is looped.
Callback interface for catching events of ended animations.
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...
get joints positions from the mesh (for attached nodes, etc)
The Scene Manager manages scene nodes, mesh resources, cameras and all the other stuff.
virtual void setAnimationSpeed(f32 framesPerSecond)=0
Sets the speed with which the animation is played.
virtual f32 getFrameNr() const =0
Returns the currently displayed frame number.
Base class of most objects of the Irrlicht Engine.
virtual void setCurrentFrame(f32 frame)=0
Sets the current frame number.
virtual void setMesh(IAnimatedMesh *mesh)=0
Sets a new mesh.
virtual s32 getEndFrame() const =0
Returns the current end frame number.
Interface for an animated mesh.
Definition: IAnimatedMesh.h:20
control joint positions in the mesh (eg. ragdolls, or set the animation from animateJoints() )
virtual IShadowVolumeSceneNode * addShadowVolumeSceneNode(const IMesh *shadowMesh=0, s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f)=0