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 CalPhysique;
00028 class CalSpringSystem;
00029 class CalRenderer;
00030 class CalMesh;
00031
00032
00033
00034
00035
00036
00040 class CAL3D_API CalModel
00041 {
00042
00043 protected:
00044 CalCoreModel *m_pCoreModel;
00045 CalSkeleton *m_pSkeleton;
00046 CalMixer *m_pMixer;
00047 CalPhysique *m_pPhysique;
00048 CalSpringSystem *m_pSpringSystem;
00049 CalRenderer *m_pRenderer;
00050 Cal::UserData m_userData;
00051 std::vector<CalMesh *> m_vectorMesh;
00052
00053
00054 public:
00055 CalModel();
00056 virtual ~CalModel();
00057
00058
00059 public:
00060 bool attachMesh(int coreMeshId);
00061 bool create(CalCoreModel *pCoreModel);
00062 void destroy();
00063 bool detachMesh(int coreMeshId);
00064 CalCoreModel *getCoreModel();
00065 CalMesh *getMesh(int coreMeshId);
00066 CalMixer *getMixer();
00067 CalPhysique *getPhysique();
00068 CalRenderer *getRenderer();
00069 CalSkeleton *getSkeleton();
00070 CalSpringSystem *getSpringSystem();
00071 Cal::UserData getUserData();
00072 std::vector<CalMesh *>& getVectorMesh();
00073 void setLodLevel(float lodLevel);
00074 void setMaterialSet(int setId);
00075 void setUserData(Cal::UserData userData);
00076 void update(float deltaTime);
00077 void disableInternalData();
00078 };
00079
00080 #endif
00081
00082