00001 #ifndef ANIMATIONSET_TSD242
00002 #define ANIMATIONSET_TSD242
00003
00004 #include "global.h"
00005 #include "Keyframes.h"
00006 class Bone;
00007 class SkeletalAnimation;
00008
00018 class AnimationSet {
00019 public:
00025 AnimationSet( const std::string& setName );
00026
00030 ~AnimationSet();
00031
00049 void addAnimation( const AKeysList& keys, const BoneNameSet& boneSet,
00050 Bone& rootBone, float startTime, float endTime,
00051 const std::string& animName );
00052
00060 void setLooping( bool looping );
00061
00065 bool isLooping() const;
00066
00070 const std::string& getName() const;
00071
00075 int getNumAnims() const;
00076
00083 int findAnim( const std::string& animName ) const;
00084
00092 const std::string& getAnimName( int anim ) const;
00093
00098 int getActiveAnim() const;
00099
00110 void setActiveAnim( int anim );
00111
00118 void update( float dt );
00119
00120 private:
00121 AnimationSet();
00122 AnimationSet( const AnimationSet& o );
00123 AnimationSet& operator = ( const AnimationSet& rhs );
00124
00125 std::string name;
00126 float currTime;
00127 bool looping;
00128
00129 SkeletalAnimation* activeAnim;
00130
00131 typedef std::vector<SkeletalAnimation*> AList;
00132 typedef AList::iterator AListIter;
00133 typedef AList::const_iterator AListCIter;
00134
00135 AList anims;
00136 };
00137
00138 #endif
00139