00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef CAL_CORETRACK_H
00012 #define CAL_CORETRACK_H
00013
00014
00015 #include "cal3d/global.h"
00016 #include "cal3d/matrix.h"
00017 #include "cal3d/vector.h"
00018 #include "cal3d/quaternion.h"
00019
00020
00021 class CalCoreBone;
00022 class CalCoreKeyframe;
00023
00024
00025 class CAL3D_API CalCoreTrack
00026 {
00027 public:
00028 CalCoreTrack();
00029 ~CalCoreTrack();
00030
00031 bool getState(float time, CalVector& translation, CalQuaternion& rotation);
00032
00033 int getCoreBoneId();
00034 bool setCoreBoneId(int coreBoneId);
00035
00036 int getCoreKeyframeCount();
00037 CalCoreKeyframe* getCoreKeyframe(int idx);
00038
00039 bool addCoreKeyframe(CalCoreKeyframe *pCoreKeyframe);
00040
00041 void scale(float factor);
00042
00043 private:
00044 std::vector<CalCoreKeyframe*>::iterator getUpperBound(float time);
00045
00047 int m_coreBoneId;
00048
00050 std::vector<CalCoreKeyframe*> m_keyframes;
00051 };
00052
00053 #endif
00054
00055