Irrlicht 3D Engine
IBoneSceneNode.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_BONE_SCENE_NODE_H_INCLUDED__
6 #define __I_BONE_SCENE_NODE_H_INCLUDED__
7 
8 #include "ISceneNode.h"
9 
10 namespace irr
11 {
12 namespace scene
13 {
14 
17  {
20 
23 
26 
29 
30  };
31 
33  {
36 
39 
41  };
42 
44  const c8* const BoneAnimationModeNames[] =
45  {
46  "automatic",
47  "animated",
48  "unanimated",
49  0,
50  };
51 
52 
54 
55  class IBoneSceneNode : public ISceneNode
56  {
57  public:
58 
59  IBoneSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id=-1) :
60  ISceneNode(parent, mgr, id),positionHint(-1),scaleHint(-1),rotationHint(-1) { }
61 
63 
64  _IRR_DEPRECATED_ virtual const c8* getBoneName() const { return getName(); }
65 
67  virtual u32 getBoneIndex() const = 0;
68 
70 
71  virtual bool setAnimationMode(E_BONE_ANIMATION_MODE mode) = 0;
72 
75 
77  virtual const core::aabbox3d<f32>& getBoundingBox() const = 0;
78 
80  //virtual core::matrix4 getRelativeTransformation() const = 0;
81 
83  virtual void OnAnimate(u32 timeMs) =0;
84 
86 
87  virtual void render() { }
88 
90  virtual void setSkinningSpace( E_BONE_SKINNING_SPACE space ) =0;
91 
94 
97 
101  };
102 
103 
104 } // end namespace scene
105 } // end namespace irr
106 
107 #endif
108 
Interface for bones used for skeletal animation.
virtual void setSkinningSpace(E_BONE_SKINNING_SPACE space)=0
How the relative transformation of the bone is used.
IBoneSceneNode(ISceneNode *parent, ISceneManager *mgr, s32 id=-1)
virtual _IRR_DEPRECATED_ const c8 * getBoneName() const
Get the name of the bone.
virtual E_BONE_ANIMATION_MODE getAnimationMode() const =0
Gets the current animation mode of the bone.
virtual bool setAnimationMode(E_BONE_ANIMATION_MODE mode)=0
Sets the animation mode of the bone.
virtual void OnAnimate(u32 timeMs)=0
Returns the relative transformation of the scene node.
virtual E_BONE_SKINNING_SPACE getSkinningSpace() const =0
How the relative transformation of the bone is used.
virtual void updateAbsolutePositionOfAllChildren()=0
Updates the absolute position based on the relative and the parents position.
virtual u32 getBoneIndex() const =0
Get the index of the bone.
virtual const core::aabbox3d< f32 > & getBoundingBox() const =0
Get the axis aligned bounding box of this node.
virtual void render()
The render method.
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
Scene node interface.
Definition: ISceneNode.h:41
virtual const c8 * getName() const
Returns the name of the node.
Definition: ISceneNode.h:143
#define _IRR_DEPRECATED_
Defines a deprecated macro which generates a warning at compile time.
Definition: irrTypes.h:195
E_BONE_ANIMATION_MODE
Enumeration for different bone animation modes.
@ EBAM_COUNT
Not an animation mode, just here to count the available modes.
@ EBAM_ANIMATED
The bone is animated by the skin, if it's parent is not animated then animation will resume from this...
@ EBAM_UNANIMATED
The bone is not animated by the skin.
@ EBAM_AUTOMATIC
The bone is usually animated, unless it's parent is not animated.
@ EBSS_LOCAL
local skinning, standard
@ EBSS_GLOBAL
global skinning
const c8 *const BoneAnimationModeNames[]
Names for bone animation modes.
Everything in the Irrlicht Engine can be found in this namespace.
Definition: aabbox3d.h:13
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