]> git.tdb.fi Git - libs/gl.git/blobdiff - source/animation.h
Some cleanup for View and WindowView
[libs/gl.git] / source / animation.h
index 3404f45bd9f8c446f5110844e2cae7114fffe6ea..b9e9fe1f3d1bd25e7a10efd3c0d7648eadd75000 100644 (file)
@@ -25,6 +25,8 @@ public:
        {
        private:
                Time::TimeDelta current_time;
+               float start_slope;
+               float end_slope;
 
        public:
                Loader(Animation &);
@@ -41,6 +43,7 @@ public:
                void interval(float);
                void keyframe(const std::string &);
                void keyframe_inline();
+               void slopes(float, float);
        };
 
 private:
@@ -70,6 +73,8 @@ private:
                const TimedKeyFrame *prev;
                Time::TimeDelta time;
                Time::TimeDelta delta_t;
+               float start_slope;
+               float end_slope;
                RefPtr<const KeyFrame> keyframe;
                MatrixInterpolation matrix;
                std::vector<KeyFrame::AnimatedUniform> uniforms;
@@ -102,6 +107,7 @@ public:
                std::vector<TimedKeyFrame>::const_iterator iter;
                std::vector<Event>::const_iterator event_iter;
                Time::TimeDelta time_since_keyframe;
+               float x;
                bool end;
 
        public:
@@ -135,12 +141,16 @@ public:
        const std::string &get_uniform_name(unsigned) const;
 
        void add_keyframe(const Time::TimeDelta &, const KeyFrame &);
+       void add_keyframe(const Time::TimeDelta &, const KeyFrame &, float);
+       void add_keyframe(const Time::TimeDelta &, const KeyFrame &, float, float);
 private:
-       void add_keyframe(const Time::TimeDelta &, const RefPtr<const KeyFrame> &);
+       void add_keyframe(const Time::TimeDelta &, const RefPtr<const KeyFrame> &, float, float);
        void prepare_keyframe(TimedKeyFrame &);
 public:
        void add_event(const Time::TimeDelta &, const std::string &, const Variant & = Variant());
 
+       const Msp::Time::TimeDelta &get_duration() const;
+
        void set_looping(bool);
 };