libdonut 2.3.6
Application framework for cross-platform game development in C++20
Loading...
Searching...
No Matches
math.hpp
Go to the documentation of this file.
1#ifndef DONUT_MATH_HPP
2#define DONUT_MATH_HPP
3
4#include <glm/ext/matrix_clip_space.hpp> // glm::ortho, glm::perspective
5#include <glm/ext/matrix_transform.hpp> // glm::identity, glm::translate, glm::rotate, glm::scale, glm::lookAt
6#include <glm/glm.hpp> // glm::...
7#include <glm/gtc/matrix_inverse.hpp> // glm::inverseTranspose
8#include <glm/gtc/quaternion.hpp> // glm::qua, glm::quat, glm::quat_cast, glm::lerp, glm::slerp
9#include <glm/gtc/type_ptr.hpp> // glm::value_ptr
10#include <glm/gtx/euler_angles.hpp> // glm::orientate2, glm::orientate3, glm::orientate4
11#include <glm/gtx/matrix_interpolation.hpp> // glm::interpolate
12#include <glm/gtx/norm.hpp> // glm::length2, glm::distance2
13#include <glm/gtx/transform.hpp> // glm::translate, glm::rotate, glm::scale
14#include <numbers> // std::numbers::...
15
16namespace donut {
17
18namespace numbers {
19
20using std::numbers::e_v;
21using std::numbers::egamma_v;
22using std::numbers::inv_pi_v;
23using std::numbers::inv_sqrt3_v;
24using std::numbers::inv_sqrtpi_v;
25using std::numbers::ln10_v;
26using std::numbers::ln2_v;
27using std::numbers::log10e_v;
28using std::numbers::log2e_v;
29using std::numbers::phi_v;
30using std::numbers::pi_v;
31using std::numbers::sqrt2_v;
32using std::numbers::sqrt3_v;
33
34inline constexpr float e = e_v<float>;
35inline constexpr float log2e = log2e_v<float>;
36inline constexpr float log10e = log10e_v<float>;
37inline constexpr float pi = pi_v<float>;
38inline constexpr float inv_pi = inv_pi_v<float>;
39inline constexpr float inv_sqrtpi = inv_sqrtpi_v<float>;
40inline constexpr float ln2 = ln2_v<float>;
41inline constexpr float ln10 = ln10_v<float>;
42inline constexpr float sqrt2 = sqrt2_v<float>;
43inline constexpr float sqrt3 = sqrt3_v<float>;
44inline constexpr float inv_sqrt3 = inv_sqrt3_v<float>;
45inline constexpr float egamma = egamma_v<float>;
46inline constexpr float phi = phi_v<float>;
47
48} // namespace numbers
49
50using glm::abs;
51using glm::acos;
52using glm::asin;
53using glm::atan;
54using glm::atan2;
55using glm::ceil;
56using glm::clamp;
57using glm::cos;
58using glm::cross;
59using glm::degrees;
60using glm::distance2;
61using glm::dmat2;
62using glm::dmat3;
63using glm::dmat4;
64using glm::dot;
65using glm::dvec2;
66using glm::dvec3;
67using glm::dvec4;
68using glm::exp;
69using glm::exp2;
70using glm::floor;
71using glm::fract;
72using glm::i16;
73using glm::i16vec2;
74using glm::i16vec3;
75using glm::i16vec4;
76using glm::i32;
77using glm::i32vec2;
78using glm::i32vec3;
79using glm::i32vec4;
80using glm::i64;
81using glm::i64vec2;
82using glm::i64vec3;
83using glm::i64vec4;
84using glm::i8;
85using glm::i8vec2;
86using glm::i8vec3;
87using glm::i8vec4;
88using glm::identity;
89using glm::interpolate;
90using glm::inverse;
91using glm::inverseTranspose;
92using glm::ivec2;
93using glm::ivec3;
94using glm::ivec4;
95using glm::length;
96using glm::length2;
97using glm::length_t;
98using glm::lerp;
99using glm::lookAt;
100using glm::mat;
101using glm::mat2;
102using glm::mat3;
103using glm::mat3_cast;
104using glm::mat4;
105using glm::mat4_cast;
106using glm::max;
107using glm::min;
108using glm::mix;
109using glm::normalize;
110using glm::orientate2;
111using glm::orientate3;
112using glm::orientate4;
113using glm::ortho;
114using glm::perspective;
115using glm::pow;
116using glm::qua;
117using glm::quat;
118using glm::quat_cast;
119using glm::radians;
120using glm::rotate;
121using glm::round;
122using glm::scale;
123using glm::sin;
124using glm::slerp;
125using glm::sqrt;
126using glm::tan;
127using glm::translate;
128using glm::transpose;
129using glm::u16;
130using glm::u16vec2;
131using glm::u16vec3;
132using glm::u16vec4;
133using glm::u32;
134using glm::u32vec2;
135using glm::u32vec3;
136using glm::u32vec4;
137using glm::u64;
138using glm::u64vec2;
139using glm::u64vec3;
140using glm::u64vec4;
141using glm::u8;
142using glm::u8vec2;
143using glm::u8vec3;
144using glm::u8vec4;
145using glm::uvec2;
146using glm::uvec3;
147using glm::uvec4;
148using glm::value_ptr;
149using glm::vec;
150using glm::vec2;
151using glm::vec3;
152using glm::vec4;
153
154} // namespace donut
155
156#endif
Definition math.hpp:18
constexpr float ln2
Definition math.hpp:40
constexpr float phi
Definition math.hpp:46
constexpr float inv_sqrt3
Definition math.hpp:44
constexpr float sqrt3
Definition math.hpp:43
constexpr float ln10
Definition math.hpp:41
constexpr float inv_pi
Definition math.hpp:38
constexpr float log2e
Definition math.hpp:35
constexpr float pi
Definition math.hpp:37
constexpr float egamma
Definition math.hpp:45
constexpr float log10e
Definition math.hpp:36
constexpr float e
Definition math.hpp:34
constexpr float inv_sqrtpi
Definition math.hpp:39
constexpr float sqrt2
Definition math.hpp:42
Definition Application.hpp:9