Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
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
13namespace irr
14{
15namespace scene
16{
17 class IShadowVolumeSceneNode;
18
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
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
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
Base class of most objects of the Irrlicht Engine.
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 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.
Definition IMesh.h:24
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
Scene node interface.
Definition ISceneNode.h:41
Scene node for rendering a shadow volume into a stencil buffer.
EMD2_ANIMATION_TYPE
Types of standard md2 animations.
@ EJUOR_NONE
do nothing
@ 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.
Definition aabbox3d.h:13
float f32
32 bit floating point variable.
Definition irrTypes.h:104
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66
hold a tag info for connecting meshes