0.9.9 API documenation
Functions
GLM_GTC_matrix_transform

Include <glm/gtc/matrix_transform.hpp> to use the features of this extension. More...

Functions

template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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 handedness. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T , qualifier Q>
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. More...
 
template<typename T , qualifier Q>
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. More...
 
template<typename T , qualifier Q>
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. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using the default handedness. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T , qualifier Q, typename U >
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. More...
 
template<typename T , typename U , qualifier Q>
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. More...
 
template<typename T , qualifier Q>
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. More...
 
template<typename T , qualifier Q>
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. More...
 
template<typename T , qualifier Q>
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. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > 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. More...
 
template<typename T >
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 hardware that doesn't support depth clamping. More...
 
template<typename T , typename U , qualifier Q>
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. More...
 

Detailed Description

Include <glm/gtc/matrix_transform.hpp> to use the features of this extension.

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.

Function Documentation

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustum ( left,
right,
bottom,
top,
near,
far 
)

Creates a frustum matrix with default handedness.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
glFrustum man page
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH ( left,
right,
bottom,
top,
near,
far 
)

Creates a left handed frustum matrix.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH ( left,
right,
bottom,
top,
near,
far 
)

Creates a right handed frustum matrix.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspective ( fovy,
aspect,
near 
)

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

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveLH ( fovy,
aspect,
near 
)

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

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveRH ( fovy,
aspect,
near 
)

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

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, Q> glm::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.

Parameters
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
See also
GLM_GTC_matrix_transform
- 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)
gluLookAt man page
GLM_FUNC_DECL mat<4, 4, T, Q> glm::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.

Parameters
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
See also
GLM_GTC_matrix_transform
- 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)
GLM_FUNC_DECL mat<4, 4, T, Q> glm::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.

Parameters
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
See also
GLM_GTC_matrix_transform
- 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)
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho ( left,
right,
bottom,
top,
zNear,
zFar 
)

Creates a matrix for an orthographic parallel viewing volume, using the default handedness.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
glOrtho man page
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho ( left,
right,
bottom,
top 
)

Creates a matrix for projecting two-dimensional coordinates onto the screen.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top, T const& zNear, T const& zFar)
gluOrtho2D man page
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH ( left,
right,
bottom,
top,
zNear,
zFar 
)

Creates a matrix for an orthographic parallel viewing volume, using left-handedness.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH ( left,
right,
bottom,
top,
zNear,
zFar 
)

Creates a matrix for an orthographic parallel viewing volume, using right-handedness.

Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspective ( fovy,
aspect,
near,
far 
)

Creates a matrix for a symetric perspective-view frustum based on the default handedness.

Parameters
fovySpecifies the field of view angle in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
gluPerspective man page
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFov ( fov,
width,
height,
near,
far 
)

Builds a perspective projection matrix based on a field of view and the default handedness.

Parameters
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH ( fov,
width,
height,
near,
far 
)

Builds a left handed perspective projection matrix based on a field of view.

Parameters
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH ( fov,
width,
height,
near,
far 
)

Builds a right handed perspective projection matrix based on a field of view.

Parameters
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH ( fovy,
aspect,
near,
far 
)

Creates a matrix for a left handed, symetric perspective-view frustum.

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH ( fovy,
aspect,
near,
far 
)

Creates a matrix for a right handed, symetric perspective-view frustum.

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, Q> glm::pickMatrix ( vec< 2, T, Q > const &  center,
vec< 2, T, Q > const &  delta,
vec< 4, U, Q > const &  viewport 
)

Define a picking region.

Parameters
centerSpecify the center of a picking region in window coordinates.
deltaSpecify the width and height, respectively, of the picking region in window coordinates.
viewportRendering viewport
Template Parameters
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
See also
GLM_GTC_matrix_transform
gluPickMatrix man page
GLM_FUNC_DECL vec<3, T, Q> glm::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.

Parameters
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
Returns
Return the computed window coordinates.
Template Parameters
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
See also
GLM_GTC_matrix_transform
gluProject man page
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotate ( mat< 4, 4, T, Q > const &  m,
angle,
vec< 3, T, Q > const &  axis 
)

Builds a rotation 4 * 4 matrix created from an axis vector and an angle.

Parameters
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians.
axisRotation axis, recommended to be normalized.
Template Parameters
TValue type used to build the matrix. Supported: half, float or double.
See also
GLM_GTC_matrix_transform
- rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
- rotate(T angle, vec<3, T, Q> const& v)
glRotate man page
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scale ( mat< 4, 4, T, Q > const &  m,
vec< 3, T, Q > const &  v 
)

Builds a scale 4 * 4 matrix created from 3 scalars.

Parameters
mInput matrix multiplied by this scale matrix.
vRatio of scaling for each axis.
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommended), float or double.
See also
GLM_GTC_matrix_transform
- scale(mat<4, 4, T, Q> const& m, T x, T y, T z)
- scale(vec<3, T, Q> const& v)
glScale man page
GLM_FUNC_DECL mat<4, 4, T, Q> glm::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.

Parameters
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
#include <glm/glm.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
- translate(mat<4, 4, T, Q> const& m, T x, T y, T z)
- translate(vec<3, T, Q> const& v)
glTranslate man page
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective ( fovy,
aspect,
near 
)

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

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective ( fovy,
aspect,
near,
ep 
)

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

Parameters
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
epEpsilon
Template Parameters
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
See also
GLM_GTC_matrix_transform
GLM_FUNC_DECL vec<3, T, Q> glm::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.

Parameters
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
Returns
Returns the computed object coordinates.
Template Parameters
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
See also
GLM_GTC_matrix_transform
gluUnProject man page