1.0.0 API documentation
Loading...
Searching...
No Matches
euler_angles.hpp
Go to the documentation of this file.
1
15
16#pragma once
17
18// Dependency:
19#include "../glm.hpp"
20
21#ifndef GLM_ENABLE_EXPERIMENTAL
22# error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
23#elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
24# pragma message("GLM: GLM_GTX_euler_angles extension included")
25#endif
26
27namespace glm
28{
31
34 template<typename T>
35 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleX(
36 T const& angleX);
37
40 template<typename T>
41 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleY(
42 T const& angleY);
43
46 template<typename T>
47 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZ(
48 T const& angleZ);
49
52 template <typename T>
53 GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleX(
54 T const & angleX, T const & angularVelocityX);
55
58 template <typename T>
59 GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleY(
60 T const & angleY, T const & angularVelocityY);
61
64 template <typename T>
65 GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleZ(
66 T const & angleZ, T const & angularVelocityZ);
67
70 template<typename T>
71 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXY(
72 T const& angleX,
73 T const& angleY);
74
77 template<typename T>
78 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYX(
79 T const& angleY,
80 T const& angleX);
81
84 template<typename T>
85 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZ(
86 T const& angleX,
87 T const& angleZ);
88
91 template<typename T>
92 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZX(
93 T const& angle,
94 T const& angleX);
95
98 template<typename T>
99 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZ(
100 T const& angleY,
101 T const& angleZ);
102
105 template<typename T>
106 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZY(
107 T const& angleZ,
108 T const& angleY);
109
112 template<typename T>
113 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYZ(
114 T const& t1,
115 T const& t2,
116 T const& t3);
117
120 template<typename T>
121 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXZ(
122 T const& yaw,
123 T const& pitch,
124 T const& roll);
125
128 template <typename T>
129 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZX(
130 T const & t1,
131 T const & t2,
132 T const & t3);
133
136 template <typename T>
137 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYX(
138 T const & t1,
139 T const & t2,
140 T const & t3);
141
144 template <typename T>
145 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXY(
146 T const & t1,
147 T const & t2,
148 T const & t3);
149
152 template <typename T>
153 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZY(
154 T const & t1,
155 T const & t2,
156 T const & t3);
157
160 template <typename T>
161 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZYZ(
162 T const & t1,
163 T const & t2,
164 T const & t3);
165
168 template <typename T>
169 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZXZ(
170 T const & t1,
171 T const & t2,
172 T const & t3);
173
176 template <typename T>
177 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZY(
178 T const & t1,
179 T const & t2,
180 T const & t3);
181
184 template <typename T>
185 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZX(
186 T const & t1,
187 T const & t2,
188 T const & t3);
189
192 template <typename T>
193 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZYX(
194 T const & t1,
195 T const & t2,
196 T const & t3);
197
200 template <typename T>
201 GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZXY(
202 T const & t1,
203 T const & t2,
204 T const & t3);
205
208 template<typename T>
209 GLM_FUNC_DECL mat<4, 4, T, defaultp> yawPitchRoll(
210 T const& yaw,
211 T const& pitch,
212 T const& roll);
213
216 template<typename T>
217 GLM_FUNC_DECL mat<2, 2, T, defaultp> orientate2(T const& angle);
218
221 template<typename T>
222 GLM_FUNC_DECL mat<3, 3, T, defaultp> orientate3(T const& angle);
223
226 template<typename T, qualifier Q>
227 GLM_FUNC_DECL mat<3, 3, T, Q> orientate3(vec<3, T, Q> const& angles);
228
231 template<typename T, qualifier Q>
232 GLM_FUNC_DECL mat<4, 4, T, Q> orientate4(vec<3, T, Q> const& angles);
233
236 template<typename T>
237 GLM_FUNC_DISCARD_DECL void extractEulerAngleXYZ(mat<4, 4, T, defaultp> const& M,
238 T & t1,
239 T & t2,
240 T & t3);
241
244 template <typename T>
245 GLM_FUNC_DISCARD_DECL void extractEulerAngleYXZ(mat<4, 4, T, defaultp> const & M,
246 T & t1,
247 T & t2,
248 T & t3);
249
252 template <typename T>
253 GLM_FUNC_DISCARD_DECL void extractEulerAngleXZX(mat<4, 4, T, defaultp> const & M,
254 T & t1,
255 T & t2,
256 T & t3);
257
260 template <typename T>
261 GLM_FUNC_DISCARD_DECL void extractEulerAngleXYX(mat<4, 4, T, defaultp> const & M,
262 T & t1,
263 T & t2,
264 T & t3);
265
268 template <typename T>
269 GLM_FUNC_DISCARD_DECL void extractEulerAngleYXY(mat<4, 4, T, defaultp> const & M,
270 T & t1,
271 T & t2,
272 T & t3);
273
276 template <typename T>
277 GLM_FUNC_DISCARD_DECL void extractEulerAngleYZY(mat<4, 4, T, defaultp> const & M,
278 T & t1,
279 T & t2,
280 T & t3);
281
284 template <typename T>
285 GLM_FUNC_DISCARD_DECL void extractEulerAngleZYZ(mat<4, 4, T, defaultp> const & M,
286 T & t1,
287 T & t2,
288 T & t3);
289
292 template <typename T>
293 GLM_FUNC_DISCARD_DECL void extractEulerAngleZXZ(mat<4, 4, T, defaultp> const & M,
294 T & t1,
295 T & t2,
296 T & t3);
297
300 template <typename T>
301 GLM_FUNC_DISCARD_DECL void extractEulerAngleXZY(mat<4, 4, T, defaultp> const & M,
302 T & t1,
303 T & t2,
304 T & t3);
305
308 template <typename T>
309 GLM_FUNC_DISCARD_DECL void extractEulerAngleYZX(mat<4, 4, T, defaultp> const & M,
310 T & t1,
311 T & t2,
312 T & t3);
313
316 template <typename T>
317 GLM_FUNC_DISCARD_DECL void extractEulerAngleZYX(mat<4, 4, T, defaultp> const & M,
318 T & t1,
319 T & t2,
320 T & t3);
321
324 template <typename T>
325 GLM_FUNC_DISCARD_DECL void extractEulerAngleZXY(mat<4, 4, T, defaultp> const & M,
326 T & t1,
327 T & t2,
328 T & t3);
329
331}//namespace glm
332
333#include "euler_angles.inl"
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
GLM_FUNC_DECL T pitch(qua< T, Q > const &x)
Returns pitch value of euler angles expressed in radians.
GLM_FUNC_DECL T roll(qua< T, Q > const &x)
Returns roll value of euler angles expressed in radians.
GLM_FUNC_DECL T yaw(qua< T, Q > const &x)
Returns yaw value of euler angles expressed in radians.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
GLM_FUNC_DISCARD_DECL void extractEulerAngleYZY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * Z * Y) Euler angles from the rotation matrix M.
GLM_FUNC_DISCARD_DECL void extractEulerAngleYZX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * Z * X) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX(T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y).
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2(T const &angle)
Creates a 2D 2 * 2 rotation matrix from an euler angle.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).
GLM_FUNC_DECL mat< 3, 3, T, defaultp > orientate3(T const &angle)
Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ(T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ(T const &angleZ, T const &angularVelocityZ)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY(T const &angleY, T const &angularVelocityY)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis.
GLM_FUNC_DISCARD_DECL void extractEulerAngleXZY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Z * Y) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY(T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
GLM_FUNC_DISCARD_DECL void extractEulerAngleXYZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Y * Z) Euler angles from the rotation matrix M.
GLM_FUNC_DISCARD_DECL void extractEulerAngleXYX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Y * X) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z).
GLM_FUNC_DISCARD_DECL void extractEulerAngleZYZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * Y * Z) Euler angles from the rotation matrix M.
GLM_FUNC_DISCARD_DECL void extractEulerAngleZXY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * X * Y) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
GLM_FUNC_DISCARD_DECL void extractEulerAngleYXY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * X * Y) Euler angles from the rotation matrix M.
GLM_FUNC_DISCARD_DECL void extractEulerAngleZYX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * Y * X) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4(vec< 3, T, Q > const &angles)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
GLM_FUNC_DISCARD_DECL void extractEulerAngleXZX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Z * X) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX(T const &angleX, T const &angularVelocityX)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X).
GLM_FUNC_DISCARD_DECL void extractEulerAngleZXZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * X * Z) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y).
GLM_FUNC_DISCARD_DECL void extractEulerAngleYXZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * X * Z) Euler angles from the rotation matrix M.
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX(T const &angle, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).