Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
IAnimatedMeshSceneNode.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2010 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 
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 
105  virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,
106  s32 id=-1, bool zfailmethod=true, f32 infinity=10000.0f) = 0;
107 
108 
110 
124  virtual IBoneSceneNode* getJointNode(const c8* jointName)=0;
125 
127  virtual IBoneSceneNode* getJointNode(u32 jointID) = 0;
128 
130 
131  virtual u32 getJointCount() const = 0;
132 
134  virtual ISceneNode* getMS3DJointNode(const c8* jointName) = 0;
135 
137  virtual ISceneNode* getXJointNode(const c8* jointName) = 0;
138 
140 
147  virtual bool setMD2Animation(EMD2_ANIMATION_TYPE anim) = 0;
148 
150 
162  virtual bool setMD2Animation(const c8* animationName) = 0;
163 
165  virtual f32 getFrameNr() const = 0;
167  virtual s32 getStartFrame() const = 0;
169  virtual s32 getEndFrame() const = 0;
170 
172 
173  virtual void setLoopMode(bool playAnimationLooped) = 0;
174 
176 
179  virtual void setAnimationEndCallback(IAnimationEndCallBack* callback=0) = 0;
180 
182  /* In this way it is possible to change the materials a mesh
183  causing all mesh scene nodes referencing this mesh to change
184  too. */
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 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Fri Mar 21 2014 04:40:16 by Doxygen (1.8.1.2)