blob: 68a622123844625404d37269867bf2a5ca324864 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#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 */
|