X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fanimation.h;h=63b13f7224269443e9b562572be9447d263d6faf;hb=fa5b232a16e11d7950e80764497f0167ec9e3b41;hp=a4bdabdd95401757b32c032ca56b646c2e58c92b;hpb=1eed7ffeb576674535661a09d298cff62f2cf96a;p=libs%2Fgl.git diff --git a/source/animation.h b/source/animation.h index a4bdabdd..63b13f72 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 @@ -41,7 +43,7 @@ private: float scale; AxisInterpolation(); - AxisInterpolation(const double *, const double *); + AxisInterpolation(const float *, const float *); }; struct MatrixInterpolation @@ -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: