29 #ifndef glm_core_type_mat
30 #define glm_core_type_mat
32 #include "precision.hpp"
37 template <
typename T, precision P>
struct tvec2;
38 template <
typename T, precision P>
struct tvec3;
39 template <
typename T, precision P>
struct tvec4;
40 template <
typename T, precision P>
struct tmat2x2;
41 template <
typename T, precision P>
struct tmat2x3;
42 template <
typename T, precision P>
struct tmat2x4;
43 template <
typename T, precision P>
struct tmat3x2;
44 template <
typename T, precision P>
struct tmat3x3;
45 template <
typename T, precision P>
struct tmat3x4;
46 template <
typename T, precision P>
struct tmat4x2;
47 template <
typename T, precision P>
struct tmat4x3;
48 template <
typename T, precision P>
struct tmat4x4;
50 template <
typename T, precision P,
template <
class, precision>
class colType,
template <
class, precision>
class rowType>
51 struct outerProduct_trait{};
53 template <
template <
class, precision>
class matType,
typename T, precision P>
54 struct compute_inverse{};
361 #if(defined(GLM_PRECISION_LOWP_FLOAT))
371 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
427 #endif//GLM_PRECISION
708 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
718 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
728 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
790 #endif//GLM_PRECISION
795 #endif//glm_core_type_mat
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
detail::tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
detail::tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
detail::tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
detail::tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
detail::tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
detail::tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
detail::tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
detail::tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
detail::tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
detail::tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
detail::tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
detail::tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
detail::tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
detail::tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
detail::tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
detail::tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
detail::tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
detail::tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
detail::tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
detail::tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
detail::tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
detail::tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
detail::tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
detail::tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
detail::tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
detail::tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
detail::tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
detail::tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
detail::tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
detail::tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
detail::tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
detail::tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
detail::tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
detail::tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
detail::tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
detail::tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
detail::tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
detail::tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
detail::tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
detail::tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
detail::tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
detail::tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
detail::tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
detail::tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
detail::tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
detail::tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
detail::tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.