X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fanimation.h;h=58a76583392270e5f1c0dd7a348d0fe10cff23d7;hb=78328c5f6e4dcbe883a3f5e4fe0974ab490be3f7;hp=a4bdabdd95401757b32c032ca56b646c2e58c92b;hpb=1eed7ffeb576674535661a09d298cff62f2cf96a;p=libs%2Fgl.git diff --git a/source/animation.h b/source/animation.h index a4bdabdd..58a76583 100644 --- a/source/animation.h +++ b/source/animation.h @@ -8,8 +8,10 @@ namespace Msp { namespace GL { +class Armature; class KeyFrame; class Matrix; +class Pose; /** An Animation is a sequence of KeyFrames combined with timing information. The @@ -64,6 +66,7 @@ private: Time::TimeDelta delta_t; RefPtr keyframe; MatrixInterpolation matrix; + std::vector pose_matrices; TimedKeyFrame(const Animation &); void prepare(); @@ -87,14 +90,20 @@ public: bool is_end() const { return end; } Matrix get_matrix() const; + Matrix get_pose_matrix(unsigned) const; }; private: + const Armature *armature; KeyFrameList keyframes; bool looping; public: Animation(); + ~Animation(); + + void set_armature(const Armature &); + const Armature *get_armature() const { return armature; } void add_keyframe(const Time::TimeDelta &, const KeyFrame &); private: