Program Listing for File MathFunctions.cpp
↰ Return to documentation for file (src/LouLib/Math/MathFunctions.cpp
)
#include "MathFunctions.hpp"
#include <cmath>
namespace LouLib{
namespace Math{
int signum(double a){
if(a == 0) return 0;
return a > 0 ? 1 : -1;
}
double clamp(double val, double min, double max) {
if(val < min) return min;
else if(val > max) return max;
return val;
}
double constrainAngle(double x) {
double sol = std::fmod(x + 180.0, 360.0);
if(sol < 0) sol += 360;
return sol - 180;
}
double angleDifference(double final, double initial) {
double diff = final - initial;
return constrainAngle(diff);
}
}
}