00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef CAL_MODEL_H
00012 #define CAL_MODEL_H
00013
00014
00015
00016
00017
00018 #include "cal3d/global.h"
00019
00020
00021
00022
00023
00024 class CalCoreModel;
00025 class CalSkeleton;
00026 class CalMixer;
00027 class CalMorphTargetMixer;
00028 class CalPhysique;
00029 class CalSpringSystem;
00030 class CalRenderer;
00031 class CalMesh;
00032
00033
00034
00035
00036
00037
00041 class CAL3D_API CalModel
00042 {
00043
00044 protected:
00045 CalCoreModel *m_pCoreModel;
00046 CalSkeleton *m_pSkeleton;
00047 CalMixer *m_pMixer;
00048 CalMorphTargetMixer *m_pMorphTargetMixer;
00049 CalPhysique *m_pPhysique;
00050 CalSpringSystem *m_pSpringSystem;
00051 CalRenderer *m_pRenderer;
00052 Cal::UserData m_userData;
00053 std::vector<CalMesh *> m_vectorMesh;
00054
00055
00056 public:
00057 CalModel();
00058 virtual ~CalModel();
00059
00060
00061 public:
00062 bool attachMesh(int coreMeshId);
00063 bool create(CalCoreModel *pCoreModel);
00064 void destroy();
00065 bool detachMesh(int coreMeshId);
00066 CalCoreModel *getCoreModel();
00067 CalMesh *getMesh(int coreMeshId);
00068 CalMixer *getMixer();
00069 CalMorphTargetMixer *getMorphTargetMixer();
00070 CalPhysique *getPhysique();
00071 CalRenderer *getRenderer();
00072 CalSkeleton *getSkeleton();
00073 CalSpringSystem *getSpringSystem();
00074 Cal::UserData getUserData();
00075 std::vector<CalMesh *>& getVectorMesh();
00076 void setLodLevel(float lodLevel);
00077 void setMaterialSet(int setId);
00078 void setUserData(Cal::UserData userData);
00079 void update(float deltaTime);
00080 void disableInternalData();
00081 };
00082
00083 #endif
00084
00085