mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 18:18:18 +00:00
3be8a592e5
Purely automatic change. In case of conflict with this change, apply the other change and rerun the formatting to restore it: $ python scripts/fix_style.py
31 lines
665 B
C++
31 lines
665 B
C++
#ifndef GAME_BEZIER_H
|
|
#define GAME_BEZIER_H
|
|
|
|
// Evaluates the Bernstein polynomial of degree 3/a one-dimensional Bezier curve
|
|
//
|
|
// https://en.wikipedia.org/w/index.php?title=Bernstein_polynomial&oldid=965314973
|
|
//
|
|
// f(t) = (1-t)³ a + 3(1-t)²t b + 3(1-t)t² c + t³ d
|
|
class CCubicBezier
|
|
{
|
|
float a;
|
|
float b;
|
|
float c;
|
|
float d;
|
|
CCubicBezier(float a, float b, float c, float d)
|
|
{
|
|
this->a = a;
|
|
this->b = b;
|
|
this->c = c;
|
|
this->d = d;
|
|
}
|
|
|
|
public:
|
|
CCubicBezier() {}
|
|
float Evaluate(float t) const;
|
|
float Derivative(float t) const;
|
|
static CCubicBezier With(float Start, float StartDerivative, float EndDerivative, float End);
|
|
};
|
|
|
|
#endif // GAME_BEZIER_H
|