00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef CAL_SKELETON_H
00012 #define CAL_SKELETON_H
00013
00014 #include "cal3d/global.h"
00015
00016 class CalCoreSkeleton;
00017 class CalCoreModel;
00018 class CalBone;
00019
00020 class CAL3D_API CalSkeleton
00021 {
00022 public:
00023 CalSkeleton(CalCoreSkeleton* pCoreSkeleton);
00024 ~CalSkeleton();
00025
00026 void calculateState();
00027 void clearState();
00028 bool create(CalCoreSkeleton *pCoreSkeleton);
00029 CalBone *getBone(int boneId) const;
00030 CalCoreSkeleton *getCoreSkeleton() const;
00031 std::vector<CalBone *>& getVectorBone();
00032 void lockState();
00033 void getBoneBoundingBox(float *min, float *max);
00034 void calculateBoundingBoxes();
00035
00036
00037 int getBonePoints(float *pPoints);
00038 int getBonePointsStatic(float *pPoints);
00039 int getBoneLines(float *pLines);
00040 int getBoneLinesStatic(float *pLines);
00041
00042 private:
00043 CalCoreSkeleton *m_pCoreSkeleton;
00044 std::vector<CalBone *> m_vectorBone;
00045 bool m_isBoundingBoxesComputed;
00046 };
00047
00048 #endif
00049
00050