JK2eA
 All Classes Functions Variables
Bone.h
00001 #pragma once
00002 
00003 #include <Vector.h>
00004 #include <Matrix.h>
00005 #include <string>
00006 
00010 class CBone {
00011 private:
00012         std::string m_name;                     
00013         CBone*          m_parent;               
00014 
00015         // bone matrices
00016         mat4            m_bindPose;             
00017         mat4            m_bindPoseRel;  
00018         mat4            m_finalMatrix;  
00019         mat4            m_relativeFinal;
00020         
00021 
00022 
00024         vec4    m_quat;                         
00025         vec             m_pos;                          
00026 public:
00030         CBone();
00034         ~CBone();
00035 
00040         void            SetParent(CBone* parent);
00045         void            SetName(const std::string& name);
00050         std::string GetName();
00055         CBone*          GetParent();
00059         inline void Reset();
00060 
00061 
00062         
00063         mat4& GetBindPoseMatrix();
00064         mat4& GetBindPoseRelMatrix();
00065         mat4& GetRelativeFinalMatrix();
00066         mat4& GetFinalMatrix(); 
00067 
00068 
00069         // Pro controllery
00070 
00071         vec4& GetQuaternion();
00072         vec&  GetPosition();
00073         
00074 
00075 };
00076 
00077 
00078 inline void CBone::Reset()
00079 {
00080         m_relativeFinal = m_bindPoseRel;
00081 }