GLM: GLM_GTC_matrix_transform

GLM 0.9.5

- Main Page
- Related Pages
- Modules
- Namespaces
- Files

Functions
GLM_GTC_matrix_transform
GTC Extensions (Stable)

## Functions
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | infinitePerspective (T fovy, T aspect, T near)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | lookAt (detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
template<typename T >
GLM_FUNC_DECL detail::tmat4x4 < T, defaultp > | ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
template<typename T >
GLM_FUNC_DECL detail::tmat4x4 < T, defaultp > | ortho (T const &left, T const &right, T const &bottom, T const &top)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | perspective (T const &fovy, T const &aspect, T const &near, T const &far)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | perspectiveFov (T const &fov, T const &width, T const &height, T const &near, T const &far)
template<typename T , precision P, typename U >
GLM_FUNC_DECL detail::tmat4x4 < T, P > | pickMatrix (detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > | project (detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | rotate (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | scale (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | translate (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4 < T, P > | tweakedInfinitePerspective (T fovy, T aspect, T near)
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > | unProject (detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > 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

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::frustum | ( | T const & | left,
|  | T const & | right,
|  | T const & | bottom,
|  | T const & | top,
|  | T const & | near,
|  | T const & | far
| ) |  |

Creates a frustum matrix.

Parameters

  left |
  right |
  bottom |
  top |
  near |
  far |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::infinitePerspective | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

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

Parameters

  fovy | Expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
  aspect |
  near |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::lookAt | ( | detail::tvec3< T, P > const & | eye,
|  | detail::tvec3< T, P > const & | center,
|  | detail::tvec3< T, P > const & | up
| ) |  |

Build a 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 detail::tmat4x4<T, defaultp> 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.

Parameters

  left |
  right |
  bottom |
  top |
  zNear |
  zFar |

Template Parameters

  T | Value 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 detail::tmat4x4<T, defaultp> 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.

Parameters

  left |
  right |
  bottom |
  top |

Template Parameters

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

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::perspective | ( | T const & | fovy,
|  | T const & | aspect,
|  | T const & | near,
|  | T const & | far
| ) |  |

Creates a matrix for a symetric perspective-view frustum.

Parameters

  fovy | Expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
  aspect |
  near |
  far |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::perspectiveFov | ( | T const & | fov,
|  | T const & | width,
|  | T const & | height,
|  | T const & | near,
|  | T const & | far
| ) |  |

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

Parameters

  fov | Expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
  width |
  height |
  near |
  far |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::pickMatrix | ( | detail::tvec2< T, P > const & | center,
|  | detail::tvec2< T, P > const & | delta,
|  | detail::tvec4< U, P > const & | viewport
| ) |  |

Define a picking region.

Parameters

  center |
  delta |
  viewport |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tvec3<T, P> glm::project | ( | detail::tvec3< T, P > const & | obj,
|  | detail::tmat4x4< T, P > const & | model,
|  | detail::tmat4x4< T, P > const & | proj,
|  | detail::tvec4< U, P > const & | viewport
| ) |  |

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

Parameters

  obj |
  model |
  proj |
  viewport |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::rotate | ( | detail::tmat4x4< T, P > const & | m,
|  | T const & | angle,
|  | detail::tvec3< T, P > 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 if GLM_FORCE_RADIANS is define or degrees otherwise.
  axis | Rotation axis, recommanded to be normalized.

Template Parameters

  T | Value type used to build the matrix. Supported: half, float or double.

See Also
  GLM_GTC_matrix_transform
  GLM_GTX_transform
  - rotate(T angle, T x, T y, T z)
  - rotate(detail::tmat4x4<T, P> const & m, T angle, T x, T y, T z)
  - rotate(T angle, detail::tvec3<T, P> const & v)

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::scale | ( | detail::tmat4x4< T, P > const & | m,
|  | detail::tvec3< T, P > 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 recommanded), float or double.

See Also
  GLM_GTC_matrix_transform
  GLM_GTX_transform
  - scale(T x, T y, T z) scale(T const & x, T const & y, T const & z)
  - scale(detail::tmat4x4<T, P> const & m, T x, T y, T z)
  - scale(detail::tvec3<T, P> const & v)

GLM_FUNC_DECL detail::tmat4x4<T, P> glm::translate | ( | detail::tmat4x4< T, P > const & | m,
|  | detail::tvec3< T, P > 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 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
  GLM_GTX_transform
  - translate(T x, T y, T z)
  - translate(detail::tmat4x4<T, P> const & m, T x, T y, T z)
  - translate(detail::tvec3<T, P> const & v)

GLM_FUNC_DECL detail::tmat4x4<T, P> 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 | Expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
  aspect |
  near |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform

GLM_FUNC_DECL detail::tvec3<T, P> glm::unProject | ( | detail::tvec3< T, P > const & | win,
|  | detail::tmat4x4< T, P > const & | model,
|  | detail::tmat4x4< T, P > const & | proj,
|  | detail::tvec4< U, P > const & | viewport
| ) |  |

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

Parameters

  win |
  model |
  proj |
  viewport |

Template Parameters

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

See Also
  GLM_GTC_matrix_transform