/// Builds a translation 4 * 4 matrix created from a vector of 3 components.
/// @see - gtc_matrix_transform
/// @see - gtx_transform:
/// - @link glm::gtx::transform::translate(T x, T y, T z) translate(T x, T y, T z) @endlink
/// - @link glm::gtx::transform::translate(detail::tmat4x4<T> const & m, T x, T y, T z) translate(mat4x4<T> const & m, T x, T y, T z) @endlink
template<typenameT>
detail::tmat4x4<T>translate(
detail::tmat4x4<T>const&m,
detail::tvec3<T>const&v);
//! Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
//! \sa - gtc_matrix_transform
//! \sa - gtx_transform:
//! - \link glm::gtx::transform::rotate(T angle, T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) \endlink
//! - \link glm::gtx::transform::rotate(detail::tmat4x4<T> const & m, T angle, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) \endlink
/// Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
/// @see - gtc_matrix_transform
/// @see - gtx_transform:
/// - @link glm::gtx::transform::rotate(T angle, T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) @endlink
/// - @link glm::gtx::transform::rotate(detail::tmat4x4<T> const & m, T angle, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) @endlink
template<typenameT>
detail::tmat4x4<T>rotate(
detail::tmat4x4<T>const&m,
Tconst&angle,
detail::tvec3<T>const&v);
//! Builds a scale 4 * 4 matrix created from 3 scalars.
//! \sa - gtc_matrix_transform
//! \sa - gtx_transform:
//! - \link glm::gtx::transform::scale(T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) \endlink
//! - \link glm::gtx::transform::scale(detail::tmat4x4<T> const & m, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) \endlink
/// Builds a scale 4 * 4 matrix created from 3 scalars.
/// @see - gtc_matrix_transform
/// @see - gtx_transform:
/// - @link glm::gtx::transform::scale(T x, T y, T z) rotate(T const & angle, T const & x, T const & y, T const & z) @endlink
/// - @link glm::gtx::transform::scale(detail::tmat4x4<T> const & m, T x, T y, T z) rotate(mat4x4<T> const & m, T const & angle, T const & x, T const & y, T const & z) @endlink
template<typenameT>
detail::tmat4x4<T>scale(
detail::tmat4x4<T>const&m,
detail::tvec3<T>const&v);
//! Creates a matrix for an orthographic parallel viewing volume.
//! \sa - gtc_matrix_transform:
//! - \link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top) ortho(T const & left, T const & right, T const & bottom, T const & top) \endlink
/// Creates a matrix for an orthographic parallel viewing volume.
/// @see - gtc_matrix_transform:
/// - @link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top) ortho(T const & left, T const & right, T const & bottom, T const & top) @endlink
template<typenameT>
detail::tmat4x4<T>ortho(
Tconst&left,
@ -97,9 +96,9 @@ namespace glm
Tconst&zNear,
Tconst&zFar);
//! Creates a matrix for projecting two-dimensional coordinates onto the screen.
//! \sa - gtc_matrix_transform:
//! - \link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) \endlink
/// Creates a matrix for projecting two-dimensional coordinates onto the screen.
/// @see - gtc_matrix_transform:
/// - @link glm::gtc::matrix_transform::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) @endlink
template<typenameT>
detail::tmat4x4<T>ortho(
Tconst&left,
@ -107,8 +106,8 @@ namespace glm
Tconst&bottom,
Tconst&top);
//! Creates a frustum matrix.
//! \sa - gtc_matrix_transform
/// Creates a frustum matrix.
/// @see - gtc_matrix_transform
template<typenameT>
detail::tmat4x4<T>frustum(
Tconst&left,
@ -118,8 +117,8 @@ namespace glm
Tconst&nearVal,
Tconst&farVal);
//! Creates a matrix for a symetric perspective-view frustum.
//! \sa - gtc_matrix_transform
/// Creates a matrix for a symetric perspective-view frustum.
/// @see - gtc_matrix_transform
template<typenameT>
detail::tmat4x4<T>perspective(
Tconst&fovy,
@ -127,8 +126,8 @@ namespace glm
Tconst&zNear,
Tconst&zFar);
//! Builds a perspective projection matrix based on a field of view
//! \sa - gtc_matrix_transform
/// Builds a perspective projection matrix based on a field of view
/// @see - gtc_matrix_transform
template<typenamevalType>
detail::tmat4x4<valType>perspectiveFov(
valTypeconst&fov,
@ -137,20 +136,20 @@ namespace glm
valTypeconst&zNear,
valTypeconst&zFar);
//! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
//! \sa - gtc_matrix_transform
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
/// @see - gtc_matrix_transform
template<typenameT>
detail::tmat4x4<T>infinitePerspective(
Tfovy,Taspect,TzNear);
//! Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
//! \sa - gtc_matrix_transform
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
/// @see - gtc_matrix_transform
template<typenameT>
detail::tmat4x4<T>tweakedInfinitePerspective(
Tfovy,Taspect,TzNear);
//! Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
//! \sa - gtc_matrix_transform
/// Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
/// @see - gtc_matrix_transform
template<typenameT,typenameU>
detail::tvec3<T>project(
detail::tvec3<T>const&obj,
@ -158,8 +157,8 @@ namespace glm
detail::tmat4x4<T>const&proj,
detail::tvec4<U>const&viewport);
//! Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
//! \sa - gtc_matrix_transform
/// Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
/// @see - gtc_matrix_transform
template<typenameT,typenameU>
detail::tvec3<T>unProject(
detail::tvec3<T>const&win,
@ -167,29 +166,29 @@ namespace glm
detail::tmat4x4<T>const&proj,
detail::tvec4<U>const&viewport);
//! Define a picking region
//! \sa - gtc_matrix_transform
/// Define a picking region
/// @see - gtc_matrix_transform
template<typenameT,typenameU>
detail::tmat4x4<T>pickMatrix(
detail::tvec2<T>const¢er,
detail::tvec2<T>const&delta,
detail::tvec4<U>const&viewport);
//! Build a look at view matrix.
//! \sa - gtc_matrix_transform:
//! - \link 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)\endlink
//! \param eye Position of the camera
//! \param center Position where the camera is looking at
//! \param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// Build a look at view matrix.
/// @see - gtc_matrix_transform:
/// - @link 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) @endlink
/// @param eye Position of the camera
/// @param center Position where the camera is looking at
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)