blob: 68a622123844625404d37269867bf2a5ca324864 (
plain) (
tree)
|
|
#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 */
|