Refactor the Animation reference out of TimedKeyFrame
authorMikko Rasa <tdb@tdb.fi>
Wed, 2 May 2018 19:54:47 +0000 (22:54 +0300)
committerMikko Rasa <tdb@tdb.fi>
Wed, 2 May 2018 22:07:15 +0000 (01:07 +0300)
It's only used in prepare() so might as well pass the reference to that
function.

source/animation.cpp
source/animation.h

index ccd37bca5e0daec3d782cfd8504827efca53b922..2f78d1eafad574b4d1c060a8209d0527309cc393 100644 (file)
@@ -55,7 +55,7 @@ void Animation::add_keyframe(const Time::TimeDelta &t, const RefPtr<const KeyFra
 
        bool realloc = (keyframes.size()>=keyframes.capacity());
 
-       keyframes.push_back(TimedKeyFrame(*this));
+       keyframes.push_back(TimedKeyFrame());
        TimedKeyFrame &tkf = keyframes.back();
        tkf.time = t;
        tkf.keyframe = kf;
@@ -94,7 +94,7 @@ void Animation::prepare_keyframe(TimedKeyFrame &tkf)
                        uniforms.push_back(UniformInfo(i->first, i->second.size));
        }
 
-       tkf.prepare();
+       tkf.prepare(*this);
 }
 
 
@@ -185,12 +185,11 @@ Matrix Animation::MatrixInterpolation::get(float t) const
 }
 
 
-Animation::TimedKeyFrame::TimedKeyFrame(const Animation &a):
-       animation(a),
+Animation::TimedKeyFrame::TimedKeyFrame():
        prev(0)
 { }
 
-void Animation::TimedKeyFrame::prepare()
+void Animation::TimedKeyFrame::prepare(const Animation &animation)
 {
        const KeyFrame::UniformMap &kf_uniforms = keyframe->get_uniforms();
        for(KeyFrame::UniformMap::const_iterator i=kf_uniforms.begin(); i!=kf_uniforms.end(); ++i)
index a5f77b46c4eb185a733a4f65355f4c67526e1545..dd3cc688c41290316450858a7d540a79e93dcfb8 100644 (file)
@@ -60,7 +60,6 @@ private:
 
        struct TimedKeyFrame
        {
-               const Animation &animation;
                const TimedKeyFrame *prev;
                Time::TimeDelta time;
                Time::TimeDelta delta_t;
@@ -69,8 +68,8 @@ private:
                std::vector<KeyFrame::AnimatedUniform> uniforms;
                std::vector<MatrixInterpolation> pose_matrices;
 
-               TimedKeyFrame(const Animation &);
-               void prepare();
+               TimedKeyFrame();
+               void prepare(const Animation &);
        };
 
        struct UniformInfo