00001 #ifndef __GXBONE 00002 #define __GXBONE 00003 00004 00005 #include "GXStandardDefines.h" 00006 #include "GXAutoArray.h" 00007 #include "GXKeyframeTemplate.h" 00008 #include "GXAnimationKeyFrame.h" 00009 00010 class CGXBone 00011 { 00012 public: 00013 CGXBone(); 00014 virtual ~CGXBone(); 00015 00016 virtual bool AddAnimation(CGXKeyframeTemplate<SGXAnimationKeyFrame>* pAnimation);//count =1 00017 00018 virtual bool LoadFromStream(IStream* pStream); 00019 00020 virtual bool LoadFromData(UINT uAnimationCount, 00021 CGXKeyframeTemplate<SGXAnimationKeyFrame>* pAnimations);//each row is an animation, each column is a bone 00022 00023 00024 00025 virtual bool WriteToStream(IStream* pStream); 00026 00027 virtual UINT GetAnimationCount(); 00028 00029 virtual void GetFrameAt(SGXAnimationKeyFrame* pOut, UINT uAnimation, float fPos);//todo, add different interpolation methods to this call 00030 00031 virtual void Cleanup(); 00032 00033 protected: 00034 CGXAutoArray< CGXKeyframeTemplate<SGXAnimationKeyFrame> > m_KeyFrames; 00035 }; 00036 00037 00038 00039 00040 00041 00042 00043 #endif