#ifndef _MOOF_INTERPOLATOR_HH_
#define _MOOF_INTERPOLATOR_HH_
+#include <Moof/Log.hh>
#include <Moof/Math.hh>
{
case STOP:
value = 1.0;
- stopped_ = true;
+ done_ = true;
break;
case REPEAT:
value -= 1.0;
{
case STOP:
value = 0.0;
- stopped_ = true;
+ done_ = true;
break;
case REPEAT:
value += 1.0;
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_);
}
}
+ bool isDone() const
+ {
+ return done_;
+ }
+
virtual void calculate(Scalar alpha) = 0;
private:
+
Scalar alpha_;
Mode mode_;
Scalar scale_;
- bool stopped_;
+ bool done_;
};
template <class T = Scalar>