![]() |
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 &nearVal, T const &farVal) |
template<typename T > | |
detail::tmat4x4< T > | infinitePerspective (T fovy, T aspect, T zNear) |
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 &zNear, T const &zFar) |
template<typename valType > | |
detail::tmat4x4< valType > | perspectiveFov (valType const &fov, valType const &width, valType const &height, valType const &zNear, valType const &zFar) |
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 &v) |
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 zNear) |
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 & | nearVal, | ||
T const & | farVal | ||
) |
Creates a frustum matrix.
detail::tmat4x4<T> glm::infinitePerspective | ( | T | fovy, |
T | aspect, | ||
T | zNear | ||
) |
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
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.
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.
detail::tmat4x4<T> glm::perspective | ( | T const & | fovy, |
T const & | aspect, | ||
T const & | zNear, | ||
T const & | zFar | ||
) |
Creates a matrix for a symetric perspective-view frustum.
detail::tmat4x4<valType> glm::perspectiveFov | ( | valType const & | fov, |
valType const & | width, | ||
valType const & | height, | ||
valType const & | zNear, | ||
valType const & | zFar | ||
) |
Builds a perspective projection matrix based on a field of view.
detail::tmat4x4<T> glm::pickMatrix | ( | detail::tvec2< T > const & | center, |
detail::tvec2< T > const & | delta, | ||
detail::tvec4< U > const & | viewport | ||
) |
Define a picking region.
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.
detail::tmat4x4<T> glm::rotate | ( | detail::tmat4x4< T > const & | m, |
T const & | angle, | ||
detail::tvec3< T > const & | v | ||
) |
Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
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.
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 | Matrix multiplied by this translation matrix. |
v | Coordinates of a translation vector. |
T | Value type used to build the translation matrix. Currently either 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 | zNear | ||
) |
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
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.