Defines functions that generate common transformation matrices. More...
Functions | |
template<typename T > | |
detail::tmat4x4< T > | frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far) |
template<typename T > | |
detail::tmat4x4< T > | infinitePerspective (T fovy, T aspect, T near) |
template<typename T > | |
detail::tmat4x4< T > | lookAt (detail::tvec3< T > const &eye, detail::tvec3< T > const ¢er, detail::tvec3< T > const &up) |
template<typename T > | |
detail::tmat4x4< T > | ortho (T const &left, T const &right, T const &bottom, T const &top) |
template<typename T > | |
detail::tmat4x4< T > | ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar) |
template<typename T > | |
detail::tmat4x4< T > | perspective (T const &fovy, T const &aspect, T const &near, T const &far) |
template<typename valType > | |
detail::tmat4x4< valType > | perspectiveFov (valType const &fov, valType const &width, valType const &height, valType const &near, valType const &far) |
template<typename T , typename U > | |
detail::tmat4x4< T > | pickMatrix (detail::tvec2< T > const ¢er, detail::tvec2< T > const &delta, detail::tvec4< U > const &viewport) |
template<typename T , typename U > | |
detail::tvec3< T > | project (detail::tvec3< T > const &obj, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport) |
template<typename T > | |
detail::tmat4x4< T > | rotate (detail::tmat4x4< T > const &m, T const &angle, detail::tvec3< T > const &axis) |
template<typename T > | |
detail::tmat4x4< T > | scale (detail::tmat4x4< T > const &m, detail::tvec3< T > const &v) |
template<typename T > | |
detail::tmat4x4< T > | translate (detail::tmat4x4< T > const &m, detail::tvec3< T > const &v) |
template<typename T > | |
detail::tmat4x4< T > | tweakedInfinitePerspective (T fovy, T aspect, T near) |
template<typename T , typename U > | |
detail::tvec3< T > | unProject (detail::tvec3< T > const &win, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > 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.
detail::tmat4x4<T> 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. |
detail::tmat4x4<T> glm::infinitePerspective | ( | T | fovy, |
T | aspect, | ||
T | near | ||
) |
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
fovy | |
aspect | |
near |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
detail::tmat4x4<T> glm::lookAt | ( | detail::tvec3< T > const & | eye, |
detail::tvec3< T > const & | center, | ||
detail::tvec3< T > 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) |
detail::tmat4x4<T> 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. |
detail::tmat4x4<T> 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. |
detail::tmat4x4<T> glm::perspective | ( | T const & | fovy, |
T const & | aspect, | ||
T const & | near, | ||
T const & | far | ||
) |
Creates a matrix for a symetric perspective-view frustum.
fovy | |
aspect | |
near | |
far |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
detail::tmat4x4<valType> glm::perspectiveFov | ( | valType const & | fov, |
valType const & | width, | ||
valType const & | height, | ||
valType const & | near, | ||
valType const & | far | ||
) |
Builds a perspective projection matrix based on a field of view.
fov | |
width | |
height | |
near | |
far |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
detail::tmat4x4<T> glm::pickMatrix | ( | detail::tvec2< T > const & | center, |
detail::tvec2< T > const & | delta, | ||
detail::tvec4< U > 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. |
detail::tvec3<T> glm::project | ( | detail::tvec3< T > const & | obj, |
detail::tmat4x4< T > const & | model, | ||
detail::tmat4x4< T > const & | proj, | ||
detail::tvec4< U > 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. |
detail::tmat4x4<T> glm::rotate | ( | detail::tmat4x4< T > const & | m, |
T const & | angle, | ||
detail::tvec3< T > const & | axis | ||
) |
Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
m | Input matrix multiplied by this rotation matrix. |
angle | Rotation angle expressed in degrees. |
axis | Rotation axis, recommanded to be normalized. |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
detail::tmat4x4<T> glm::scale | ( | detail::tmat4x4< T > const & | m, |
detail::tvec3< T > 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. |
detail::tmat4x4<T> glm::translate | ( | detail::tmat4x4< T > const & | m, |
detail::tvec3< T > 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> ... glm::mat4 m = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f)); // 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 |
detail::tmat4x4<T> 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 | |
aspect | |
near |
T | Value type used to build the matrix. Currently supported: half (not recommanded), float or double. |
detail::tvec3<T> glm::unProject | ( | detail::tvec3< T > const & | win, |
detail::tmat4x4< T > const & | model, | ||
detail::tmat4x4< T > const & | proj, | ||
detail::tvec4< U > 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. |