00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __MDLANIM_H__
00012 #define __MDLANIM_H__
00013
00014 #include "Model/ModelDll.h"
00015 #include "Common/Types.h"
00016 #include "Common/Table.h"
00017 #include "Common/File.h"
00018
00019 class KMdlMesh;
00020 class KMdlMeshAnim;
00021
00022
00023 class MODEL_API KMdlAnim
00024 {
00025 protected:
00026 KStr m_Name;
00027 u32 m_MaxFrame;
00028 u32 m_FPS;
00029 KTable<KMdlMeshAnim*> m_pMeshAnims;
00030 u32 m_nMeshAnims;
00031 u32 m_CurrentFrame;
00032
00033 public:
00034 KMdlAnim();
00035
00036 void Save( KFile& File );
00037 void Load( KFile& File );
00038 u32 AddMeshAnim( KMdlMeshAnim* pMeshAnim );
00039 u32 RemoveMeshAnim( KMdlMeshAnim* pMeshAnim );
00040 void SetFrame( u32 Frame );
00041 void SetMaxFrame( u32 Frame );
00042
00043 KStr GetName() { return m_Name; }
00044 u32 GetMaxFrame() { return m_MaxFrame; }
00045 u32 GetFPS() { return m_FPS; }
00046 u32 GetCurrentFrame() { return m_CurrentFrame; }
00047 u32 GetnMeshAnims() { return m_nMeshAnims; }
00048 KMdlMeshAnim* GetpMeshAnims( u32 MeshAnimId ) { return m_pMeshAnims[MeshAnimId]; }
00049
00050 void SetName( KStr Name ) { m_Name = Name; }
00051 void SetFPS( u32 FPS ) { KASSERT( FPS > 0 ); m_FPS = FPS; }
00052 };
00053
00054
00055 class MODEL_API KMdlMeshAnim
00056 {
00057 protected:
00058 u32 m_FrameStart;
00059 u32 m_FrameEnd;
00060 u32 m_MeshFrameStart;
00061 u32 m_MeshFrameEnd;
00062 KMdlMesh* m_pMesh;
00063 KMdlAnim* m_pAnim;
00064 bool m_bInheritFrame;
00065 u32 m_CurrentFrame;
00066
00067 public:
00068 KMdlMeshAnim();
00069
00070 void SetFrame( u32 Frame );
00071
00072 bool IsInheritFrame() { return m_bInheritFrame; }
00073 KMdlMesh* GetpMesh() { return m_pMesh; }
00074 u32 GetFrameStart() { return m_FrameStart; }
00075 u32 GetFrameEnd() { return m_FrameEnd; }
00076 u32 GetMeshFrameStart() { return m_MeshFrameStart; }
00077 u32 GetMeshFrameEnd() { return m_MeshFrameEnd; }
00078 u32 GetCurrentFrame() { return m_CurrentFrame; }
00079 KMdlAnim* GetpAnim() { return m_pAnim; }
00080
00081 void SetInheritFrame( bool bInherit ) { m_bInheritFrame = bInherit; }
00082 void SetpMesh( KMdlMesh* pMesh ) { m_pMesh = pMesh; }
00083 void SetFrameStart( u32 Frame ) { m_FrameStart = Frame; }
00084 void SetFrameEnd( u32 Frame ) { m_FrameEnd = Frame; }
00085 void SetMeshFrameStart( u32 Frame ) { m_MeshFrameStart = Frame; }
00086 void SetMeshFrameEnd( u32 Frame ) { m_MeshFrameEnd = Frame; }
00087 void SetpAnim( KMdlAnim* pAnim ) { m_pAnim = pAnim; }
00088 };
00089
00090
00091 #endif // __MDLANIM_H__