/// Creates a matrix for an orthographic parallel viewing volume.
/// Creates a matrix for an orthographic parallel viewing volume, using the default handedness.
///
///
/// @param left
/// @param left
/// @param right
/// @param right
/// @param bottom
/// @param bottom
/// @param top
/// @param top
/// @param zNear
/// @param zNear
/// @param zFar
/// @param zFar
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see gtc_matrix_transform
/// @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)
@ -136,12 +136,52 @@ namespace glm
TzNear,
TzNear,
TzFar);
TzFar);
/// Creates a matrix for an orthographic parallel viewing volume, using left-handedness.
///
/// @param left
/// @param right
/// @param bottom
/// @param top
/// @param zNear
/// @param zFar
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
template<typenameT>
GLM_FUNC_DECLtmat4x4<T,defaultp>orthoLH(
Tleft,
Tright,
Tbottom,
Ttop,
TzNear,
TzFar);
/// Creates a matrix for an orthographic parallel viewing volume, using right-handedness.
///
/// @param left
/// @param right
/// @param bottom
/// @param top
/// @param zNear
/// @param zFar
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
template<typenameT>
GLM_FUNC_DECLtmat4x4<T,defaultp>orthoRH(
Tleft,
Tright,
Tbottom,
Ttop,
TzNear,
TzFar);
/// Creates a matrix for projecting two-dimensional coordinates onto the screen.
/// Creates a matrix for projecting two-dimensional coordinates onto the screen.
///
///
/// @param left
/// @param left
/// @param right
/// @param right
/// @param bottom
/// @param bottom
/// @param top
/// @param top
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see gtc_matrix_transform
/// @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)
@ -152,14 +192,14 @@ namespace glm
Tbottom,
Tbottom,
Ttop);
Ttop);
/// Creates a frustum matrix.
/// Creates a frustum matrix with default handedness.
///
///
/// @param left
/// @param left
/// @param right
/// @param right
/// @param bottom
/// @param bottom
/// @param top
/// @param top
/// @param near
/// @param near
/// @param far
/// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see gtc_matrix_transform
template<typenameT>
template<typenameT>
@ -171,6 +211,44 @@ namespace glm
Tnear,
Tnear,
Tfar);
Tfar);
/// Creates a left handed frustum matrix.
///
/// @param left
/// @param right
/// @param bottom
/// @param top
/// @param near
/// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
template<typenameT>
GLM_FUNC_DECLtmat4x4<T,defaultp>frustumLH(
Tleft,
Tright,
Tbottom,
Ttop,
Tnear,
Tfar);
/// Creates a right handed frustum matrix.
///
/// @param left
/// @param right
/// @param bottom
/// @param top
/// @param near
/// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
template<typenameT>
GLM_FUNC_DECLtmat4x4<T,defaultp>frustumRH(
Tleft,
Tright,
Tbottom,
Ttop,
Tnear,
Tfar);
/// Creates a matrix for a symetric perspective-view frustum based on the default handedness.
/// Creates a matrix for a symetric perspective-view frustum based on the default handedness.
///
///
/// @param fovy Specifies the field of view angle in the y direction. Expressed in radians.
/// @param fovy Specifies the field of view angle in the y direction. Expressed in radians.
@ -267,8 +345,8 @@ namespace glm
Tnear,
Tnear,
Tfar);
Tfar);
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.
///
///
/// @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).
/// Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite.
///
/// @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 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 recommanded), float or double.
/// Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite.
///
/// @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 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 recommanded), float or double.