/// Creates a matrix for projecting two-dimensional coordinates onto the screen.
/// Creates a matrix for projecting two-dimensional coordinates onto the screen.
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top, T const& zNear, T const& zFar)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top, T const& zNear, T const& zFar)
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluOrtho2D.xml">gluOrtho2D man page</a>
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluOrtho2D.xml">gluOrtho2D man page</a>
template<typenameT>
template<typenameT>
@ -43,8 +44,9 @@ namespace glm
/// Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoLH_ZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoLH_ZO(
@ -53,8 +55,9 @@ namespace glm
/// Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoLH_NO(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoLH_NO(
@ -63,8 +66,9 @@ namespace glm
/// Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoRH_ZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoRH_ZO(
@ -73,8 +77,9 @@ namespace glm
/// Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoRH_NO(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoRH_NO(
@ -83,8 +88,9 @@ namespace glm
/// Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoZO(
@ -93,8 +99,9 @@ namespace glm
/// 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.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoNO(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoNO(
@ -104,8 +111,9 @@ namespace glm
/// 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)
/// 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)
/// Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoLH(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoLH(
@ -115,8 +123,9 @@ namespace glm
/// 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)
/// 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)
/// Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoRH(
GLM_FUNC_DECLmat<4,4,T,defaultp>orthoRH(
@ -125,8 +134,9 @@ namespace glm
/// Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition.
/// 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.
/// 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.
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
///
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glOrtho.xml">glOrtho man page</a>
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glOrtho.xml">glOrtho man page</a>
template<typenameT>
template<typenameT>
@ -136,8 +146,8 @@ namespace glm
/// Creates a left handed frustum matrix.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumLH_ZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumLH_ZO(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -145,8 +155,8 @@ namespace glm
/// Creates a left handed frustum matrix.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumLH_NO(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumLH_NO(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -154,8 +164,8 @@ namespace glm
/// Creates a right handed frustum matrix.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumRH_ZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumRH_ZO(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -163,8 +173,8 @@ namespace glm
/// Creates a right handed frustum matrix.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumRH_NO(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumRH_NO(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -172,8 +182,8 @@ namespace glm
/// Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumZO(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -181,8 +191,8 @@ namespace glm
/// Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.
/// 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)
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumNO(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumNO(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -191,8 +201,8 @@ namespace glm
/// 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)
/// 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)
/// Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumLH(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumLH(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -201,8 +211,8 @@ namespace glm
/// 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)
/// 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)
/// Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumRH(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustumRH(
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
Tleft,Tright,Tbottom,Ttop,Tnear,Tfar);
@ -210,8 +220,8 @@ namespace glm
/// Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.
/// 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.
/// 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.
///
///
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @tparam T A floating-point scalar type
/// @see gtc_matrix_transform
/// @tparam Q A value from qualifier enum
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glFrustum.xml">glFrustum man page</a>
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glFrustum.xml">glFrustum man page</a>
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>frustum(
GLM_FUNC_DECLmat<4,4,T,defaultp>frustum(
@ -225,8 +235,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH_ZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH_ZO(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -238,8 +249,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH_NO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH_NO(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -251,8 +263,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH_ZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH_ZO(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -264,8 +277,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH_NO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH_NO(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -277,8 +291,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveZO(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -290,8 +305,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveNO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveNO(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -304,8 +320,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -318,8 +335,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH(
Tfovy,Taspect,Tnear,Tfar);
Tfovy,Taspect,Tnear,Tfar);
@ -331,8 +349,9 @@ namespace glm
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluPerspective.xml">gluPerspective man page</a>
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluPerspective.xml">gluPerspective man page</a>
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspective(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspective(
@ -346,8 +365,9 @@ namespace glm
/// @param height Height of the viewport
/// @param height Height of the viewport
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovZO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovZO(
Tfov,Twidth,Theight,Tnear,Tfar);
Tfov,Twidth,Theight,Tnear,Tfar);
@ -416,8 +440,9 @@ namespace glm
/// @param height Height of the viewport
/// @param height Height of the viewport
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovNO(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovNO(
Tfov,Twidth,Theight,Tnear,Tfar);
Tfov,Twidth,Theight,Tnear,Tfar);
@ -431,8 +456,9 @@ namespace glm
/// @param height Height of the viewport
/// @param height Height of the viewport
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovRH(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovRH(
Tfov,Twidth,Theight,Tnear,Tfar);
Tfov,Twidth,Theight,Tnear,Tfar);
@ -446,8 +472,9 @@ namespace glm
/// @param height Height of the viewport
/// @param height Height of the viewport
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovLH(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFovLH(
Tfov,Twidth,Theight,Tnear,Tfar);
Tfov,Twidth,Theight,Tnear,Tfar);
@ -460,8 +487,9 @@ namespace glm
/// @param height Height of the viewport
/// @param height Height of the viewport
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @see gtc_matrix_transform
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
template<typenameT>
template<typenameT>
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFov(
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveFov(
Tfov,Twidth,Theight,Tnear,Tfar);
Tfov,Twidth,Theight,Tnear,Tfar);
@ -471,8 +499,9 @@ namespace glm
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @param 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).
/// @param 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).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @param ep Epsilon
/// @param ep Epsilon
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @param m Input matrix multiplied by this translation matrix.
/// @param m Input matrix multiplied by this translation matrix.
/// @param v Coordinates of a translation vector.
/// @param v Coordinates of a translation vector.
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
///
/// @code
/// @code
/// #include <glm/glm.hpp>
/// #include <glm/glm.hpp>
/// #include <glm/gtc/matrix_transform.hpp>
/// #include <glm/gtc/matrix_transform.hpp>
@ -63,7 +66,9 @@ namespace glm
/// @param m Input matrix multiplied by this rotation matrix.
/// @param m Input matrix multiplied by this rotation matrix.
/// @param angle Rotation angle expressed in radians.
/// @param angle Rotation angle expressed in radians.
/// @param axis Rotation axis, recommended to be normalized.
/// @param axis Rotation axis, recommended to be normalized.
/// @tparam T Value type used to build the matrix. Supported: half, float or double.
///
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
///
///
/// @see - rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
/// @see - rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
/// @see - rotate(T angle, vec<3, T, Q> const& v)
/// @see - rotate(T angle, vec<3, T, Q> const& v)
@ -76,7 +81,9 @@ namespace glm
///
///
/// @param m Input matrix multiplied by this scale matrix.
/// @param m Input matrix multiplied by this scale matrix.
/// @param v Ratio of scaling for each axis.
/// @param v Ratio of scaling for each axis.
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
///
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
///
///
/// @see - scale(mat<4, 4, T, Q> const& m, T x, T y, T z)
/// @see - scale(mat<4, 4, T, Q> const& m, T x, T y, T z)
/// @see - scale(vec<3, T, Q> const& v)
/// @see - scale(vec<3, T, Q> const& v)
@ -91,6 +98,9 @@ namespace glm
/// @param center Position where the camera is looking at
/// @param center Position where the camera is looking at
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
///
///
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
///
/// @see - 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)
/// @see - 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)
template<typenameT,qualifierQ>
template<typenameT,qualifierQ>
GLM_FUNC_DECLmat<4,4,T,Q>lookAtRH(
GLM_FUNC_DECLmat<4,4,T,Q>lookAtRH(
@ -102,6 +112,9 @@ namespace glm
/// @param center Position where the camera is looking at
/// @param center Position where the camera is looking at
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
///
///
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
///
/// @see - 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)
/// @see - 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)
template<typenameT,qualifierQ>
template<typenameT,qualifierQ>
GLM_FUNC_DECLmat<4,4,T,Q>lookAtLH(
GLM_FUNC_DECLmat<4,4,T,Q>lookAtLH(
@ -113,6 +126,9 @@ namespace glm
/// @param center Position where the camera is looking at
/// @param center Position where the camera is looking at
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
///
///
/// @tparam T A floating-point scalar type
/// @tparam Q A value from qualifier enum
///
/// @see - 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)
/// @see - 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)
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluLookAt.xml">gluLookAt man page</a>
/// @see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluLookAt.xml">gluLookAt man page</a>