FlukyEngine
matrix_clip_space.hpp
Go to the documentation of this file.
1 
20 #pragma once
21 
22 // Dependencies
23 #include "../ext/scalar_constants.hpp"
24 #include "../geometric.hpp"
25 #include "../trigonometric.hpp"
26 
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
28 # pragma message("GLM: GLM_EXT_matrix_clip_space extension included")
29 #endif
30 
31 namespace glm
32 {
35 
42  template<typename T>
43  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
44  T left, T right, T bottom, T top);
45 
52  template<typename T>
53  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH_ZO(
54  T left, T right, T bottom, T top, T zNear, T zFar);
55 
62  template<typename T>
63  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH_NO(
64  T left, T right, T bottom, T top, T zNear, T zFar);
65 
72  template<typename T>
73  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH_ZO(
74  T left, T right, T bottom, T top, T zNear, T zFar);
75 
82  template<typename T>
83  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH_NO(
84  T left, T right, T bottom, T top, T zNear, T zFar);
85 
92  template<typename T>
93  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoZO(
94  T left, T right, T bottom, T top, T zNear, T zFar);
95 
102  template<typename T>
103  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoNO(
104  T left, T right, T bottom, T top, T zNear, T zFar);
105 
113  template<typename T>
114  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH(
115  T left, T right, T bottom, T top, T zNear, T zFar);
116 
124  template<typename T>
125  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH(
126  T left, T right, T bottom, T top, T zNear, T zFar);
127 
135  template<typename T>
136  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
137  T left, T right, T bottom, T top, T zNear, T zFar);
138 
143  template<typename T>
144  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH_ZO(
145  T left, T right, T bottom, T top, T near, T far);
146 
151  template<typename T>
152  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH_NO(
153  T left, T right, T bottom, T top, T near, T far);
154 
159  template<typename T>
160  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH_ZO(
161  T left, T right, T bottom, T top, T near, T far);
162 
167  template<typename T>
168  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH_NO(
169  T left, T right, T bottom, T top, T near, T far);
170 
175  template<typename T>
176  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumZO(
177  T left, T right, T bottom, T top, T near, T far);
178 
183  template<typename T>
184  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumNO(
185  T left, T right, T bottom, T top, T near, T far);
186 
192  template<typename T>
193  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH(
194  T left, T right, T bottom, T top, T near, T far);
195 
201  template<typename T>
202  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH(
203  T left, T right, T bottom, T top, T near, T far);
204 
210  template<typename T>
211  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustum(
212  T left, T right, T bottom, T top, T near, T far);
213 
214 
224  template<typename T>
225  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH_ZO(
226  T fovy, T aspect, T near, T far);
227 
237  template<typename T>
238  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH_NO(
239  T fovy, T aspect, T near, T far);
240 
250  template<typename T>
251  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH_ZO(
252  T fovy, T aspect, T near, T far);
253 
263  template<typename T>
264  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH_NO(
265  T fovy, T aspect, T near, T far);
266 
276  template<typename T>
277  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveZO(
278  T fovy, T aspect, T near, T far);
279 
289  template<typename T>
290  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveNO(
291  T fovy, T aspect, T near, T far);
292 
303  template<typename T>
304  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH(
305  T fovy, T aspect, T near, T far);
306 
317  template<typename T>
318  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH(
319  T fovy, T aspect, T near, T far);
320 
331  template<typename T>
332  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspective(
333  T fovy, T aspect, T near, T far);
334 
345  template<typename T>
346  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH_ZO(
347  T fov, T width, T height, T near, T far);
348 
359  template<typename T>
360  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH_NO(
361  T fov, T width, T height, T near, T far);
362 
373  template<typename T>
374  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH_ZO(
375  T fov, T width, T height, T near, T far);
376 
387  template<typename T>
388  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH_NO(
389  T fov, T width, T height, T near, T far);
390 
401  template<typename T>
402  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovZO(
403  T fov, T width, T height, T near, T far);
404 
415  template<typename T>
416  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovNO(
417  T fov, T width, T height, T near, T far);
418 
430  template<typename T>
431  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH(
432  T fov, T width, T height, T near, T far);
433 
445  template<typename T>
446  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH(
447  T fov, T width, T height, T near, T far);
448 
459  template<typename T>
460  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFov(
461  T fov, T width, T height, T near, T far);
462 
470  template<typename T>
471  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveLH(
472  T fovy, T aspect, T near);
473 
481  template<typename T>
482  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveRH(
483  T fovy, T aspect, T near);
484 
492  template<typename T>
493  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspective(
494  T fovy, T aspect, T near);
495 
503  template<typename T>
504  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
505  T fovy, T aspect, T near);
506 
515  template<typename T>
516  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
517  T fovy, T aspect, T near, T ep);
518 
520 }//namespace glm
521 
522 #include "matrix_clip_space.inl"
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...
Definition: matrix_clip_space.inl:432
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...
Definition: matrix_clip_space.inl:442
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH(T fovy, T aspect, T near)
Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite...
Definition: matrix_clip_space.inl:504
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FO...
Definition: matrix_clip_space.inl:78
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view and the default handedness and defaul...
Definition: matrix_clip_space.inl:472
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_L...
Definition: matrix_clip_space.inl:297
Core features
Definition: common.hpp:20
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using right-handed coordinates...
Definition: matrix_clip_space.inl:372
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...
Definition: matrix_clip_space.inl:522
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
Definition: matrix_clip_space.inl:265
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum based on the default handedness and default ...
Definition: matrix_clip_space.inl:338
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
Definition: matrix_clip_space.inl:16
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates...
Definition: matrix_clip_space.inl:412
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix with default handedness, using the default handedness and default near and f...
Definition: matrix_clip_space.inl:219
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using right-handed coordinates...
Definition: matrix_clip_space.inl:352
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
Definition: matrix_clip_space.inl:88
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH(T fovy, T aspect, T near)
Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite...
Definition: matrix_clip_space.inl:486
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
Definition: matrix_clip_space.inl:137
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
Definition: matrix_clip_space.inl:165
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
Definition: matrix_clip_space.inl:99
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
Definition: matrix_clip_space.inl:68
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
Definition: matrix_clip_space.inl:151
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_L...
Definition: matrix_clip_space.inl:307
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...
Definition: matrix_clip_space.inl:189
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...
Definition: matrix_clip_space.inl:179
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
Definition: matrix_clip_space.inl:123
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
Definition: matrix_clip_space.inl:328
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
Definition: matrix_clip_space.inl:42
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho(T left, T right, T bottom, T top)
Creates a matrix for projecting two-dimensional coordinates onto the screen.
Definition: matrix_clip_space.inl:4
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH(T fov, T width, T height, T near, T far)
Builds a right handed perspective projection matrix based on a field of view.
Definition: matrix_clip_space.inl:462
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
Definition: matrix_clip_space.inl:317
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
Definition: matrix_clip_space.inl:249
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.
Definition: matrix_clip_space.inl:29
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
Definition: matrix_clip_space.inl:209
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH(T fov, T width, T height, T near, T far)
Builds a left handed perspective projection matrix based on a field of view.
Definition: matrix_clip_space.inl:452
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
Definition: matrix_clip_space.inl:551
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates...
Definition: matrix_clip_space.inl:392
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
Definition: matrix_clip_space.inl:281
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
Definition: matrix_clip_space.inl:233
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
Definition: matrix_clip_space.inl:199
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
Definition: matrix_clip_space.inl:55