0.9.9 API documenation
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 
58  template<typename T, qualifier Q>
59  GLM_FUNC_DECL mat<4, 4, T, Q> translate(
60  mat<4, 4, T, Q> const& m,
61  vec<3, T, Q> const& v);
62 
73  template<typename T, qualifier Q>
74  GLM_FUNC_DECL mat<4, 4, T, Q> rotate(
75  mat<4, 4, T, Q> const& m,
76  T angle,
77  vec<3, T, Q> const& axis);
78 
88  template<typename T, qualifier Q>
89  GLM_FUNC_DECL mat<4, 4, T, Q> scale(
90  mat<4, 4, T, Q> const& m,
91  vec<3, T, Q> const& v);
92 
99  template<typename T>
100  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
101  T left,
102  T right,
103  T bottom,
104  T top,
105  T zNear,
106  T zFar);
107 
113  template<typename T>
114  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH(
115  T left,
116  T right,
117  T bottom,
118  T top,
119  T zNear,
120  T zFar);
121 
127  template<typename T>
128  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH(
129  T left,
130  T right,
131  T bottom,
132  T top,
133  T zNear,
134  T zFar);
135 
142  template<typename T>
143  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
144  T left,
145  T right,
146  T bottom,
147  T top);
148 
154  template<typename T>
155  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustum(
156  T left,
157  T right,
158  T bottom,
159  T top,
160  T near,
161  T far);
162 
167  template<typename T>
168  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH(
169  T left,
170  T right,
171  T bottom,
172  T top,
173  T near,
174  T far);
175 
180  template<typename T>
181  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH(
182  T left,
183  T right,
184  T bottom,
185  T top,
186  T near,
187  T far);
188 
198  template<typename T>
199  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspective(
200  T fovy,
201  T aspect,
202  T near,
203  T far);
204 
213  template<typename T>
214  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH(
215  T fovy,
216  T aspect,
217  T near,
218  T far);
219 
228  template<typename T>
229  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH(
230  T fovy,
231  T aspect,
232  T near,
233  T far);
234 
244  template<typename T>
245  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFov(
246  T fov,
247  T width,
248  T height,
249  T near,
250  T far);
251 
261  template<typename T>
262  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH(
263  T fov,
264  T width,
265  T height,
266  T near,
267  T far);
268 
278  template<typename T>
279  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH(
280  T fov,
281  T width,
282  T height,
283  T near,
284  T far);
285 
293  template<typename T>
294  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspective(
295  T fovy, T aspect, T near);
296 
304  template<typename T>
305  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveLH(
306  T fovy, T aspect, T near);
307 
315  template<typename T>
316  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveRH(
317  T fovy, T aspect, T near);
318 
326  template<typename T>
327  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
328  T fovy, T aspect, T near);
329 
338  template<typename T>
339  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
340  T fovy, T aspect, T near, T ep);
341 
353  template<typename T, typename U, qualifier Q>
354  GLM_FUNC_DECL vec<3, T, Q> project(
355  vec<3, T, Q> const& obj,
356  mat<4, 4, T, Q> const& model,
357  mat<4, 4, T, Q> const& proj,
358  vec<4, U, Q> const& viewport);
359 
371  template<typename T, typename U, qualifier Q>
372  GLM_FUNC_DECL vec<3, T, Q> unProject(
373  vec<3, T, Q> const& win,
374  mat<4, 4, T, Q> const& model,
375  mat<4, 4, T, Q> const& proj,
376  vec<4, U, Q> const& viewport);
377 
387  template<typename T, qualifier Q, typename U>
388  GLM_FUNC_DECL mat<4, 4, T, Q> pickMatrix(
389  vec<2, T, Q> const& center,
390  vec<2, T, Q> const& delta,
391  vec<4, U, Q> const& viewport);
392 
401  template<typename T, qualifier Q>
402  GLM_FUNC_DECL mat<4, 4, T, Q> lookAt(
403  vec<3, T, Q> const& eye,
404  vec<3, T, Q> const& center,
405  vec<3, T, Q> const& up);
406 
414  template<typename T, qualifier Q>
415  GLM_FUNC_DECL mat<4, 4, T, Q> lookAtRH(
416  vec<3, T, Q> const& eye,
417  vec<3, T, Q> const& center,
418  vec<3, T, Q> const& up);
419 
427  template<typename T, qualifier Q>
428  GLM_FUNC_DECL mat<4, 4, T, Q> lookAtLH(
429  vec<3, T, Q> const& eye,
430  vec<3, T, Q> const& center,
431  vec<3, T, Q> const& up);
432 
434 }//namespace glm
435 
436 #include "matrix_transform.inl"
GLM_FUNC_DECL vec< 3, T, Q > unProject(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
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.
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...
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
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...
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix(vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
Define a picking region.
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.
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.
Definition: common.hpp:20
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.
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
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...
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a right handed look at view matrix.
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-handedness.
GLM_FUNC_DECL vec< 3, T, Q > axis(tquat< T, Q > const &x)
Returns the q rotation axis.
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.
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.
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a left handed look at view matrix.
GLM_FUNC_DECL T angle(tquat< T, Q > const &x)
Returns the quaternion rotation angle.
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.
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.
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a look at view matrix based on the default handedness.
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-handedness.
GLM_FUNC_DECL genType proj(genType const &x, genType const &Normal)
Projects x on Normal.
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.
GLM_FUNC_DECL vec< 3, T, Q > project(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
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.
GLM_FUNC_DECL mat< 4, 4, T, Q > translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
GLM_FUNC_DECL mat< 4, 4, 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...