Irrlicht 3D Engine
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 
33 
35 
40  {
41  public:
42 
44 
47  virtual void OnAnimationEnd(IAnimatedMeshSceneNode* node) = 0;
48  };
49 
51 
54  {
55  public:
56 
59  const core::vector3df& position = core::vector3df(0,0,0),
60  const core::vector3df& rotation = core::vector3df(0,0,0),
61  const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f))
62  : ISceneNode(parent, mgr, id, position, rotation, scale) {}
63 
66 
68 
72  virtual void setCurrentFrame(f32 frame) = 0;
73 
75 
79  virtual bool setFrameLoop(s32 begin, s32 end) = 0;
80 
82 
83  virtual void setAnimationSpeed(f32 framesPerSecond) = 0;
84 
86 
87  virtual f32 getAnimationSpeed() const =0;
88 
90 
107  virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,
108  s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f) = 0;
109 
110 
112 
126  virtual IBoneSceneNode* getJointNode(const c8* jointName)=0;
127 
129  virtual IBoneSceneNode* getJointNode(u32 jointID) = 0;
130 
132 
133  virtual u32 getJointCount() const = 0;
134 
136 
143  virtual bool setMD2Animation(EMD2_ANIMATION_TYPE anim) = 0;
144 
146 
158  virtual bool setMD2Animation(const c8* animationName) = 0;
159 
161  virtual f32 getFrameNr() const = 0;
163  virtual s32 getStartFrame() const = 0;
165  virtual s32 getEndFrame() const = 0;
166 
168 
169  virtual void setLoopMode(bool playAnimationLooped) = 0;
170 
172 
173  virtual bool getLoopMode() const = 0;
174 
176 
179  virtual void setAnimationEndCallback(IAnimationEndCallBack* callback=0) = 0;
180 
182 
185  virtual void setReadOnlyMaterials(bool readonly) = 0;
186 
188  virtual bool isReadOnlyMaterials() const = 0;
189 
191  virtual void setMesh(IAnimatedMesh* mesh) = 0;
192 
194  virtual IAnimatedMesh* getMesh(void) = 0;
195 
197  virtual const SMD3QuaternionTag* getMD3TagTransformation( const core::stringc & tagname) = 0;
198 
200  virtual void setJointMode(E_JOINT_UPDATE_ON_RENDER mode)=0;
201 
203 
206  virtual void setTransitionTime(f32 Time) =0;
207 
209 
210  virtual void animateJoints(bool CalculateAbsolutePositions=true) = 0;
211 
213 
214  virtual void setRenderFromIdentity( bool On )=0;
215 
217 
220  virtual ISceneNode* clone(ISceneNode* newParent=0, ISceneManager* newManager=0) = 0;
221 
222  };
223 
224 } // end namespace scene
225 } // end namespace irr
226 
227 #endif
228 
float f32
32 bit floating point variable.
Definition: irrTypes.h:104
Scene node for rendering a shadow volume into a stencil buffer.
char c8
8 bit character variable.
Definition: irrTypes.h:31
Scene node interface.
Definition: ISceneNode.h:40
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: aabbox3d.h:12
hold a tag info for connecting meshes
Interface for bones used for skeletal animation.
Class which holds the geometry of an object.
Definition: IMesh.h:23
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.
EMD2_ANIMATION_TYPE
Types of standard md2 animations.
signed int s32
32 bit signed variable.
Definition: irrTypes.h:66
Scene node capable of displaying an animated mesh and its shadow.
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:58
Callback interface for catching events of ended animations.
get joints positions from the mesh (for attached nodes, etc)
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
Base class of most objects of the Irrlicht Engine.
Interface for an animated mesh.
Definition: IAnimatedMesh.h:62
control joint positions in the mesh (eg. ragdolls, or set the animation from animateJoints() ) ...