0.9.8
matrix_transform.hpp
Go to the documentation of this file.
1 
21 #pragma once
22 
23 // Dependencies
24 #include "../mat4x4.hpp"
25 #include "../vec2.hpp"
26 #include "../vec3.hpp"
27 #include "../vec4.hpp"
28 #include "../gtc/constants.hpp"
29 
30 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
31 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
32 #endif
33 
34 namespace glm
35 {
38 
57  template <typename T, precision P>
58  GLM_FUNC_DECL tmat4x4<T, P> translate(
59  tmat4x4<T, P> const & m,
60  tvec3<T, P> const & v);
61 
71  template <typename T, precision P>
72  GLM_FUNC_DECL tmat4x4<T, P> rotate(
73  tmat4x4<T, P> const & m,
74  T angle,
75  tvec3<T, P> const & axis);
76 
85  template <typename T, precision P>
86  GLM_FUNC_DECL tmat4x4<T, P> scale(
87  tmat4x4<T, P> const & m,
88  tvec3<T, P> const & v);
89 
101  template <typename T>
102  GLM_FUNC_DECL tmat4x4<T, defaultp> ortho(
103  T left,
104  T right,
105  T bottom,
106  T top,
107  T zNear,
108  T zFar);
109 
121  template <typename T>
122  GLM_FUNC_DECL tmat4x4<T, defaultp> orthoLH(
123  T left,
124  T right,
125  T bottom,
126  T top,
127  T zNear,
128  T zFar);
129 
141  template <typename T>
142  GLM_FUNC_DECL tmat4x4<T, defaultp> orthoRH(
143  T left,
144  T right,
145  T bottom,
146  T top,
147  T zNear,
148  T zFar);
149 
159  template <typename T>
160  GLM_FUNC_DECL tmat4x4<T, defaultp> ortho(
161  T left,
162  T right,
163  T bottom,
164  T top);
165 
176  template <typename T>
177  GLM_FUNC_DECL tmat4x4<T, defaultp> frustum(
178  T left,
179  T right,
180  T bottom,
181  T top,
182  T near,
183  T far);
184 
195  template <typename T>
196  GLM_FUNC_DECL tmat4x4<T, defaultp> frustumLH(
197  T left,
198  T right,
199  T bottom,
200  T top,
201  T near,
202  T far);
203 
214  template <typename T>
215  GLM_FUNC_DECL tmat4x4<T, defaultp> frustumRH(
216  T left,
217  T right,
218  T bottom,
219  T top,
220  T near,
221  T far);
222 
231  template <typename T>
232  GLM_FUNC_DECL tmat4x4<T, defaultp> perspective(
233  T fovy,
234  T aspect,
235  T near,
236  T far);
237 
246  template <typename T>
247  GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveRH(
248  T fovy,
249  T aspect,
250  T near,
251  T far);
252 
261  template <typename T>
262  GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveLH(
263  T fovy,
264  T aspect,
265  T near,
266  T far);
267 
277  template <typename T>
278  GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFov(
279  T fov,
280  T width,
281  T height,
282  T near,
283  T far);
284 
294  template <typename T>
295  GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFovRH(
296  T fov,
297  T width,
298  T height,
299  T near,
300  T far);
301 
311  template <typename T>
312  GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFovLH(
313  T fov,
314  T width,
315  T height,
316  T near,
317  T far);
318 
326  template <typename T>
327  GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspective(
328  T fovy, T aspect, T near);
329 
337  template <typename T>
338  GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspectiveLH(
339  T fovy, T aspect, T near);
340 
348  template <typename T>
349  GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspectiveRH(
350  T fovy, T aspect, T near);
351 
359  template <typename T>
360  GLM_FUNC_DECL tmat4x4<T, defaultp> tweakedInfinitePerspective(
361  T fovy, T aspect, T near);
362 
371  template <typename T>
372  GLM_FUNC_DECL tmat4x4<T, defaultp> tweakedInfinitePerspective(
373  T fovy, T aspect, T near, T ep);
374 
385  template <typename T, typename U, precision P>
386  GLM_FUNC_DECL tvec3<T, P> project(
387  tvec3<T, P> const & obj,
388  tmat4x4<T, P> const & model,
389  tmat4x4<T, P> const & proj,
390  tvec4<U, P> const & viewport);
391 
402  template <typename T, typename U, precision P>
403  GLM_FUNC_DECL tvec3<T, P> unProject(
404  tvec3<T, P> const & win,
405  tmat4x4<T, P> const & model,
406  tmat4x4<T, P> const & proj,
407  tvec4<U, P> const & viewport);
408 
417  template <typename T, precision P, typename U>
418  GLM_FUNC_DECL tmat4x4<T, P> pickMatrix(
419  tvec2<T, P> const & center,
420  tvec2<T, P> const & delta,
421  tvec4<U, P> const & viewport);
422 
430  template <typename T, precision P>
431  GLM_FUNC_DECL tmat4x4<T, P> lookAt(
432  tvec3<T, P> const & eye,
433  tvec3<T, P> const & center,
434  tvec3<T, P> const & up);
435 
443  template <typename T, precision P>
444  GLM_FUNC_DECL tmat4x4<T, P> lookAtRH(
445  tvec3<T, P> const & eye,
446  tvec3<T, P> const & center,
447  tvec3<T, P> const & up);
448 
456  template <typename T, precision P>
457  GLM_FUNC_DECL tmat4x4<T, P> lookAtLH(
458  tvec3<T, P> const & eye,
459  tvec3<T, P> const & center,
460  tvec3<T, P> const & up);
461 
463 }//namespace glm
464 
465 #include "matrix_transform.inl"
GLM_FUNC_DECL tmat4x4< 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...
GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
GLM_FUNC_DECL tmat4x4< T, P > lookAtLH(tvec3< T, P > const &eye, tvec3< T, P > const &center, tvec3< T, P > const &up)
Build a left handed look at view matrix.
GLM_FUNC_DECL tmat4x4< T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix with default handedness.
GLM_FUNC_DECL tmat4x4< 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...
GLM_FUNC_DECL tmat4x4< T, P > lookAt(tvec3< T, P > const &eye, tvec3< T, P > const &center, tvec3< T, P > const &up)
Build a look at view matrix based on the default handedness.
GLM_FUNC_DECL tmat4x4< T, P > rotate(tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
GLM_FUNC_DECL tvec3< T, P > project(tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
GLM_FUNC_DECL tmat4x4< 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: _noise.hpp:11
GLM_FUNC_DECL tmat4x4< T, P > lookAtRH(tvec3< T, P > const &eye, tvec3< T, P > const &center, tvec3< T, P > const &up)
Build a right handed look at view matrix.
GLM_FUNC_DECL tmat4x4< 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.
GLM_FUNC_DECL tmat4x4< 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.
GLM_FUNC_DECL tmat4x4< T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
GLM_FUNC_DECL tmat4x4< 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-handedness.
GLM_FUNC_DECL tmat4x4< 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-handedness.
GLM_FUNC_DECL tmat4x4< T, P > translate(tmat4x4< T, P > const &m, tvec3< T, P > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)
Returns the q rotation axis.
GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
GLM_FUNC_DECL tmat4x4< 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.
GLM_FUNC_DECL tmat4x4< 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...
GLM_FUNC_DECL T angle(tquat< T, P > const &x)
Returns the quaternion rotation angle.
GLM_FUNC_DECL tmat4x4< T, defaultp > frustumRH(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
GLM_FUNC_DECL tvec3< T, P > unProject(tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveRH(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
GLM_FUNC_DECL tmat4x4< T, P > pickMatrix(tvec2< T, P > const &center, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)
Define a picking region.
GLM_FUNC_DECL tmat4x4< T, defaultp > frustumLH(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveLH(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
GLM_FUNC_DECL tmat4x4< T, defaultp > ortho(T left, T right, T bottom, T top)
Creates a matrix for projecting two-dimensional coordinates onto the screen.