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);
        }

    }
}