2 #define GLM_ENABLE_EXPERIMENTAL
3 #define GLM_FORCE_INTRINSICS
11 #include <glm/gtc/type_ptr.hpp>
14 constexpr
float PI = 3.14159265358979323846f;
15 constexpr
float TAU = 6.28318530717958647692f;
16 constexpr
float E = 2.71828182845904523536f;
20 constexpr
float INF = __builtin_huge_valf();
28 float atan2(
float y,
float x);
38 float pow(
float base,
float exp);
48 inline T
min(T a, T b) {
return (a < b) ? a : b; }
51 inline T
max(T a, T b) {
return (a > b) ? a : b; }
54 inline T
clamp(T value, T min_val, T max_val) {
55 return min(
max(value, min_val), max_val);
62 inline T
sign(T x) {
return (x > T(0)) ? T(1) : ((x < T(0)) ? T(-1) : T(0)); }
65 inline T
lerp(T a, T b,
float t) {
66 return a + (b - a) * t;
71 T t =
clamp((x - edge0) / (edge1 - edge0), T(0), T(1));
72 return t * t * (T(3) - T(2) * t);
81 float random(
float min_val,
float max_val);
82 int random(
int min_val,
int max_val);
86 if (
abs(target - current) <= delta) {
89 return current +
sign(target - current) * delta;
92 float snap(
float value,
float step);
bool is_zero_approx(float x)
Definition: math.cpp:115
float snap(float value, float step)
Definition: math.cpp:134
T clamp(T value, T min_val, T max_val)
Definition: math.h:54
T move_toward(T current, T target, T delta)
Definition: math.h:85
float log(float x)
Definition: math.cpp:53
constexpr float PI
Definition: math.h:14
constexpr float EPSILON
Definition: math.h:19
float cbrt(float x)
Definition: math.cpp:73
float atan2(float y, float x)
Definition: math.cpp:33
float cos(float x)
Definition: math.cpp:13
float tan(float x)
Definition: math.cpp:17
constexpr float E
Definition: math.h:16
float random(float min_val, float max_val)
Definition: math.cpp:125
float asin(float x)
Definition: math.cpp:21
float deg2rad(float degrees)
Definition: math.cpp:105
float log10(float x)
Definition: math.cpp:61
float acos(float x)
Definition: math.cpp:25
float cosh(float x)
Definition: math.cpp:41
float floor(float x)
Definition: math.cpp:78
float exp(float x)
Definition: math.cpp:49
constexpr float RAD2DEG
Definition: math.h:18
T max(T a, T b)
Definition: math.h:51
float log2(float x)
Definition: math.cpp:57
T smoothstep(T edge0, T edge1, T x)
Definition: math.h:70
float sin(float x)
Definition: math.cpp:9
float rad2deg(float radians)
Definition: math.cpp:109
T sign(T x)
Definition: math.h:62
constexpr float DEG2RAD
Definition: math.h:17
float trunc(float x)
Definition: math.cpp:90
float abs(float x)
Definition: math.cpp:96
constexpr float INF
Definition: math.h:20
constexpr float TAU
Definition: math.h:15
float ceil(float x)
Definition: math.cpp:82
float tanh(float x)
Definition: math.cpp:45
float atan(float x)
Definition: math.cpp:29
float sinh(float x)
Definition: math.cpp:37
float sqrt(float x)
Definition: math.cpp:69
float pow(float base, float exp)
Definition: math.cpp:65
T min(T a, T b)
Definition: math.h:48
bool is_equal_approx(float a, float b)
Definition: math.cpp:119
T lerp(T a, T b, float t)
Definition: math.h:65
float round(float x)
Definition: math.cpp:86