From: Mikko Rasa Date: Wed, 2 May 2018 19:54:47 +0000 (+0300) Subject: Refactor the Animation reference out of TimedKeyFrame X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=89a1ada18430079896cfb28862e61bb32d66b8a0;p=libs%2Fgl.git Refactor the Animation reference out of TimedKeyFrame It's only used in prepare() so might as well pass the reference to that function. --- diff --git a/source/animation.cpp b/source/animation.cpp index ccd37bca..2f78d1ea 100644 --- a/source/animation.cpp +++ b/source/animation.cpp @@ -55,7 +55,7 @@ void Animation::add_keyframe(const Time::TimeDelta &t, const RefPtr=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) diff --git a/source/animation.h b/source/animation.h index a5f77b46..dd3cc688 100644 --- a/source/animation.h +++ b/source/animation.h @@ -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 uniforms; std::vector pose_matrices; - TimedKeyFrame(const Animation &); - void prepare(); + TimedKeyFrame(); + void prepare(const Animation &); }; struct UniformInfo