Defines functions that generate common transformation matrices. More...
Functions | |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::infinitePerspective (T fovy, T aspect, T near) |
template<typename T , precision P> | |
GLM_FUNC_DECL detail::tmat4x4< T, P > | glm::lookAt (detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const ¢er, detail::tvec3< T, P > const &up) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::ortho (T const &left, T const &right, T const &bottom, T const &top) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::perspective (T const &fovy, T const &aspect, T const &near, T const &far) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::perspectiveFov (T const &fov, T const &width, T const &height, T const &near, T const &far) |
template<typename T , precision P, typename U > | |
GLM_FUNC_DECL detail::tmat4x4< T, P > | glm::pickMatrix (detail::tvec2< T, P > const ¢er, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport) |
template<typename T , typename U , precision P> | |
GLM_FUNC_DECL detail::tvec3< T, P > | glm::project (detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport) |
template<typename T , precision P> | |
GLM_FUNC_DECL detail::tmat4x4< T, P > | glm::rotate (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis) |
template<typename T , precision P> | |
GLM_FUNC_DECL detail::tmat4x4< T, P > | glm::scale (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v) |
template<typename T , precision P> | |
GLM_FUNC_DECL detail::tmat4x4< T, P > | glm::translate (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::tweakedInfinitePerspective (T fovy, T aspect, T near) |
template<typename T > | |
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > | glm::tweakedInfinitePerspective (T fovy, T aspect, T near, T ep) |
template<typename T , typename U , precision P> | |
GLM_FUNC_DECL detail::tvec3< T, P > | glm::unProject (detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport) |
Defines functions that generate common transformation matrices.
The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.
<glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::frustum | ( | T const & | left, |
T const & | right, | ||
T const & | bottom, | ||
T const & | top, | ||
T const & | near, | ||
T const & | far | ||
) |
Creates a frustum matrix.
left | |
right | |
bottom | |
top | |
near | |
far |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::infinitePerspective | ( | T | fovy, |
T | aspect, | ||
T | near | ||
) |
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
fovy | Expressed in radians. |
aspect | |
near |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::lookAt | ( | detail::tvec3< T, P > const & | eye, |
detail::tvec3< T, P > const & | center, | ||
detail::tvec3< T, P > const & | up | ||
) |
Build a look at view matrix.
eye | Position of the camera |
center | Position where the camera is looking at |
up | Normalized up vector, how the camera is oriented. Typically (0, 0, 1) |
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::ortho | ( | T const & | left, |
T const & | right, | ||
T const & | bottom, | ||
T const & | top | ||
) |
Creates a matrix for projecting two-dimensional coordinates onto the screen.
left | |
right | |
bottom | |
top |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::ortho | ( | T const & | left, |
T const & | right, | ||
T const & | bottom, | ||
T const & | top, | ||
T const & | zNear, | ||
T const & | zFar | ||
) |
Creates a matrix for an orthographic parallel viewing volume.
left | |
right | |
bottom | |
top | |
zNear | |
zFar |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::perspective | ( | T const & | fovy, |
T const & | aspect, | ||
T const & | near, | ||
T const & | far | ||
) |
Creates a matrix for a symetric perspective-view frustum.
fovy | Expressed in radians. |
aspect | |
near | |
far |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::perspectiveFov | ( | T const & | fov, |
T const & | width, | ||
T const & | height, | ||
T const & | near, | ||
T const & | far | ||
) |
Builds a perspective projection matrix based on a field of view.
fov | Expressed in radians. |
width | |
height | |
near | |
far |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::pickMatrix | ( | detail::tvec2< T, P > const & | center, |
detail::tvec2< T, P > const & | delta, | ||
detail::tvec4< U, P > const & | viewport | ||
) |
Define a picking region
center | |
delta | |
viewport |
T | Native type used for the computation. Currently supported: half (not recommanded), float or double. |
U | Currently supported: Floating-point types and integer types. |
GLM_FUNC_DECL detail::tvec3<T, P> glm::project | ( | detail::tvec3< T, P > const & | obj, |
detail::tmat4x4< T, P > const & | model, | ||
detail::tmat4x4< T, P > const & | proj, | ||
detail::tvec4< U, P > const & | viewport | ||
) |
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
obj | |
model | |
proj | |
viewport |
T | Native type used for the computation. Currently supported: half (not recommanded), float or double. |
U | Currently supported: Floating-point types and integer types. |
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::rotate | ( | detail::tmat4x4< T, P > const & | m, |
T const & | angle, | ||
detail::tvec3< T, P > const & | axis | ||
) |
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
m | Input matrix multiplied by this rotation matrix. |
angle | Rotation angle expressed in radians. |
axis | Rotation axis, recommanded to be normalized. |
T | Value type used to build the matrix. Supported: half, float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::scale | ( | detail::tmat4x4< T, P > const & | m, |
detail::tvec3< T, P > const & | v | ||
) |
Builds a scale 4 * 4 matrix created from 3 scalars.
m | Input matrix multiplied by this scale matrix. |
v | Ratio of scaling for each axis. |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::translate | ( | detail::tmat4x4< T, P > const & | m, |
detail::tvec3< T, P > const & | v | ||
) |
Builds a translation 4 * 4 matrix created from a vector of 3 components.
m | Input matrix multiplied by this translation matrix. |
v | Coordinates of a translation vector. |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. #include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
...
// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f
// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f
// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f
// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
|
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::tweakedInfinitePerspective | ( | T | fovy, |
T | aspect, | ||
T | near | ||
) |
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
fovy | Expressed in radians. |
aspect | |
near |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::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 hardware that doesn't support depth clamping.
fovy | Expressed in radians. |
aspect | |
near |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
GLM_FUNC_DECL detail::tvec3<T, P> glm::unProject | ( | detail::tvec3< T, P > const & | win, |
detail::tmat4x4< T, P > const & | model, | ||
detail::tmat4x4< T, P > const & | proj, | ||
detail::tvec4< U, P > const & | viewport | ||
) |
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
win | |
model | |
proj | |
viewport |
T | Native type used for the computation. Currently supported: half (not recommanded), float or double. |
U | Currently supported: Floating-point types and integer types. |