Irrlicht 3D Engine
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
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
19
enum
E_JOINT_UPDATE_ON_RENDER
20
{
22
EJUOR_NONE
= 0,
23
25
EJUOR_READ
,
26
28
EJUOR_CONTROL
29
};
30
31
32
class
IAnimatedMeshSceneNode;
33
35
39
class
IAnimationEndCallBack
:
public
virtual
IReferenceCounted
40
{
41
public
:
42
44
47
virtual
void
OnAnimationEnd
(
IAnimatedMeshSceneNode
* node) = 0;
48
};
49
51
53
class
IAnimatedMeshSceneNode
:
public
ISceneNode
54
{
55
public
:
56
58
IAnimatedMeshSceneNode
(
ISceneNode
* parent,
ISceneManager
* mgr,
s32
id
,
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
65
virtual
~IAnimatedMeshSceneNode
() {}
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
Irrlicht Engine
Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on Thu Apr 2 2020 05:59:47 for Irrlicht 3D Engine by
Doxygen
1.8.1.2