Functions
GLM_GTC_matrix_transform: Matrix transform functions
GTC Extensions (Stable)

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 &center, 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 &center, 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)

Detailed Description

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.


Function Documentation

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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
detail::tmat4x4<T> glm::infinitePerspective ( fovy,
aspect,
zNear 
)

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .

See also:
GLM_GTC_matrix_transform: Matrix transform functions
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal)
Parameters:
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized 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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
- glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
detail::tmat4x4<T> glm::pickMatrix ( detail::tvec2< T > const &  center,
detail::tvec2< T > const &  delta,
detail::tvec4< U > const &  viewport 
)

Define a picking region.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
GLM_GTX_transform: Extented transformation matrices
- rotate(T angle, T x, T y, T z)
- rotate(detail::tmat4x4<T> const & m, T angle, T x, T y, T z)
- rotate(T angle, detail::tvec3<T> const & v)
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
GLM_GTX_transform: Extented transformation matrices
- scale(T x, T y, T z) scale(T const & x, T const & y, T const & z)
- scale(detail::tmat4x4<T> const & m, T x, T y, T z)
- scale(detail::tvec3<T> const & v)
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.

Parameters:
mMatrix multiplied by this translation matrix.
vCoordinates of a translation vector.
Template Parameters:
TValue 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
See also:
GLM_GTC_matrix_transform: Matrix transform functions
GLM_GTX_transform: Extented transformation matrices
- translate(T x, T y, T z)
- translate(detail::tmat4x4<T> const & m, T x, T y, T z)
- translate(detail::tvec3<T> const & v)
detail::tmat4x4<T> glm::tweakedInfinitePerspective ( fovy,
aspect,
zNear 
)

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

See also:
GLM_GTC_matrix_transform: Matrix transform functions
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.

See also:
GLM_GTC_matrix_transform: Matrix transform functions