43 #ifndef GLM_GTC_type_precision
44 #define GLM_GTC_type_precision
47 #include "../gtc/quaternion.hpp"
48 #include "../vec2.hpp"
49 #include "../vec3.hpp"
50 #include "../vec4.hpp"
51 #include "../mat2x2.hpp"
52 #include "../mat2x3.hpp"
53 #include "../mat2x4.hpp"
54 #include "../mat3x2.hpp"
55 #include "../mat3x3.hpp"
56 #include "../mat3x4.hpp"
57 #include "../mat4x2.hpp"
58 #include "../mat4x3.hpp"
59 #include "../mat4x4.hpp"
61 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
62 # pragma message("GLM: GLM_GTC_type_precision extension included")
269 typedef detail::tvec1<i8, defaultp>
i8vec1;
273 typedef detail::tvec2<i8, defaultp>
i8vec2;
277 typedef detail::tvec3<i8, defaultp>
i8vec3;
281 typedef detail::tvec4<i8, defaultp>
i8vec4;
286 typedef detail::tvec1<i16, defaultp>
i16vec1;
290 typedef detail::tvec2<i16, defaultp>
i16vec2;
294 typedef detail::tvec3<i16, defaultp>
i16vec3;
298 typedef detail::tvec4<i16, defaultp>
i16vec4;
303 typedef detail::tvec1<i32, defaultp>
i32vec1;
307 typedef detail::tvec2<i32, defaultp>
i32vec2;
311 typedef detail::tvec3<i32, defaultp>
i32vec3;
315 typedef detail::tvec4<i32, defaultp>
i32vec4;
320 typedef detail::tvec1<i64, defaultp>
i64vec1;
324 typedef detail::tvec2<i64, defaultp>
i64vec2;
328 typedef detail::tvec3<i64, defaultp>
i64vec3;
332 typedef detail::tvec4<i64, defaultp>
i64vec4;
534 typedef detail::tvec1<u8, defaultp>
u8vec1;
538 typedef detail::tvec2<u8, defaultp>
u8vec2;
542 typedef detail::tvec3<u8, defaultp>
u8vec3;
546 typedef detail::tvec4<u8, defaultp>
u8vec4;
551 typedef detail::tvec1<u16, defaultp>
u16vec1;
555 typedef detail::tvec2<u16, defaultp>
u16vec2;
559 typedef detail::tvec3<u16, defaultp>
u16vec3;
563 typedef detail::tvec4<u16, defaultp>
u16vec4;
568 typedef detail::tvec1<u32, defaultp>
u32vec1;
572 typedef detail::tvec2<u32, defaultp>
u32vec2;
576 typedef detail::tvec3<u32, defaultp>
u32vec3;
580 typedef detail::tvec4<u32, defaultp>
u32vec4;
585 typedef detail::tvec1<u64, defaultp>
u64vec1;
589 typedef detail::tvec2<u64, defaultp>
u64vec2;
593 typedef detail::tvec3<u64, defaultp>
u64vec3;
597 typedef detail::tvec4<u64, defaultp>
u64vec4;
632 typedef detail::tvec1<float, defaultp>
fvec1;
636 typedef detail::tvec2<float, defaultp>
fvec2;
640 typedef detail::tvec3<float, defaultp>
fvec3;
644 typedef detail::tvec4<float, defaultp>
fvec4;
649 typedef detail::tvec1<f32, defaultp>
f32vec1;
653 typedef detail::tvec2<f32, defaultp>
f32vec2;
657 typedef detail::tvec3<f32, defaultp>
f32vec3;
661 typedef detail::tvec4<f32, defaultp>
f32vec4;
666 typedef detail::tvec1<f64, defaultp>
f64vec1;
670 typedef detail::tvec2<f64, defaultp>
f64vec2;
674 typedef detail::tvec3<f64, defaultp>
f64vec3;
678 typedef detail::tvec4<f64, defaultp>
f64vec4;
690 typedef detail::tmat2x2<f32, defaultp>
fmat2;
694 typedef detail::tmat3x3<f32, defaultp>
fmat3;
698 typedef detail::tmat4x4<f32, defaultp>
fmat4;
707 typedef detail::tmat2x2<f32, defaultp>
fmat2x2;
711 typedef detail::tmat2x3<f32, defaultp>
fmat2x3;
715 typedef detail::tmat2x4<f32, defaultp>
fmat2x4;
719 typedef detail::tmat3x2<f32, defaultp>
fmat3x2;
723 typedef detail::tmat3x3<f32, defaultp>
fmat3x3;
727 typedef detail::tmat3x4<f32, defaultp>
fmat3x4;
731 typedef detail::tmat4x2<f32, defaultp>
fmat4x2;
735 typedef detail::tmat4x3<f32, defaultp>
fmat4x3;
739 typedef detail::tmat4x4<f32, defaultp>
fmat4x4;
748 typedef detail::tmat2x2<f32, defaultp>
f32mat2;
752 typedef detail::tmat3x3<f32, defaultp>
f32mat3;
756 typedef detail::tmat4x4<f32, defaultp>
f32mat4;
765 typedef detail::tmat2x2<f32, defaultp>
f32mat2x2;
769 typedef detail::tmat2x3<f32, defaultp>
f32mat2x3;
773 typedef detail::tmat2x4<f32, defaultp>
f32mat2x4;
777 typedef detail::tmat3x2<f32, defaultp>
f32mat3x2;
781 typedef detail::tmat3x3<f32, defaultp>
f32mat3x3;
785 typedef detail::tmat3x4<f32, defaultp>
f32mat3x4;
789 typedef detail::tmat4x2<f32, defaultp>
f32mat4x2;
793 typedef detail::tmat4x3<f32, defaultp>
f32mat4x3;
797 typedef detail::tmat4x4<f32, defaultp>
f32mat4x4;
806 typedef detail::tmat2x2<f64, defaultp>
f64mat2;
810 typedef detail::tmat3x3<f64, defaultp>
f64mat3;
814 typedef detail::tmat4x4<f64, defaultp>
f64mat4;
823 typedef detail::tmat2x2<f64, defaultp>
f64mat2x2;
827 typedef detail::tmat2x3<f64, defaultp>
f64mat2x3;
831 typedef detail::tmat2x4<f64, defaultp>
f64mat2x4;
835 typedef detail::tmat3x2<f64, defaultp>
f64mat3x2;
839 typedef detail::tmat3x3<f64, defaultp>
f64mat3x3;
843 typedef detail::tmat3x4<f64, defaultp>
f64mat3x4;
847 typedef detail::tmat4x2<f64, defaultp>
f64mat4x2;
851 typedef detail::tmat4x3<f64, defaultp>
f64mat4x3;
855 typedef detail::tmat4x4<f64, defaultp>
f64mat4x4;
863 typedef detail::tquat<f32, defaultp>
f32quat;
867 typedef detail::tquat<f64, defaultp>
f64quat;
872 #include "type_precision.inl"
874 #endif//GLM_GTC_type_precision
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
detail::int8 int8
8 bit signed integer type.
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
detail::uint32 uint32
32 bit unsigned integer type.
detail::int16 int16
16 bit signed integer type.
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
float float32
Default 32 bit single-precision floating-point scalar.
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
detail::int32 highp_int32
High precision 32 bit signed integer type.
detail::uint8 uint8_t
8 bit unsigned integer type.
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
detail::int64 int64_t
64 bit signed integer type.
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
detail::uint32 uint32_t
32 bit unsigned integer type.
detail::uint8 u8
8 bit unsigned integer type.
detail::int64 int64
64 bit signed integer type.
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
detail::int32 highp_int32_t
32 bit signed integer type.
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
detail::int32 i32
32 bit signed integer type.
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
detail::uint64 uint64_t
64 bit unsigned integer type.
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
detail::int16 int16_t
16 bit signed integer type.
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
detail::int64 i64
64 bit signed integer type.
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
detail::uint64 uint64
64 bit unsigned integer type.
detail::int64 highp_int64
High precision 64 bit signed integer type.
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
detail::int16 i16
16 bit signed integer type.
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
detail::int8 int8_t
8 bit signed integer type.
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
detail::uint16 uint16_t
16 bit unsigned integer type.
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
detail::int8 i8
8 bit signed integer type.
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
detail::int32 int32
32 bit signed integer type.
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
detail::int32 highp_i32
High precision 32 bit signed integer type.
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
detail::int32 int32_t
32 bit signed integer type.
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
detail::uint64 u64
64 bit unsigned integer type.
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
detail::uint8 uint8
8 bit unsigned integer type.
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
detail::uint32 u32
32 bit unsigned integer type.
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
detail::int64 highp_i64
High precision 64 bit signed integer type.
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
detail::int8 highp_i8
High precision 8 bit signed integer type.
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
highp_f32quat f32quat
Default single-precision floating-point quaternion.
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
detail::int16 highp_int16
High precision 16 bit signed integer type.
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
detail::int16 highp_i16
High precision 16 bit signed integer type.
detail::int8 highp_int8
High precision 8 bit signed integer type.
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
detail::uint16 u16
16 bit unsigned integer type.
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
detail::uint16 uint16
16 bit unsigned integer type.
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
highp_f64quat f64quat
Default double-precision floating-point quaternion.
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
double float64
Default 64 bit double-precision floating-point scalar.
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.