G43riko
10/28/2016 - 8:26 AM

Math.cpp

#define MATH_PI 3.1415926535897932384626433832795
#define ToRadians(x) (float)(((x) * MATH_PI / 180.0f))
#define ToDegrees(x) (float)(((x) * 180.0f / MATH_PI))

template<typename T>
inline T clamp(const T &a, const T &min, const T &max) {
    if (a < min) return min;
    else if (a > max) return max;
    else return a;
}

template<typename T>
inline T linearInterpolation(const T &a, const T &b, const T &val){
    return a * val + (1 - val) * b;
}

template<typename T>
inline int sinI(T num){return (int)sin(num); }

template<typename T>
inline float sinF(T num){return (float)sin(num); }

template<typename T>
inline int cosI(T num){return (int)cos(num); }

template<typename T>
inline float cosF(T num){return (float)cos(num); }

template<typename T>
inline bool eq(float a, T b){return !(a < b || a >= b); }

template<typename T>
inline bool gq(float a, T b){return !(a < b || a >= b); }