32 lines
964 B
C++
32 lines
964 B
C++
#include <VUtils/Math.h>
|
|
|
|
namespace VUtils {
|
|
double Math::clamp(double value, double min, double max) {
|
|
return value > max ? max : value < min ? min : value;
|
|
}
|
|
|
|
double Math::lerp(double a, double b, double f) {
|
|
return (a + (b - a) * f);
|
|
}
|
|
double Math::bezierBlend(double t) {
|
|
return t * t * (3.0 - 2.0 * t);
|
|
}
|
|
double Math::easeIn(double ratio) {
|
|
return ratio * ratio * ratio;
|
|
}
|
|
double Math::map(double x, double in_min, double in_max, double out_min, double out_max) {
|
|
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
|
}
|
|
double Math::cubicInterpolate (double y0, double y1, double y2, double y3, double factor)
|
|
{
|
|
double a0, a1, a2, a3, mu2;
|
|
|
|
mu2 = factor * factor;
|
|
a0 = y3 - y2 - y0 + y1;
|
|
a1 = y0 - y1 - a0;
|
|
a2 = y2 - y0;
|
|
a3 = y1;
|
|
|
|
return (a0 * factor * mu2 + a1 * mu2 + a2 * factor + a3);
|
|
}
|
|
} |