#ifndef INTERPOLATION_H_861230A8 #define INTERPOLATION_H_861230A8 class Interpolation { public: void start(int length) { length_ = length; thus_ = 0; } void tick(double dt) { if (thus_ < length_) { thus_ += dt; if (thus_ >= length_) { thus_ = length_; } } } // Info double getProgress(double from, double to) const { return (to - from) / length_ * thus_ + from; } bool isComplete() const { return thus_ == length_; } private: double progress_ = 0.0; double dest_ = 0.0; double start_ = 0.0; double length_ = 0.0; double thus_ = 0.0; }; #endif /* end of include guard: INTERPOLATION_H_861230A8 */