]> git.tdb.fi Git - libs/gl.git/blobdiff - source/animation.cpp
Refactor the Animation reference out of TimedKeyFrame
[libs/gl.git] / source / animation.cpp
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)