8 #if defined(_WIN32) && defined(_MSC_VER)
21 static constexpr
float PI { 3.141592653589793f };
22 static constexpr
float EPSILON { 0.0000001f };
23 static constexpr
float DEG2RAD { 0.017453294f };
24 static constexpr
float G { 9.80665f };
34 if (value <
min)
return min;
35 if (value >
max)
return max;
44 inline static auto sign(
auto value) {
45 if (
abs(value) <
EPSILON)
return static_cast<decltype(value)
>(1);
54 inline static auto square(
auto value) {
63 inline static auto abs(
auto value) {
64 return std::abs(value);
72 inline static float acos(
float x) {
81 inline static float asin(
float x) {
90 inline static float atan(
float x) {
100 inline static float atan2(
float y,
float x) {
101 return std::atan2(y, x);
109 inline static float ceil(
float value) {
110 return std::ceil(value);
118 inline static float cos(
float x) {
127 inline static float floor(
float value) {
128 return std::floor(value);
137 inline static auto max(
auto value1,
auto value2) {
138 return value1 > value2?value1:value2;
147 inline static auto min(
auto value1,
auto value2) {
148 return value1 < value2?value1:value2;
156 inline static float round(
float value) {
157 return std::round(value);
166 inline static auto pow(
auto base,
auto power) {
167 return std::pow(base, power);
175 return (
float)rand() / (float)RAND_MAX;
183 inline static float sin(
float x) {
192 inline static float sqrt(
float value) {
193 return std::sqrt(value);
201 inline static float tan(
float x) {
210 inline static float exp(
float power) {
211 return std::exp(power);
219 inline static float log(
float value) {
220 return std::log(value);
229 inline static auto mod(
auto value,
auto range) {
230 return value % range;
239 inline static float mod(
float value,
float range) {
240 return std::fmod(value, range);
249 inline static auto absmod(
auto value,
auto range) {
250 auto result = value % range;
251 if (result < 0.0f) result+= range;
261 inline static float absmod(
float value,
float range) {
262 auto result = std::fmod(value, range);
263 if (result < 0.0f) result+= range;
static float sqrt(float value)
Returns the square root of given value.
static float log(float value)
Returns the natural (base e) logarithm of value.
static float round(float value)
Returns the rounded value of given float value.
static float sin(float x)
Returns the sine of x.
static float tan(float x)
Returns the tangent of x.
static float atan(float x)
Returns the arc tangent of x.
static auto mod(auto value, auto range)
Returns modulo of value, so that return value is -range < value < range.
static auto square(auto value)
Do the square product.
static float floor(float value)
Returns the lower integer value of given value.
static float cos(float x)
Returns the cosine of x.
static constexpr float EPSILON
static auto abs(auto value)
Returns absolute value.
static float asin(float x)
Returns the arc sine of x.
static float random()
Returns a random value between 0.0 .
static auto absmod(auto value, auto range)
Returns absolute modulo of value, so that return value is 0 <= value < range.
static auto min(auto value1, auto value2)
Returns the lesser value of given values.
static float absmod(float value, float range)
Returns absolute modulo of value, so that return value is 0.0f <= value < range.
static float acos(float x)
Returns the arc cosine of x.
static auto max(auto value1, auto value2)
Returns the higher value of given values.
static float atan2(float y, float x)
Returns the angle from the conversion of rectangular coordinates to polar coordinates.
static float exp(float power)
Returns e raised to the given power.
static auto pow(auto base, auto power)
Returns the value of base raised to the power.
static constexpr float PI
static auto sign(auto value)
Returns sign of value.
static float mod(float value, float range)
Returns modulo of value, so that return value is -range < value < range.
static float ceil(float value)
Returns the higher integer value of given value.
static constexpr float DEG2RAD
static auto clamp(auto value, auto min, auto max)
Clamps a value to min or max value.