00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __SO3_SEQUENCE_ANIMATION_TRACK_H__
00029 #define __SO3_SEQUENCE_ANIMATION_TRACK_H__
00030
00031 #include "..\SO3Animation\SO3AnimTrack.h"
00032 #include "..\SO3Animation\SO3SequenceAnimationKey.h"
00033
00034 namespace SO3
00035 {
00036
00037 class SSequenceAnimationTrack : public SAnimTrack
00038 {
00039 public:
00040 protected:
00041 private:
00042 SAnimSequenceKeyList keyList;
00043 float mLength;
00044 public:
00048 SSequenceAnimationTrack(std::string animationTrackName, SSequenceAnimation* animation, unsigned short trackAnimationId);
00049
00052 ~SSequenceAnimationTrack();
00053
00056 SSequenceAnimationKey* AddKey(SAnim* anim, float length, float transition, float decaltime);
00057
00060 void SetKey(unsigned int index, float length, float transition, float decaltime);
00061
00064 void RemoveKey(SSequenceAnimationKey* key, bool reset);
00065
00068 SSequenceAnimationKey* GetKeyFromIndex(unsigned int index);
00069
00072 SAnimSequenceKeyList GetKeysFromAnim(SAnim* anim);
00073
00076 void RemoveKeysWithAnim(SAnim* anim, bool reset);
00077
00080 void SetLength(float length);
00081
00084 float GetLength();
00085
00088 void EnableTrackKeys(bool enable);
00089
00092 bool MoveKeyFromIndex(unsigned int index, unsigned int newindex);
00093
00096 virtual unsigned short GetNumKeyFrames();
00097
00100 virtual float GetKeyPositionTime(unsigned int keyIndex);
00101
00104 virtual void RemoveKey(unsigned int keyIndex);
00105
00108 virtual void RemoveAllKeyFrames();
00109
00112 virtual void Update(float pos);
00113 protected:
00114 private:
00118 SSequenceAnimationTrack();
00119
00122 void UpdateTrackTime();
00123 };
00124
00125 }
00126
00127 #endif