Neo  0.5.0
Developer Documentation
Armature.h
Go to the documentation of this file.
1 //========================================================================
2 // Copyright (c) 2003-2011 Anael Seghezzi <www.maratis3d.com>
3 // Copyright (c) 2014-2015 Yannick Pflanzer <www.neo-engine.de>
4 //
5 // This software is provided 'as-is', without any express or implied
6 // warranty. In no event will the authors be held liable for any damages
7 // arising from the use of this software.
8 //
9 // Permission is granted to anyone to use this software for any purpose,
10 // including commercial applications, and to alter it and redistribute it
11 // freely, subject to the following restrictions:
12 //
13 // 1. The origin of this software must not be misrepresented; you must not
14 // claim that you wrote the original software. If you use this software
15 // in a product, an acknowledgment in the product documentation would
16 // be appreciated but is not required.
17 //
18 // 2. Altered source versions must be plainly marked as such, and must not
19 // be misrepresented as being the original software.
20 //
21 // 3. This notice may not be removed or altered from any source
22 // distribution.
23 //
24 //========================================================================
25 
26 
27 #ifndef __ARMATURE_H
28 #define __ARMATURE_H
29 
30 namespace Neo
31 {
32 class NEO_ENGINE_EXPORT Armature
33 {
34 private:
35 
36  // bones
37  unsigned int m_bonesNumber;
38  OBone ** m_bones;
39 
40 public:
41 
42  // constructors / destructor
43  Armature(void);
44  virtual ~Armature(void);
45 
46 public:
47 
48  // bones
49  void clearBones(void);
50  void allocBones(unsigned int size);
51  bool getBoneId(const char * boneName, unsigned int * bId);
52  OBone * addNewBone(void);
53  OBone * getBoneByName(const char * name);
54  inline unsigned int getBonesNumber(void){ return m_bonesNumber; }
55  inline OBone * getBone(unsigned int bId){ return m_bones[bId]; }
56 
57  // construct bones inverse pose matrix
58  void constructBonesInversePoseMatrix(void);
59 
60  // updat bones skin matrix
61  void updateBonesSkinMatrix(void);
62 
63  // linking
64  void processBonesLinking(void);
65 };
66 }
67 #endif
Definition: Armature.h:32
OBone * getBone(unsigned int bId)
Definition: Armature.h:55
Definition: OBone.h:31
unsigned int getBonesNumber(void)
Definition: Armature.h:54
Definition: Color.h:29