|
JK2eA
|
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 }
1.8.0