22 #define _USE_MATH_DEFINES 26 #define M_PI 3.14159265358979323846 27 #define M_PI_2 1.57079632679489661923 28 #define M_PI_4 0.785398163397448309616 33 inline bool AreSame(
float l,
float r)
35 return std::fabs(l-r) <= FLT_EPSILON;
38 inline bool AreSame(
double l,
double r)
40 return std::fabs(l-r) <= DBL_EPSILON;
43 inline float Round(
float x)
45 return x < 0.0f ? std::ceil(x - 0.5f) : std::floor(x + 0.5f);
48 inline double Round(
double x)
50 return x < 0.0 ? std::ceil(x - 0.5) : std::floor(x + 0.5);
56 inline _Tx Sqr(
const _Tx& x)
62 inline _Tx Sign(
const _Tx& x)
64 return (_Tx(0) < x) - (x < _Tx(0));
68 inline _Tx Clamp(
const _Tx& x,
const _Tx& min,
const _Tx& max)
70 return std::min(std::max(x, min), max);
75 inline double Deg2Rad(
double deg)
77 return deg * M_PI / 180.0;
80 inline double Rad2Deg(
double rad)
82 return rad / M_PI * 180.0;
85 inline double Xcom2Rad(
int deg)
87 return deg * 0.125 * M_PI / 180.0;
90 inline double Nautical(
double x)
92 return x * (1 / 60.0) * (M_PI / 180.0);