arsa  2.7
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 
72 
74  virtual E_BONE_ANIMATION_MODE getAnimationMode() const = 0;
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() _IRR_OVERRIDE_ { }
88 
90  virtual void setSkinningSpace( E_BONE_SKINNING_SPACE space ) =0;
91 
93  virtual E_BONE_SKINNING_SPACE getSkinningSpace() const =0;
94 
96  virtual void updateAbsolutePositionOfAllChildren()=0;
97 
101  };
102 
103 
104 } // end namespace scene
105 } // end namespace irr
106 
107 #endif
108 
IBoneSceneNode(ISceneNode *parent, ISceneManager *mgr, s32 id=-1)
virtual E_BONE_SKINNING_SPACE getSkinningSpace() const =0
How the relative transformation of the bone is used.
GLuint id
#define _IRR_DEPRECATED_
Defines a deprecated macro which generates a warning at compile time.
Definition: irrTypes.h:202
virtual const c8 * getName() const
Returns the name of the node.
Definition: ISceneNode.h:146
The bone is not animated by the skin.
virtual void updateAbsolutePositionOfAllChildren()=0
Updates the absolute position based on the relative and the parents position.
char c8
8 bit character variable.
Definition: irrTypes.h:35
Scene node interface.
Definition: ISceneNode.h:40
Everything in the Irrlicht Engine can be found in this namespace.
Definition: CARSADPad.h:6
Interface for bones used for skeletal animation.
virtual E_BONE_ANIMATION_MODE getAnimationMode() const =0
Gets the current animation mode of the bone.
virtual void OnAnimate(u32 timeMs)=0
Returns the relative transformation of the scene node.
Not an animation mode, just here to count the available modes.
virtual bool setAnimationMode(E_BONE_ANIMATION_MODE mode)=0
Sets the animation mode of the bone.
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
virtual u32 getBoneIndex() const =0
Get the index of the bone.
virtual _IRR_DEPRECATED_ const c8 * getBoneName() const
Get the name of the bone.
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
GLenum mode
virtual void setSkinningSpace(E_BONE_SKINNING_SPACE space)=0
How the relative transformation of the bone is used.
The Scene Manager manages scene nodes, mesh resources, cameras and all the other stuff.
The bone is animated by the skin, if it's parent is not animated then animation will resume from this...
#define _IRR_OVERRIDE_
Defines an override macro, to protect virtual functions from typos and other mismatches.
Definition: irrTypes.h:216
local skinning, standard
virtual const core::aabbox3d< f32 > & getBoundingBox() const =0
Get the axis aligned bounding box of this node.
E_BONE_ANIMATION_MODE
Enumeration for different bone animation modes.
virtual void render() _IRR_OVERRIDE_
The render method.
The bone is usually animated, unless it's parent is not animated.
const c8 *const BoneAnimationModeNames[]
Names for bone animation modes.