X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FInterpolator.hh;h=4de3f6974bd3a7ceeaf93945b9d7ca5323126c07;hp=7ded928d8c3109d78fa29a3ff3d4386272b94cc9;hb=a4debfe4a5f5d339410788971b698ba00cb7f09c;hpb=892da43bf5796e7c5f593a6d0f53bd797a36bd3e diff --git a/src/Moof/Interpolator.hh b/src/Moof/Interpolator.hh index 7ded928..4de3f69 100644 --- a/src/Moof/Interpolator.hh +++ b/src/Moof/Interpolator.hh @@ -29,6 +29,7 @@ #ifndef _MOOF_INTERPOLATOR_HH_ #define _MOOF_INTERPOLATOR_HH_ +#include #include @@ -47,7 +48,7 @@ class Interpolator { case STOP: value = 1.0; - stopped_ = true; + done_ = true; break; case REPEAT: value -= 1.0; @@ -64,7 +65,7 @@ class Interpolator { case STOP: value = 0.0; - stopped_ = true; + done_ = true; break; case REPEAT: value += 1.0; @@ -96,13 +97,13 @@ public: void setMode(Mode mode) { mode_ = mode; - stopped_ = false; + done_ = false; } - void update(Scalar dt) + void update(Scalar t, Scalar dt) { - if (!stopped_) + if (!done_) { alpha_ += dt * scale_; clamp(alpha_); @@ -110,13 +111,19 @@ public: } } + bool isDone() const + { + return done_; + } + virtual void calculate(Scalar alpha) = 0; private: + Scalar alpha_; Mode mode_; Scalar scale_; - bool stopped_; + bool done_; }; template