- Main Page
- Related Pages
- Modules
- Classes
- Files

Functions
GLM_GTC_matrix_transform: Matrix transform functions
GTC Extensions (Stable)

## Functions
template<typename T >
detail::tmat4x4< T > | frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
template<typename T >
detail::tmat4x4< T > | infinitePerspective (T fovy, T aspect, T near)
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, T const &zNear, T const &zFar)
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 > | perspective (T const &fovy, T const &aspect, T const &near, T const &far)
template<typename valType >
detail::tmat4x4< valType > | perspectiveFov (valType const &fov, valType const &width, valType const &height, valType const &near, valType const &far)
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 &axis)
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 near)
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 & | 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: Matrix transform functions

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

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

Parameters:

  fovy |
  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: 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.

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: 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)

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.

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

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.

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: 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::perspective | ( | T const & | fovy,
|  | T const & | aspect,
|  | T const & | near,
|  | T const & | far
| ) |  |

Creates a matrix for a symetric perspective-view frustum.

Parameters:

  fovy |
  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: Matrix transform functions

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

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

Parameters:

  fov |
  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: 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.

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: 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.

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: Matrix transform functions

detail::tmat4x4<T> glm::rotate | ( | detail::tmat4x4< T > const & | m,
|  | T const & | angle,
|  | detail::tvec3< T > const & | axis
| ) |  |

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

Parameters:

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

Template Parameters:

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

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.

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: 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:

  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: 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 | ( | 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 |
  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: 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.

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: Matrix transform functions