GLM_GTC_matrix_transform
Recommended extensions

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, using the default handedness and default near and far clip planes definition. 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 > | frustumLH_NO (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 > | frustumLH_ZO (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 > | frustumNO (T left, T right, T bottom, T top, T near, T far)
| Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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 > | frustumRH_NO (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 > | frustumRH_ZO (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 > | frustumZO (T left, T right, T bottom, T top, T near, T far)
| Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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)
| Creates a matrix for projecting two-dimensional coordinates onto the screen. 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 and default near and far clip planes definition. 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-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoLH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoLH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoNO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoRH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoRH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoZO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. 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 and default near and far clip planes definition. 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 and default near and far clip planes definition. 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 > | perspectiveFovLH_NO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovLH_ZO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovNO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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 > | perspectiveFovRH_NO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovRH_ZO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovZO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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 > | perspectiveLH_NO (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 > | perspectiveLH_ZO (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 > | perspectiveNO (T fovy, T aspect, T near, T far)
| Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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 >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveRH_NO (T fovy, T aspect, T near, T far)
| Creates a matrix for a right handed, symetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveRH_ZO (T fovy, T aspect, T near, T far)
| Creates a matrix for a right handed, symetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveZO (T fovy, T aspect, T near, T far)
| Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. 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 using default near and far clip planes definition. More...
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | projectNO (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 , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | projectZO (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 using default near and far clip planes definition. More...
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | unProjectNO (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...
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > | unProjectZO (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 | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform
  glFrustum man page

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

Creates a left handed frustum matrix.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a left handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a left handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a right handed frustum matrix.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a right handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a right handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

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

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspective | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

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

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveLH | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

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

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveRH | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

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

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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

  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)

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

  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)

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

  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)

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 | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top
| ) |  |

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

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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::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 and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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::orthoLH | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

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

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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::orthoLH_NO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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::orthoLH_ZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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::orthoNO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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 | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

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

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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_NO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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_ZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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::orthoZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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 | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Parameters

  fovy | Specifies the field of view angle in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform
  gluPerspective man page

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::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 and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

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

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_NO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_ZO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovNO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

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

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_NO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_ZO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovZO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

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

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_NO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_ZO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveNO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

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

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_NO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_ZO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

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

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveZO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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

  center | Specify the center of a picking region in window coordinates.
  delta | Specify the width and height, respectively, of the picking region in window coordinates.
  viewport | Rendering viewport

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently 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 using default near and far clip planes definition.

To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Parameters

  obj | Specify the object coordinates.
  model | Specifies the current modelview matrix
  proj | Specifies the current projection matrix
  viewport | Specifies the current viewport

Returns
  Return the computed window coordinates.

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently supported: Floating-point types and integer types.

See also
  GLM_GTC_matrix_transform
  gluProject man page

GLM_FUNC_DECL vec<3, T, Q> glm::projectNO | ( | 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.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  obj | Specify the object coordinates.
  model | Specifies the current modelview matrix
  proj | Specifies the current projection matrix
  viewport | Specifies the current viewport

Returns
  Return the computed window coordinates.

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently supported: Floating-point types and integer types.

See also
  GLM_GTC_matrix_transform
  gluProject man page

GLM_FUNC_DECL vec<3, T, Q> glm::projectZO | ( | 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.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  obj | Specify the object coordinates.
  model | Specifies the current modelview matrix
  proj | Specifies the current projection matrix
  viewport | Specifies the current viewport

Returns
  Return the computed window coordinates.

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently 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,
|  | T | angle,
|  | vec< 3, T, Q > const & | axis
| ) |  |

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

Parameters

  m | Input matrix multiplied by this rotation matrix.
  angle | Rotation angle expressed in radians.
  axis | Rotation axis, recommended to be normalized.

Template Parameters

  T | Value 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

  m | Input matrix multiplied by this scale matrix.
  v | Ratio of scaling for each axis.

Template Parameters

  T | Value 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

  m | Input matrix multiplied by this translation matrix.
  v | Coordinates of a translation vector.

Template Parameters

  T

  Value type used to build the matrix. Currently supported: half (not recommended), 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
  - 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 | ( | 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.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), float or double.

See also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL mat<4, 4, 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.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies 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).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  ep | Epsilon

Template Parameters

  T | Value type used to build the matrix. Currently supported: half (not recommended), 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 using default near and far clip planes definition.

To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Parameters

  win | Specify the window coordinates to be mapped.
  model | Specifies the modelview matrix
  proj | Specifies the projection matrix
  viewport | Specifies the viewport

Returns
  Returns the computed object coordinates.

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently supported: Floating-point types and integer types.

See also
  GLM_GTC_matrix_transform
  gluUnProject man page

GLM_FUNC_DECL vec<3, T, Q> glm::unProjectNO | ( | 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.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  win | Specify the window coordinates to be mapped.
  model | Specifies the modelview matrix
  proj | Specifies the projection matrix
  viewport | Specifies the viewport

Returns
  Returns the computed object coordinates.

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently supported: Floating-point types and integer types.

See also
  GLM_GTC_matrix_transform
  gluUnProject man page

GLM_FUNC_DECL vec<3, T, Q> glm::unProjectZO | ( | 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.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  win | Specify the window coordinates to be mapped.
  model | Specifies the modelview matrix
  proj | Specifies the projection matrix
  viewport | Specifies the viewport

Returns
  Returns the computed object coordinates.

Template Parameters

  T | Native type used for the computation. Currently supported: half (not recommended), float or double.
  U | Currently supported: Floating-point types and integer types.

See also
  GLM_GTC_matrix_transform
  gluUnProject man page