summaryrefslogtreecommitdiffstats
path: root/deps/include/glm/glm.cppm
diff options
context:
space:
mode:
authoruntodesu <kirill@untode.su>2025-03-15 16:22:09 +0500
committeruntodesu <kirill@untode.su>2025-03-15 16:22:09 +0500
commit3bf42c6ff3805a0d42bbc661794a95ff31bedc26 (patch)
tree05049955847504808d6bed2bb7b155f8b03807bb /deps/include/glm/glm.cppm
parent02294547dcde0d4ad76e229106702261e9f10a51 (diff)
downloadvoxelius-3bf42c6ff3805a0d42bbc661794a95ff31bedc26.tar.bz2
voxelius-3bf42c6ff3805a0d42bbc661794a95ff31bedc26.zip
Add whatever I was working on for the last month
Diffstat (limited to 'deps/include/glm/glm.cppm')
-rw-r--r--deps/include/glm/glm.cppm2675
1 files changed, 2675 insertions, 0 deletions
diff --git a/deps/include/glm/glm.cppm b/deps/include/glm/glm.cppm
new file mode 100644
index 0000000..85e946e
--- /dev/null
+++ b/deps/include/glm/glm.cppm
@@ -0,0 +1,2675 @@
+module;
+
+// #define GLM_GTC_INLINE_NAMESPACE to inline glm::gtc into glm
+// #define GLM_EXT_INLINE_NAMESPACE to inline glm::ext into glm
+// #define GLM_GTX_INLINE_NAMESPACE to inline glm::gtx into glm
+
+#include <glm/glm.hpp>
+#include <glm/ext.hpp>
+
+export module glm;
+
+export namespace glm {
+ // Base types
+ using glm::qualifier;
+ using glm::precision;
+ using glm::vec;
+ using glm::mat;
+ using glm::qua;
+# if GLM_HAS_TEMPLATE_ALIASES
+ using glm::tvec1;
+ using glm::tvec2;
+ using glm::tvec3;
+ using glm::tvec4;
+ using glm::tmat2x2;
+ using glm::tmat2x3;
+ using glm::tmat2x4;
+ using glm::tmat3x2;
+ using glm::tmat3x3;
+ using glm::tmat3x4;
+ using glm::tmat4x2;
+ using glm::tmat4x3;
+ using glm::tmat4x4;
+ using glm::tquat;
+# endif
+
+ using glm::int8;
+ using glm::int16;
+ using glm::int32;
+ using glm::int64;
+ using glm::uint8;
+ using glm::uint16;
+ using glm::uint32;
+ using glm::uint64;
+ using glm::lowp_i8;
+ using glm::mediump_i8;
+ using glm::highp_i8;
+ using glm::i8;
+ using glm::lowp_int8;
+ using glm::mediump_int8;
+ using glm::highp_int8;
+ using glm::lowp_int8_t;
+ using glm::mediump_int8_t;
+ using glm::highp_int8_t;
+ using glm::int8_t;
+ using glm::lowp_i16;
+ using glm::mediump_i16;
+ using glm::highp_i16;
+ using glm::i16;
+ using glm::lowp_int16;
+ using glm::mediump_int16;
+ using glm::highp_int16;
+ using glm::lowp_int16_t;
+ using glm::mediump_int16_t;
+ using glm::highp_int16_t;
+ using glm::int16_t;
+ using glm::lowp_i32;
+ using glm::mediump_i32;
+ using glm::highp_i32;
+ using glm::i32;
+ using glm::lowp_int32;
+ using glm::mediump_int32;
+ using glm::highp_int32;
+ using glm::lowp_int32_t;
+ using glm::mediump_int32_t;
+ using glm::highp_int32_t;
+ using glm::int32_t;
+ using glm::lowp_i64;
+ using glm::mediump_i64;
+ using glm::highp_i64;
+ using glm::i64;
+ using glm::lowp_int64;
+ using glm::mediump_int64;
+ using glm::highp_int64;
+ using glm::lowp_int64_t;
+ using glm::mediump_int64_t;
+ using glm::highp_int64_t;
+ using glm::int64_t;
+ using glm::uint;
+ using glm::lowp_u8;
+ using glm::mediump_u8;
+ using glm::highp_u8;
+ using glm::u8;
+ using glm::lowp_uint8;
+ using glm::mediump_uint8;
+ using glm::highp_uint8;
+ using glm::lowp_uint8_t;
+ using glm::mediump_uint8_t;
+ using glm::highp_uint8_t;
+ using glm::uint8_t;
+ using glm::lowp_u16;
+ using glm::mediump_u16;
+ using glm::highp_u16;
+ using glm::u16;
+ using glm::lowp_uint16;
+ using glm::mediump_uint16;
+ using glm::highp_uint16;
+ using glm::lowp_uint16_t;
+ using glm::mediump_uint16_t;
+ using glm::highp_uint16_t;
+ using glm::uint16_t;
+ using glm::lowp_u32;
+ using glm::mediump_u32;
+ using glm::highp_u32;
+ using glm::u32;
+ using glm::lowp_uint32;
+ using glm::mediump_uint32;
+ using glm::highp_uint32;
+ using glm::lowp_uint32_t;
+ using glm::mediump_uint32_t;
+ using glm::highp_uint32_t;
+ using glm::uint32_t;
+ using glm::lowp_u64;
+ using glm::mediump_u64;
+ using glm::highp_u64;
+ using glm::u64;
+ using glm::lowp_uint64;
+ using glm::mediump_uint64;
+ using glm::highp_uint64;
+ using glm::lowp_uint64_t;
+ using glm::mediump_uint64_t;
+ using glm::highp_uint64_t;
+ using glm::uint64_t;
+ using glm::lowp_f32;
+ using glm::mediump_f32;
+ using glm::highp_f32;
+ using glm::f32;
+ using glm::lowp_float32;
+ using glm::mediump_float32;
+ using glm::highp_float32;
+ using glm::float32;
+ using glm::lowp_float32_t;
+ using glm::mediump_float32_t;
+ using glm::highp_float32_t;
+ using glm::float32_t;
+ using glm::lowp_f64;
+ using glm::mediump_f64;
+ using glm::highp_f64;
+ using glm::f64;
+ using glm::lowp_float64;
+ using glm::mediump_float64;
+ using glm::highp_float64;
+ using glm::float64;
+ using glm::lowp_float64_t;
+ using glm::mediump_float64_t;
+ using glm::highp_float64_t;
+ using glm::float64_t;
+ using glm::lowp_bvec1;
+ using glm::lowp_bvec2;
+ using glm::lowp_bvec3;
+ using glm::lowp_bvec4;
+ using glm::mediump_bvec1;
+ using glm::mediump_bvec2;
+ using glm::mediump_bvec3;
+ using glm::mediump_bvec4;
+ using glm::highp_bvec1;
+ using glm::highp_bvec2;
+ using glm::highp_bvec3;
+ using glm::highp_bvec4;
+ using glm::bvec1;
+ using glm::bvec2;
+ using glm::bvec3;
+ using glm::bvec4;
+ using glm::lowp_ivec1;
+ using glm::lowp_ivec2;
+ using glm::lowp_ivec3;
+ using glm::lowp_ivec4;
+ using glm::mediump_ivec1;
+ using glm::mediump_ivec2;
+ using glm::mediump_ivec3;
+ using glm::mediump_ivec4;
+ using glm::highp_ivec1;
+ using glm::highp_ivec2;
+ using glm::highp_ivec3;
+ using glm::highp_ivec4;
+ using glm::ivec1;
+ using glm::ivec2;
+ using glm::ivec3;
+ using glm::ivec4;
+ using glm::lowp_i8vec1;
+ using glm::lowp_i8vec2;
+ using glm::lowp_i8vec3;
+ using glm::lowp_i8vec4;
+ using glm::mediump_i8vec1;
+ using glm::mediump_i8vec2;
+ using glm::mediump_i8vec3;
+ using glm::mediump_i8vec4;
+ using glm::highp_i8vec1;
+ using glm::highp_i8vec2;
+ using glm::highp_i8vec3;
+ using glm::highp_i8vec4;
+ using glm::i8vec1;
+ using glm::i8vec2;
+ using glm::i8vec3;
+ using glm::i8vec4;
+ using glm::lowp_i16vec1;
+ using glm::lowp_i16vec2;
+ using glm::lowp_i16vec3;
+ using glm::lowp_i16vec4;
+ using glm::mediump_i16vec1;
+ using glm::mediump_i16vec2;
+ using glm::mediump_i16vec3;
+ using glm::mediump_i16vec4;
+ using glm::highp_i16vec1;
+ using glm::highp_i16vec2;
+ using glm::highp_i16vec3;
+ using glm::highp_i16vec4;
+ using glm::i16vec1;
+ using glm::i16vec2;
+ using glm::i16vec3;
+ using glm::i16vec4;
+ using glm::lowp_i32vec1;
+ using glm::lowp_i32vec2;
+ using glm::lowp_i32vec3;
+ using glm::lowp_i32vec4;
+ using glm::mediump_i32vec1;
+ using glm::mediump_i32vec2;
+ using glm::mediump_i32vec3;
+ using glm::mediump_i32vec4;
+ using glm::highp_i32vec1;
+ using glm::highp_i32vec2;
+ using glm::highp_i32vec3;
+ using glm::highp_i32vec4;
+ using glm::i32vec1;
+ using glm::i32vec2;
+ using glm::i32vec3;
+ using glm::i32vec4;
+ using glm::lowp_i64vec1;
+ using glm::lowp_i64vec2;
+ using glm::lowp_i64vec3;
+ using glm::lowp_i64vec4;
+ using glm::mediump_i64vec1;
+ using glm::mediump_i64vec2;
+ using glm::mediump_i64vec3;
+ using glm::mediump_i64vec4;
+ using glm::highp_i64vec1;
+ using glm::highp_i64vec2;
+ using glm::highp_i64vec3;
+ using glm::highp_i64vec4;
+ using glm::i64vec1;
+ using glm::i64vec2;
+ using glm::i64vec3;
+ using glm::i64vec4;
+ using glm::lowp_uvec1;
+ using glm::lowp_uvec2;
+ using glm::lowp_uvec3;
+ using glm::lowp_uvec4;
+ using glm::mediump_uvec1;
+ using glm::mediump_uvec2;
+ using glm::mediump_uvec3;
+ using glm::mediump_uvec4;
+ using glm::highp_uvec1;
+ using glm::highp_uvec2;
+ using glm::highp_uvec3;
+ using glm::highp_uvec4;
+ using glm::uvec1;
+ using glm::uvec2;
+ using glm::uvec3;
+ using glm::uvec4;
+ using glm::lowp_u8vec1;
+ using glm::lowp_u8vec2;
+ using glm::lowp_u8vec3;
+ using glm::lowp_u8vec4;
+ using glm::mediump_u8vec1;
+ using glm::mediump_u8vec2;
+ using glm::mediump_u8vec3;
+ using glm::mediump_u8vec4;
+ using glm::highp_u8vec1;
+ using glm::highp_u8vec2;
+ using glm::highp_u8vec3;
+ using glm::highp_u8vec4;
+ using glm::u8vec1;
+ using glm::u8vec2;
+ using glm::u8vec3;
+ using glm::u8vec4;
+ using glm::lowp_u16vec1;
+ using glm::lowp_u16vec2;
+ using glm::lowp_u16vec3;
+ using glm::lowp_u16vec4;
+ using glm::mediump_u16vec1;
+ using glm::mediump_u16vec2;
+ using glm::mediump_u16vec3;
+ using glm::mediump_u16vec4;
+ using glm::highp_u16vec1;
+ using glm::highp_u16vec2;
+ using glm::highp_u16vec3;
+ using glm::highp_u16vec4;
+ using glm::u16vec1;
+ using glm::u16vec2;
+ using glm::u16vec3;
+ using glm::u16vec4;
+ using glm::lowp_u32vec1;
+ using glm::lowp_u32vec2;
+ using glm::lowp_u32vec3;
+ using glm::lowp_u32vec4;
+ using glm::mediump_u32vec1;
+ using glm::mediump_u32vec2;
+ using glm::mediump_u32vec3;
+ using glm::mediump_u32vec4;
+ using glm::highp_u32vec1;
+ using glm::highp_u32vec2;
+ using glm::highp_u32vec3;
+ using glm::highp_u32vec4;
+ using glm::u32vec1;
+ using glm::u32vec2;
+ using glm::u32vec3;
+ using glm::u32vec4;
+ using glm::lowp_u64vec1;
+ using glm::lowp_u64vec2;
+ using glm::lowp_u64vec3;
+ using glm::lowp_u64vec4;
+ using glm::mediump_u64vec1;
+ using glm::mediump_u64vec2;
+ using glm::mediump_u64vec3;
+ using glm::mediump_u64vec4;
+ using glm::highp_u64vec1;
+ using glm::highp_u64vec2;
+ using glm::highp_u64vec3;
+ using glm::highp_u64vec4;
+ using glm::u64vec1;
+ using glm::u64vec2;
+ using glm::u64vec3;
+ using glm::u64vec4;
+ using glm::lowp_vec1;
+ using glm::lowp_vec2;
+ using glm::lowp_vec3;
+ using glm::lowp_vec4;
+ using glm::mediump_vec1;
+ using glm::mediump_vec2;
+ using glm::mediump_vec3;
+ using glm::mediump_vec4;
+ using glm::highp_vec1;
+ using glm::highp_vec2;
+ using glm::highp_vec3;
+ using glm::highp_vec4;
+ using glm::vec1;
+ using glm::vec2;
+ using glm::vec3;
+ using glm::vec4;
+ using glm::lowp_fvec1;
+ using glm::lowp_fvec2;
+ using glm::lowp_fvec3;
+ using glm::lowp_fvec4;
+ using glm::mediump_fvec1;
+ using glm::mediump_fvec2;
+ using glm::mediump_fvec3;
+ using glm::mediump_fvec4;
+ using glm::highp_fvec1;
+ using glm::highp_fvec2;
+ using glm::highp_fvec3;
+ using glm::highp_fvec4;
+ using glm::fvec1;
+ using glm::fvec2;
+ using glm::fvec3;
+ using glm::fvec4;
+ using glm::lowp_f32vec1;
+ using glm::lowp_f32vec2;
+ using glm::lowp_f32vec3;
+ using glm::lowp_f32vec4;
+ using glm::mediump_f32vec1;
+ using glm::mediump_f32vec2;
+ using glm::mediump_f32vec3;
+ using glm::mediump_f32vec4;
+ using glm::highp_f32vec1;
+ using glm::highp_f32vec2;
+ using glm::highp_f32vec3;
+ using glm::highp_f32vec4;
+ using glm::f32vec1;
+ using glm::f32vec2;
+ using glm::f32vec3;
+ using glm::f32vec4;
+ using glm::lowp_dvec1;
+ using glm::lowp_dvec2;
+ using glm::lowp_dvec3;
+ using glm::lowp_dvec4;
+ using glm::mediump_dvec1;
+ using glm::mediump_dvec2;
+ using glm::mediump_dvec3;
+ using glm::mediump_dvec4;
+ using glm::highp_dvec1;
+ using glm::highp_dvec2;
+ using glm::highp_dvec3;
+ using glm::highp_dvec4;
+ using glm::dvec1;
+ using glm::dvec2;
+ using glm::dvec3;
+ using glm::dvec4;
+ using glm::lowp_f64vec1;
+ using glm::lowp_f64vec2;
+ using glm::lowp_f64vec3;
+ using glm::lowp_f64vec4;
+ using glm::mediump_f64vec1;
+ using glm::mediump_f64vec2;
+ using glm::mediump_f64vec3;
+ using glm::mediump_f64vec4;
+ using glm::highp_f64vec1;
+ using glm::highp_f64vec2;
+ using glm::highp_f64vec3;
+ using glm::highp_f64vec4;
+ using glm::f64vec1;
+ using glm::f64vec2;
+ using glm::f64vec3;
+ using glm::f64vec4;
+ using glm::lowp_mat2;
+ using glm::lowp_mat3;
+ using glm::lowp_mat4;
+ using glm::mediump_mat2;
+ using glm::mediump_mat3;
+ using glm::mediump_mat4;
+ using glm::highp_mat2;
+ using glm::highp_mat3;
+ using glm::highp_mat4;
+ using glm::mat2;
+ using glm::mat3;
+ using glm::mat4;
+ using glm::lowp_fmat2;
+ using glm::lowp_fmat3;
+ using glm::lowp_fmat4;
+ using glm::mediump_fmat2;
+ using glm::mediump_fmat3;
+ using glm::mediump_fmat4;
+ using glm::highp_fmat2;
+ using glm::highp_fmat3;
+ using glm::highp_fmat4;
+ using glm::fmat2;
+ using glm::fmat3;
+ using glm::fmat4;
+ using glm::lowp_f32mat2;
+ using glm::lowp_f32mat3;
+ using glm::lowp_f32mat4;
+ using glm::mediump_f32mat2;
+ using glm::mediump_f32mat3;
+ using glm::mediump_f32mat4;
+ using glm::highp_f32mat2;
+ using glm::highp_f32mat3;
+ using glm::highp_f32mat4;
+ using glm::f32mat2;
+ using glm::f32mat3;
+ using glm::f32mat4;
+ using glm::lowp_dmat2;
+ using glm::lowp_dmat3;
+ using glm::lowp_dmat4;
+ using glm::mediump_dmat2;
+ using glm::mediump_dmat3;
+ using glm::mediump_dmat4;
+ using glm::highp_dmat2;
+ using glm::highp_dmat3;
+ using glm::highp_dmat4;
+ using glm::dmat2;
+ using glm::dmat3;
+ using glm::dmat4;
+ using glm::lowp_f64mat2;
+ using glm::lowp_f64mat3;
+ using glm::lowp_f64mat4;
+ using glm::mediump_f64mat2;
+ using glm::mediump_f64mat3;
+ using glm::mediump_f64mat4;
+ using glm::highp_f64mat2;
+ using glm::highp_f64mat3;
+ using glm::highp_f64mat4;
+ using glm::f64mat2;
+ using glm::f64mat3;
+ using glm::f64mat4;
+ using glm::lowp_mat2x2;
+ using glm::lowp_mat2x3;
+ using glm::lowp_mat2x4;
+ using glm::lowp_mat3x2;
+ using glm::lowp_mat3x3;
+ using glm::lowp_mat3x4;
+ using glm::lowp_mat4x2;
+ using glm::lowp_mat4x3;
+ using glm::lowp_mat4x4;
+ using glm::mediump_mat2x2;
+ using glm::mediump_mat2x3;
+ using glm::mediump_mat2x4;
+ using glm::mediump_mat3x2;
+ using glm::mediump_mat3x3;
+ using glm::mediump_mat3x4;
+ using glm::mediump_mat4x2;
+ using glm::mediump_mat4x3;
+ using glm::mediump_mat4x4;
+ using glm::highp_mat2x2;
+ using glm::highp_mat2x3;
+ using glm::highp_mat2x4;
+ using glm::highp_mat3x2;
+ using glm::highp_mat3x3;
+ using glm::highp_mat3x4;
+ using glm::highp_mat4x2;
+ using glm::highp_mat4x3;
+ using glm::highp_mat4x4;
+ using glm::mat2x2;
+ using glm::mat2x3;
+ using glm::mat2x4;
+ using glm::mat3x2;
+ using glm::mat3x3;
+ using glm::mat3x4;
+ using glm::mat4x2;
+ using glm::mat4x3;
+ using glm::mat4x4;
+ using glm::lowp_fmat2x2;
+ using glm::lowp_fmat2x3;
+ using glm::lowp_fmat2x4;
+ using glm::lowp_fmat3x2;
+ using glm::lowp_fmat3x3;
+ using glm::lowp_fmat3x4;
+ using glm::lowp_fmat4x2;
+ using glm::lowp_fmat4x3;
+ using glm::lowp_fmat4x4;
+ using glm::mediump_fmat2x2;
+ using glm::mediump_fmat2x3;
+ using glm::mediump_fmat2x4;
+ using glm::mediump_fmat3x2;
+ using glm::mediump_fmat3x3;
+ using glm::mediump_fmat3x4;
+ using glm::mediump_fmat4x2;
+ using glm::mediump_fmat4x3;
+ using glm::mediump_fmat4x4;
+ using glm::highp_fmat2x2;
+ using glm::highp_fmat2x3;
+ using glm::highp_fmat2x4;
+ using glm::highp_fmat3x2;
+ using glm::highp_fmat3x3;
+ using glm::highp_fmat3x4;
+ using glm::highp_fmat4x2;
+ using glm::highp_fmat4x3;
+ using glm::highp_fmat4x4;
+ using glm::fmat2x2;
+ using glm::fmat2x3;
+ using glm::fmat2x4;
+ using glm::fmat3x2;
+ using glm::fmat3x3;
+ using glm::fmat3x4;
+ using glm::fmat4x2;
+ using glm::fmat4x3;
+ using glm::fmat4x4;
+ using glm::lowp_f32mat2x2;
+ using glm::lowp_f32mat2x3;
+ using glm::lowp_f32mat2x4;
+ using glm::lowp_f32mat3x2;
+ using glm::lowp_f32mat3x3;
+ using glm::lowp_f32mat3x4;
+ using glm::lowp_f32mat4x2;
+ using glm::lowp_f32mat4x3;
+ using glm::lowp_f32mat4x4;
+
+ using glm::mediump_f32mat2x2;
+ using glm::mediump_f32mat2x3;
+ using glm::mediump_f32mat2x4;
+ using glm::mediump_f32mat3x2;
+ using glm::mediump_f32mat3x3;
+ using glm::mediump_f32mat3x4;
+ using glm::mediump_f32mat4x2;
+ using glm::mediump_f32mat4x3;
+ using glm::mediump_f32mat4x4;
+ using glm::highp_f32mat2x2;
+ using glm::highp_f32mat2x3;
+ using glm::highp_f32mat2x4;
+ using glm::highp_f32mat3x2;
+ using glm::highp_f32mat3x3;
+ using glm::highp_f32mat3x4;
+ using glm::highp_f32mat4x2;
+ using glm::highp_f32mat4x3;
+ using glm::highp_f32mat4x4;
+ using glm::f32mat2x2;
+ using glm::f32mat2x3;
+ using glm::f32mat2x4;
+ using glm::f32mat3x2;
+ using glm::f32mat3x3;
+ using glm::f32mat3x4;
+ using glm::f32mat4x2;
+ using glm::f32mat4x3;
+ using glm::f32mat4x4;
+ using glm::lowp_dmat2x2;
+ using glm::lowp_dmat2x3;
+ using glm::lowp_dmat2x4;
+ using glm::lowp_dmat3x2;
+ using glm::lowp_dmat3x3;
+ using glm::lowp_dmat3x4;
+ using glm::lowp_dmat4x2;
+ using glm::lowp_dmat4x3;
+ using glm::lowp_dmat4x4;
+ using glm::mediump_dmat2x2;
+ using glm::mediump_dmat2x3;
+ using glm::mediump_dmat2x4;
+ using glm::mediump_dmat3x2;
+ using glm::mediump_dmat3x3;
+ using glm::mediump_dmat3x4;
+ using glm::mediump_dmat4x2;
+ using glm::mediump_dmat4x3;
+ using glm::mediump_dmat4x4;
+ using glm::highp_dmat2x2;
+ using glm::highp_dmat2x3;
+ using glm::highp_dmat2x4;
+ using glm::highp_dmat3x2;
+ using glm::highp_dmat3x3;
+ using glm::highp_dmat3x4;
+ using glm::highp_dmat4x2;
+ using glm::highp_dmat4x3;
+ using glm::highp_dmat4x4;
+ using glm::dmat2x2;
+ using glm::dmat2x3;
+ using glm::dmat2x4;
+ using glm::dmat3x2;
+ using glm::dmat3x3;
+ using glm::dmat3x4;
+ using glm::dmat4x2;
+ using glm::dmat4x3;
+ using glm::dmat4x4;
+ using glm::lowp_f64mat2x2;
+ using glm::lowp_f64mat2x3;
+ using glm::lowp_f64mat2x4;
+ using glm::lowp_f64mat3x2;
+ using glm::lowp_f64mat3x3;
+ using glm::lowp_f64mat3x4;
+ using glm::lowp_f64mat4x2;
+ using glm::lowp_f64mat4x3;
+ using glm::lowp_f64mat4x4;
+ using glm::mediump_f64mat2x2;
+ using glm::mediump_f64mat2x3;
+ using glm::mediump_f64mat2x4;
+ using glm::mediump_f64mat3x2;
+ using glm::mediump_f64mat3x3;
+ using glm::mediump_f64mat3x4;
+ using glm::mediump_f64mat4x2;
+ using glm::mediump_f64mat4x3;
+ using glm::mediump_f64mat4x4;
+ using glm::highp_f64mat2x2;
+ using glm::highp_f64mat2x3;
+ using glm::highp_f64mat2x4;
+ using glm::highp_f64mat3x2;
+ using glm::highp_f64mat3x3;
+ using glm::highp_f64mat3x4;
+ using glm::highp_f64mat4x2;
+ using glm::highp_f64mat4x3;
+ using glm::highp_f64mat4x4;
+ using glm::f64mat2x2;
+ using glm::f64mat2x3;
+ using glm::f64mat2x4;
+ using glm::f64mat3x2;
+ using glm::f64mat3x3;
+ using glm::f64mat3x4;
+ using glm::f64mat4x2;
+ using glm::f64mat4x3;
+ using glm::f64mat4x4;
+ using glm::lowp_imat2x2;
+ using glm::lowp_imat2x3;
+ using glm::lowp_imat2x4;
+ using glm::lowp_imat3x2;
+ using glm::lowp_imat3x3;
+ using glm::lowp_imat3x4;
+ using glm::lowp_imat4x2;
+ using glm::lowp_imat4x3;
+ using glm::lowp_imat4x4;
+ using glm::mediump_imat2x2;
+ using glm::mediump_imat2x3;
+ using glm::mediump_imat2x4;
+ using glm::mediump_imat3x2;
+ using glm::mediump_imat3x3;
+ using glm::mediump_imat3x4;
+ using glm::mediump_imat4x2;
+ using glm::mediump_imat4x3;
+ using glm::mediump_imat4x4;
+ using glm::highp_imat2x2;
+ using glm::highp_imat2x3;
+ using glm::highp_imat2x4;
+ using glm::highp_imat3x2;
+ using glm::highp_imat3x3;
+ using glm::highp_imat3x4;
+ using glm::highp_imat4x2;
+ using glm::highp_imat4x3;
+ using glm::highp_imat4x4;
+ using glm::imat2x2;
+ using glm::imat2x3;
+ using glm::imat2x4;
+ using glm::imat3x2;
+ using glm::imat3x3;
+ using glm::imat3x4;
+ using glm::imat4x2;
+ using glm::imat4x3;
+ using glm::imat4x4;
+ using glm::lowp_i8mat2x2;
+ using glm::lowp_i8mat2x3;
+ using glm::lowp_i8mat2x4;
+ using glm::lowp_i8mat3x2;
+ using glm::lowp_i8mat3x3;
+ using glm::lowp_i8mat3x4;
+ using glm::lowp_i8mat4x2;
+ using glm::lowp_i8mat4x3;
+ using glm::lowp_i8mat4x4;
+ using glm::mediump_i8mat2x2;
+ using glm::mediump_i8mat2x3;
+ using glm::mediump_i8mat2x4;
+ using glm::mediump_i8mat3x2;
+ using glm::mediump_i8mat3x3;
+ using glm::mediump_i8mat3x4;
+ using glm::mediump_i8mat4x2;
+ using glm::mediump_i8mat4x3;
+ using glm::mediump_i8mat4x4;
+ using glm::highp_i8mat2x2;
+ using glm::highp_i8mat2x3;
+ using glm::highp_i8mat2x4;
+ using glm::highp_i8mat3x2;
+ using glm::highp_i8mat3x3;
+ using glm::highp_i8mat3x4;
+ using glm::highp_i8mat4x2;
+ using glm::highp_i8mat4x3;
+ using glm::highp_i8mat4x4;
+ using glm::i8mat2x2;
+ using glm::i8mat2x3;
+ using glm::i8mat2x4;
+ using glm::i8mat3x2;
+ using glm::i8mat3x3;
+ using glm::i8mat3x4;
+ using glm::i8mat4x2;
+ using glm::i8mat4x3;
+ using glm::i8mat4x4;
+ using glm::lowp_i16mat2x2;
+ using glm::lowp_i16mat2x3;
+ using glm::lowp_i16mat2x4;
+ using glm::lowp_i16mat3x2;
+ using glm::lowp_i16mat3x3;
+ using glm::lowp_i16mat3x4;
+ using glm::lowp_i16mat4x2;
+ using glm::lowp_i16mat4x3;
+ using glm::lowp_i16mat4x4;
+ using glm::mediump_i16mat2x2;
+ using glm::mediump_i16mat2x3;
+ using glm::mediump_i16mat2x4;
+ using glm::mediump_i16mat3x2;
+ using glm::mediump_i16mat3x3;
+ using glm::mediump_i16mat3x4;
+ using glm::mediump_i16mat4x2;
+ using glm::mediump_i16mat4x3;
+ using glm::mediump_i16mat4x4;
+ using glm::highp_i16mat2x2;
+ using glm::highp_i16mat2x3;
+ using glm::highp_i16mat2x4;
+ using glm::highp_i16mat3x2;
+ using glm::highp_i16mat3x3;
+ using glm::highp_i16mat3x4;
+ using glm::highp_i16mat4x2;
+ using glm::highp_i16mat4x3;
+ using glm::highp_i16mat4x4;
+ using glm::i16mat2x2;
+ using glm::i16mat2x3;
+ using glm::i16mat2x4;
+ using glm::i16mat3x2;
+ using glm::i16mat3x3;
+ using glm::i16mat3x4;
+ using glm::i16mat4x2;
+ using glm::i16mat4x3;
+ using glm::i16mat4x4;
+ using glm::lowp_i32mat2x2;
+ using glm::lowp_i32mat2x3;
+ using glm::lowp_i32mat2x4;
+ using glm::lowp_i32mat3x2;
+ using glm::lowp_i32mat3x3;
+ using glm::lowp_i32mat3x4;
+ using glm::lowp_i32mat4x2;
+ using glm::lowp_i32mat4x3;
+ using glm::lowp_i32mat4x4;
+ using glm::mediump_i32mat2x2;
+ using glm::mediump_i32mat2x3;
+ using glm::mediump_i32mat2x4;
+ using glm::mediump_i32mat3x2;
+ using glm::mediump_i32mat3x3;
+ using glm::mediump_i32mat3x4;
+ using glm::mediump_i32mat4x2;
+ using glm::mediump_i32mat4x3;
+ using glm::mediump_i32mat4x4;
+ using glm::highp_i32mat2x2;
+ using glm::highp_i32mat2x3;
+ using glm::highp_i32mat2x4;
+ using glm::highp_i32mat3x2;
+ using glm::highp_i32mat3x3;
+ using glm::highp_i32mat3x4;
+ using glm::highp_i32mat4x2;
+ using glm::highp_i32mat4x3;
+ using glm::highp_i32mat4x4;
+ using glm::i32mat2x2;
+ using glm::i32mat2x3;
+ using glm::i32mat2x4;
+ using glm::i32mat3x2;
+ using glm::i32mat3x3;
+ using glm::i32mat3x4;
+ using glm::i32mat4x2;
+ using glm::i32mat4x3;
+ using glm::i32mat4x4;
+ using glm::lowp_i64mat2x2;
+ using glm::lowp_i64mat2x3;
+ using glm::lowp_i64mat2x4;
+ using glm::lowp_i64mat3x2;
+ using glm::lowp_i64mat3x3;
+ using glm::lowp_i64mat3x4;
+ using glm::lowp_i64mat4x2;
+ using glm::lowp_i64mat4x3;
+ using glm::lowp_i64mat4x4;
+ using glm::mediump_i64mat2x2;
+ using glm::mediump_i64mat2x3;
+ using glm::mediump_i64mat2x4;
+ using glm::mediump_i64mat3x2;
+ using glm::mediump_i64mat3x3;
+ using glm::mediump_i64mat3x4;
+ using glm::mediump_i64mat4x2;
+ using glm::mediump_i64mat4x3;
+ using glm::mediump_i64mat4x4;
+ using glm::highp_i64mat2x2;
+ using glm::highp_i64mat2x3;
+ using glm::highp_i64mat2x4;
+ using glm::highp_i64mat3x2;
+ using glm::highp_i64mat3x3;
+ using glm::highp_i64mat3x4;
+ using glm::highp_i64mat4x2;
+ using glm::highp_i64mat4x3;
+ using glm::highp_i64mat4x4;
+ using glm::i64mat2x2;
+ using glm::i64mat2x3;
+ using glm::i64mat2x4;
+ using glm::i64mat3x2;
+ using glm::i64mat3x3;
+ using glm::i64mat3x4;
+ using glm::i64mat4x2;
+ using glm::i64mat4x3;
+ using glm::i64mat4x4;
+ using glm::lowp_umat2x2;
+ using glm::lowp_umat2x3;
+ using glm::lowp_umat2x4;
+ using glm::lowp_umat3x2;
+ using glm::lowp_umat3x3;
+ using glm::lowp_umat3x4;
+ using glm::lowp_umat4x2;
+ using glm::lowp_umat4x3;
+ using glm::lowp_umat4x4;
+ using glm::mediump_umat2x2;
+ using glm::mediump_umat2x3;
+ using glm::mediump_umat2x4;
+ using glm::mediump_umat3x2;
+ using glm::mediump_umat3x3;
+ using glm::mediump_umat3x4;
+ using glm::mediump_umat4x2;
+ using glm::mediump_umat4x3;
+ using glm::mediump_umat4x4;
+ using glm::highp_umat2x2;
+ using glm::highp_umat2x3;
+ using glm::highp_umat2x4;
+ using glm::highp_umat3x2;
+ using glm::highp_umat3x3;
+ using glm::highp_umat3x4;
+ using glm::highp_umat4x2;
+ using glm::highp_umat4x3;
+ using glm::highp_umat4x4;
+ using glm::umat2x2;
+ using glm::umat2x3;
+ using glm::umat2x4;
+ using glm::umat3x2;
+ using glm::umat3x3;
+ using glm::umat3x4;
+ using glm::umat4x2;
+ using glm::umat4x3;
+ using glm::umat4x4;
+ using glm::lowp_u8mat2x2;
+ using glm::lowp_u8mat2x3;
+ using glm::lowp_u8mat2x4;
+ using glm::lowp_u8mat3x2;
+ using glm::lowp_u8mat3x3;
+ using glm::lowp_u8mat3x4;
+ using glm::lowp_u8mat4x2;
+ using glm::lowp_u8mat4x3;
+ using glm::lowp_u8mat4x4;
+ using glm::mediump_u8mat2x2;
+ using glm::mediump_u8mat2x3;
+ using glm::mediump_u8mat2x4;
+ using glm::mediump_u8mat3x2;
+ using glm::mediump_u8mat3x3;
+ using glm::mediump_u8mat3x4;
+ using glm::mediump_u8mat4x2;
+ using glm::mediump_u8mat4x3;
+ using glm::mediump_u8mat4x4;
+ using glm::highp_u8mat2x2;
+ using glm::highp_u8mat2x3;
+ using glm::highp_u8mat2x4;
+ using glm::highp_u8mat3x2;
+ using glm::highp_u8mat3x3;
+ using glm::highp_u8mat3x4;
+ using glm::highp_u8mat4x2;
+ using glm::highp_u8mat4x3;
+ using glm::highp_u8mat4x4;
+ using glm::u8mat2x2;
+ using glm::u8mat2x3;
+ using glm::u8mat2x4;
+ using glm::u8mat3x2;
+ using glm::u8mat3x3;
+ using glm::u8mat3x4;
+ using glm::u8mat4x2;
+ using glm::u8mat4x3;
+ using glm::u8mat4x4;
+ using glm::lowp_u16mat2x2;
+ using glm::lowp_u16mat2x3;
+ using glm::lowp_u16mat2x4;
+ using glm::lowp_u16mat3x2;
+ using glm::lowp_u16mat3x3;
+ using glm::lowp_u16mat3x4;
+ using glm::lowp_u16mat4x2;
+ using glm::lowp_u16mat4x3;
+ using glm::lowp_u16mat4x4;
+ using glm::mediump_u16mat2x2;
+ using glm::mediump_u16mat2x3;
+ using glm::mediump_u16mat2x4;
+ using glm::mediump_u16mat3x2;
+ using glm::mediump_u16mat3x3;
+ using glm::mediump_u16mat3x4;
+ using glm::mediump_u16mat4x2;
+ using glm::mediump_u16mat4x3;
+ using glm::mediump_u16mat4x4;
+ using glm::highp_u16mat2x2;
+ using glm::highp_u16mat2x3;
+ using glm::highp_u16mat2x4;
+ using glm::highp_u16mat3x2;
+ using glm::highp_u16mat3x3;
+ using glm::highp_u16mat3x4;
+ using glm::highp_u16mat4x2;
+ using glm::highp_u16mat4x3;
+ using glm::highp_u16mat4x4;
+ using glm::u16mat2x2;
+ using glm::u16mat2x3;
+ using glm::u16mat2x4;
+ using glm::u16mat3x2;
+ using glm::u16mat3x3;
+ using glm::u16mat3x4;
+ using glm::u16mat4x2;
+ using glm::u16mat4x3;
+ using glm::u16mat4x4;
+ using glm::lowp_u32mat2x2;
+ using glm::lowp_u32mat2x3;
+ using glm::lowp_u32mat2x4;
+ using glm::lowp_u32mat3x2;
+ using glm::lowp_u32mat3x3;
+ using glm::lowp_u32mat3x4;
+ using glm::lowp_u32mat4x2;
+ using glm::lowp_u32mat4x3;
+ using glm::lowp_u32mat4x4;
+ using glm::mediump_u32mat2x2;
+ using glm::mediump_u32mat2x3;
+ using glm::mediump_u32mat2x4;
+ using glm::mediump_u32mat3x2;
+ using glm::mediump_u32mat3x3;
+ using glm::mediump_u32mat3x4;
+ using glm::mediump_u32mat4x2;
+ using glm::mediump_u32mat4x3;
+ using glm::mediump_u32mat4x4;
+ using glm::highp_u32mat2x2;
+ using glm::highp_u32mat2x3;
+ using glm::highp_u32mat2x4;
+ using glm::highp_u32mat3x2;
+ using glm::highp_u32mat3x3;
+ using glm::highp_u32mat3x4;
+ using glm::highp_u32mat4x2;
+ using glm::highp_u32mat4x3;
+ using glm::highp_u32mat4x4;
+ using glm::u32mat2x2;
+ using glm::u32mat2x3;
+ using glm::u32mat2x4;
+ using glm::u32mat3x2;
+ using glm::u32mat3x3;
+ using glm::u32mat3x4;
+ using glm::u32mat4x2;
+ using glm::u32mat4x3;
+ using glm::u32mat4x4;
+ using glm::lowp_u64mat2x2;
+ using glm::lowp_u64mat2x3;
+ using glm::lowp_u64mat2x4;
+ using glm::lowp_u64mat3x2;
+ using glm::lowp_u64mat3x3;
+ using glm::lowp_u64mat3x4;
+ using glm::lowp_u64mat4x2;
+ using glm::lowp_u64mat4x3;
+ using glm::lowp_u64mat4x4;
+ using glm::mediump_u64mat2x2;
+ using glm::mediump_u64mat2x3;
+ using glm::mediump_u64mat2x4;
+ using glm::mediump_u64mat3x2;
+ using glm::mediump_u64mat3x3;
+ using glm::mediump_u64mat3x4;
+ using glm::mediump_u64mat4x2;
+ using glm::mediump_u64mat4x3;
+ using glm::mediump_u64mat4x4;
+ using glm::highp_u64mat2x2;
+ using glm::highp_u64mat2x3;
+ using glm::highp_u64mat2x4;
+ using glm::highp_u64mat3x2;
+ using glm::highp_u64mat3x3;
+ using glm::highp_u64mat3x4;
+ using glm::highp_u64mat4x2;
+ using glm::highp_u64mat4x3;
+ using glm::highp_u64mat4x4;
+ using glm::u64mat2x2;
+ using glm::u64mat2x3;
+ using glm::u64mat2x4;
+ using glm::u64mat3x2;
+ using glm::u64mat3x3;
+ using glm::u64mat3x4;
+ using glm::u64mat4x2;
+ using glm::u64mat4x3;
+ using glm::u64mat4x4;
+ using glm::lowp_quat;
+ using glm::mediump_quat;
+ using glm::highp_quat;
+ using glm::quat;
+ using glm::lowp_fquat;
+ using glm::mediump_fquat;
+ using glm::highp_fquat;
+ using glm::fquat;
+ using glm::lowp_f32quat;
+ using glm::mediump_f32quat;
+ using glm::highp_f32quat;
+ using glm::f32quat;
+ using glm::lowp_dquat;
+ using glm::mediump_dquat;
+ using glm::highp_dquat;
+ using glm::dquat;
+ using glm::lowp_f64quat;
+ using glm::mediump_f64quat;
+ using glm::highp_f64quat;
+ using glm::f64quat;
+
+ // Operators
+ using glm::operator+;
+ using glm::operator-;
+ using glm::operator*;
+ using glm::operator/;
+ using glm::operator%;
+ using glm::operator^;
+ using glm::operator&;
+ using glm::operator|;
+ using glm::operator~;
+ using glm::operator<<;
+ using glm::operator>>;
+ using glm::operator==;
+ using glm::operator!=;
+ using glm::operator&&;
+ using glm::operator||;
+
+ // Core functions
+ using glm::abs;
+ using glm::acos;
+ using glm::acosh;
+ using glm::all;
+ using glm::any;
+ using glm::asin;
+ using glm::asinh;
+ using glm::atan;
+ using glm::atanh;
+ using glm::bitCount;
+ using glm::bitfieldExtract;
+ using glm::bitfieldInsert;
+ using glm::bitfieldReverse;
+ using glm::ceil;
+ using glm::clamp;
+ using glm::cos;
+ using glm::cosh;
+ using glm::cross;
+ using glm::degrees;
+ using glm::determinant;
+ using glm::distance;
+ using glm::dot;
+ using glm::equal;
+ using glm::exp;
+ using glm::exp2;
+ using glm::faceforward;
+ using glm::findLSB;
+ using glm::findMSB;
+ using glm::floatBitsToInt;
+ using glm::floatBitsToUint;
+ using glm::floor;
+ using glm::fma;
+ using glm::fract;
+ using glm::frexp;
+ using glm::greaterThan;
+ using glm::greaterThanEqual;
+ using glm::imulExtended;
+ using glm::intBitsToFloat;
+ using glm::inverse;
+ using glm::inversesqrt;
+ using glm::isinf;
+ using glm::isnan;
+ using glm::ldexp;
+ using glm::length;
+ using glm::lessThan;
+ using glm::lessThanEqual;
+ using glm::log;
+ using glm::log2;
+ using glm::matrixCompMult;
+ using glm::max;
+ using glm::min;
+ using glm::mix;
+ using glm::mod;
+ using glm::modf;
+ using glm::normalize;
+ using glm::notEqual;
+ using glm::not_;
+ using glm::outerProduct;
+ using glm::packDouble2x32;
+ using glm::packHalf2x16;
+ using glm::packSnorm2x16;
+ using glm::packSnorm4x8;
+ using glm::packUnorm2x16;
+ using glm::packUnorm4x8;
+ using glm::pow;
+ using glm::radians;
+ using glm::reflect;
+ using glm::refract;
+ using glm::round;
+ using glm::roundEven;
+ using glm::sign;
+ using glm::sin;
+ using glm::sinh;
+ using glm::smoothstep;
+ using glm::sqrt;
+ using glm::step;
+ using glm::tan;
+ using glm::tanh;
+ using glm::transpose;
+ using glm::trunc;
+ using glm::uaddCarry;
+ using glm::uintBitsToFloat;
+ using glm::umulExtended;
+ using glm::unpackDouble2x32;
+ using glm::unpackHalf2x16;
+ using glm::unpackSnorm2x16;
+ using glm::unpackSnorm4x8;
+ using glm::unpackUnorm2x16;
+ using glm::unpackUnorm4x8;
+ using glm::usubBorrow;
+
+# ifdef GLM_GTC_INLINE_NAMESPACE
+ inline
+# endif
+ namespace gtc {
+# if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+ using glm::aligned_highp_vec1;
+ using glm::aligned_mediump_vec1;
+ using glm::aligned_lowp_vec1;
+ using glm::aligned_highp_dvec1;
+ using glm::aligned_mediump_dvec1;
+ using glm::aligned_lowp_dvec1;
+ using glm::aligned_highp_ivec1;
+ using glm::aligned_mediump_ivec1;
+ using glm::aligned_lowp_ivec1;
+ using glm::aligned_highp_uvec1;
+ using glm::aligned_mediump_uvec1;
+ using glm::aligned_lowp_uvec1;
+ using glm::aligned_highp_bvec1;
+ using glm::aligned_mediump_bvec1;
+ using glm::aligned_lowp_bvec1;
+ using glm::packed_highp_vec1;
+ using glm::packed_mediump_vec1;
+ using glm::packed_lowp_vec1;
+ using glm::packed_highp_dvec1;
+ using glm::packed_mediump_dvec1;
+ using glm::packed_lowp_dvec1;
+ using glm::packed_highp_ivec1;
+ using glm::packed_mediump_ivec1;
+ using glm::packed_lowp_ivec1;
+ using glm::packed_highp_uvec1;
+ using glm::packed_mediump_uvec1;
+ using glm::packed_lowp_uvec1;
+ using glm::packed_highp_bvec1;
+ using glm::packed_mediump_bvec1;
+ using glm::packed_lowp_bvec1;
+ using glm::aligned_highp_vec2;
+ using glm::aligned_mediump_vec2;
+ using glm::aligned_lowp_vec2;
+ using glm::aligned_highp_dvec2;
+ using glm::aligned_mediump_dvec2;
+ using glm::aligned_lowp_dvec2;
+ using glm::aligned_highp_ivec2;
+ using glm::aligned_mediump_ivec2;
+ using glm::aligned_lowp_ivec2;
+ using glm::aligned_highp_uvec2;
+ using glm::aligned_mediump_uvec2;
+ using glm::aligned_lowp_uvec2;
+ using glm::aligned_highp_bvec2;
+ using glm::aligned_mediump_bvec2;
+ using glm::aligned_lowp_bvec2;
+ using glm::packed_highp_vec2;
+ using glm::packed_mediump_vec2;
+ using glm::packed_lowp_vec2;
+ using glm::packed_highp_dvec2;
+ using glm::packed_mediump_dvec2;
+ using glm::packed_lowp_dvec2;
+ using glm::packed_highp_ivec2;
+ using glm::packed_mediump_ivec2;
+ using glm::packed_lowp_ivec2;
+ using glm::packed_highp_uvec2;
+ using glm::packed_mediump_uvec2;
+ using glm::packed_lowp_uvec2;
+ using glm::packed_highp_bvec2;
+ using glm::packed_mediump_bvec2;
+ using glm::packed_lowp_bvec2;
+ using glm::aligned_highp_vec3;
+ using glm::aligned_mediump_vec3;
+ using glm::aligned_lowp_vec3;
+ using glm::aligned_highp_dvec3;
+ using glm::aligned_mediump_dvec3;
+ using glm::aligned_lowp_dvec3;
+ using glm::aligned_highp_ivec3;
+ using glm::aligned_mediump_ivec3;
+ using glm::aligned_lowp_ivec3;
+ using glm::aligned_highp_uvec3;
+ using glm::aligned_mediump_uvec3;
+ using glm::aligned_lowp_uvec3;
+ using glm::aligned_highp_bvec3;
+ using glm::aligned_mediump_bvec3;
+ using glm::aligned_lowp_bvec3;
+ using glm::packed_highp_vec3;
+ using glm::packed_mediump_vec3;
+ using glm::packed_lowp_vec3;
+ using glm::packed_highp_dvec3;
+ using glm::packed_mediump_dvec3;
+ using glm::packed_lowp_dvec3;
+ using glm::packed_highp_ivec3;
+ using glm::packed_mediump_ivec3;
+ using glm::packed_lowp_ivec3;
+ using glm::packed_highp_uvec3;
+ using glm::packed_mediump_uvec3;
+ using glm::packed_lowp_uvec3;
+ using glm::packed_highp_bvec3;
+ using glm::packed_mediump_bvec3;
+ using glm::packed_lowp_bvec3;
+ using glm::aligned_highp_vec4;
+ using glm::aligned_mediump_vec4;
+ using glm::aligned_lowp_vec4;
+ using glm::aligned_highp_dvec4;
+ using glm::aligned_mediump_dvec4;
+ using glm::aligned_lowp_dvec4;
+ using glm::aligned_highp_ivec4;
+ using glm::aligned_mediump_ivec4;
+ using glm::aligned_lowp_ivec4;
+ using glm::aligned_highp_uvec4;
+ using glm::aligned_mediump_uvec4;
+ using glm::aligned_lowp_uvec4;
+ using glm::aligned_highp_bvec4;
+ using glm::aligned_mediump_bvec4;
+ using glm::aligned_lowp_bvec4;
+ using glm::packed_highp_vec4;
+ using glm::packed_mediump_vec4;
+ using glm::packed_lowp_vec4;
+ using glm::packed_highp_dvec4;
+ using glm::packed_mediump_dvec4;
+ using glm::packed_lowp_dvec4;
+ using glm::packed_highp_ivec4;
+ using glm::packed_mediump_ivec4;
+ using glm::packed_lowp_ivec4;
+ using glm::packed_highp_uvec4;
+ using glm::packed_mediump_uvec4;
+ using glm::packed_lowp_uvec4;
+ using glm::packed_highp_bvec4;
+ using glm::packed_mediump_bvec4;
+ using glm::packed_lowp_bvec4;
+ using glm::aligned_highp_mat2;
+ using glm::aligned_mediump_mat2;
+ using glm::aligned_lowp_mat2;
+ using glm::aligned_highp_dmat2;
+ using glm::aligned_mediump_dmat2;
+ using glm::aligned_lowp_dmat2;
+ using glm::packed_highp_mat2;
+ using glm::packed_mediump_mat2;
+ using glm::packed_lowp_mat2;
+ using glm::packed_highp_dmat2;
+ using glm::packed_mediump_dmat2;
+ using glm::packed_lowp_dmat2;
+ using glm::aligned_highp_mat3;
+ using glm::aligned_mediump_mat3;
+ using glm::aligned_lowp_mat3;
+ using glm::aligned_highp_dmat3;
+ using glm::aligned_mediump_dmat3;
+ using glm::aligned_lowp_dmat3;
+ using glm::packed_highp_mat3;
+ using glm::packed_mediump_mat3;
+ using glm::packed_lowp_mat3;
+ using glm::packed_highp_dmat3;
+ using glm::packed_mediump_dmat3;
+ using glm::packed_lowp_dmat3;
+ using glm::aligned_highp_mat4;
+ using glm::aligned_mediump_mat4;
+ using glm::aligned_lowp_mat4;
+ using glm::aligned_highp_dmat4;
+ using glm::aligned_mediump_dmat4;
+ using glm::aligned_lowp_dmat4;
+ using glm::packed_highp_mat4;
+ using glm::packed_mediump_mat4;
+ using glm::packed_lowp_mat4;
+ using glm::packed_highp_dmat4;
+ using glm::packed_mediump_dmat4;
+ using glm::packed_lowp_dmat4;
+ using glm::aligned_highp_mat2x2;
+ using glm::aligned_mediump_mat2x2;
+ using glm::aligned_lowp_mat2x2;
+ using glm::aligned_highp_dmat2x2;
+ using glm::aligned_mediump_dmat2x2;
+ using glm::aligned_lowp_dmat2x2;
+ using glm::packed_highp_mat2x2;
+ using glm::packed_mediump_mat2x2;
+ using glm::packed_lowp_mat2x2;
+ using glm::packed_highp_dmat2x2;
+ using glm::packed_mediump_dmat2x2;
+ using glm::packed_lowp_dmat2x2;
+ using glm::aligned_highp_mat2x3;
+ using glm::aligned_mediump_mat2x3;
+ using glm::aligned_lowp_mat2x3;
+ using glm::aligned_highp_dmat2x3;
+ using glm::aligned_mediump_dmat2x3;
+ using glm::aligned_lowp_dmat2x3;
+ using glm::packed_highp_mat2x3;
+ using glm::packed_mediump_mat2x3;
+ using glm::packed_lowp_mat2x3;
+ using glm::packed_highp_dmat2x3;
+ using glm::packed_mediump_dmat2x3;
+ using glm::packed_lowp_dmat2x3;
+ using glm::aligned_highp_mat2x4;
+ using glm::aligned_mediump_mat2x4;
+ using glm::aligned_lowp_mat2x4;
+ using glm::aligned_highp_dmat2x4;
+ using glm::aligned_mediump_dmat2x4;
+ using glm::aligned_lowp_dmat2x4;
+ using glm::packed_highp_mat2x4;
+ using glm::packed_mediump_mat2x4;
+ using glm::packed_lowp_mat2x4;
+ using glm::packed_highp_dmat2x4;
+ using glm::packed_mediump_dmat2x4;
+ using glm::packed_lowp_dmat2x4;
+ using glm::aligned_highp_mat3x2;
+ using glm::aligned_mediump_mat3x2;
+ using glm::aligned_lowp_mat3x2;
+ using glm::aligned_highp_dmat3x2;
+ using glm::aligned_mediump_dmat3x2;
+ using glm::aligned_lowp_dmat3x2;
+ using glm::packed_highp_mat3x2;
+ using glm::packed_mediump_mat3x2;
+ using glm::packed_lowp_mat3x2;
+ using glm::packed_highp_dmat3x2;
+ using glm::packed_mediump_dmat3x2;
+ using glm::packed_lowp_dmat3x2;
+ using glm::aligned_highp_mat3x3;
+ using glm::aligned_mediump_mat3x3;
+ using glm::aligned_lowp_mat3x3;
+ using glm::aligned_highp_dmat3x3;
+ using glm::aligned_mediump_dmat3x3;
+ using glm::aligned_lowp_dmat3x3;
+ using glm::packed_highp_mat3x3;
+ using glm::packed_mediump_mat3x3;
+ using glm::packed_lowp_mat3x3;
+ using glm::packed_highp_dmat3x3;
+ using glm::packed_mediump_dmat3x3;
+ using glm::packed_lowp_dmat3x3;
+ using glm::aligned_highp_mat3x4;
+ using glm::aligned_mediump_mat3x4;
+ using glm::aligned_lowp_mat3x4;
+ using glm::aligned_highp_dmat3x4;
+ using glm::aligned_mediump_dmat3x4;
+ using glm::aligned_lowp_dmat3x4;
+ using glm::packed_highp_mat3x4;
+ using glm::packed_mediump_mat3x4;
+ using glm::packed_lowp_mat3x4;
+ using glm::packed_highp_dmat3x4;
+ using glm::packed_mediump_dmat3x4;
+ using glm::packed_lowp_dmat3x4;
+ using glm::aligned_highp_mat4x2;
+ using glm::aligned_mediump_mat4x2;
+ using glm::aligned_lowp_mat4x2;
+ using glm::aligned_highp_dmat4x2;
+ using glm::aligned_mediump_dmat4x2;
+ using glm::aligned_lowp_dmat4x2;
+ using glm::packed_highp_mat4x2;
+ using glm::packed_mediump_mat4x2;
+ using glm::packed_lowp_mat4x2;
+ using glm::packed_highp_dmat4x2;
+ using glm::packed_mediump_dmat4x2;
+ using glm::packed_lowp_dmat4x2;
+ using glm::aligned_highp_mat4x3;
+ using glm::aligned_mediump_mat4x3;
+ using glm::aligned_lowp_mat4x3;
+ using glm::aligned_highp_dmat4x3;
+ using glm::aligned_mediump_dmat4x3;
+ using glm::aligned_lowp_dmat4x3;
+ using glm::packed_highp_mat4x3;
+ using glm::packed_mediump_mat4x3;
+ using glm::packed_lowp_mat4x3;
+ using glm::packed_highp_dmat4x3;
+ using glm::packed_mediump_dmat4x3;
+ using glm::packed_lowp_dmat4x3;
+ using glm::aligned_highp_mat4x4;
+ using glm::aligned_mediump_mat4x4;
+ using glm::aligned_lowp_mat4x4;
+ using glm::aligned_highp_dmat4x4;
+ using glm::aligned_mediump_dmat4x4;
+ using glm::aligned_lowp_dmat4x4;
+ using glm::packed_highp_mat4x4;
+ using glm::packed_mediump_mat4x4;
+ using glm::packed_lowp_mat4x4;
+ using glm::packed_highp_dmat4x4;
+ using glm::packed_mediump_dmat4x4;
+ using glm::packed_lowp_dmat4x4;
+# if(defined(GLM_PRECISION_LOWP_FLOAT))
+ using glm::aligned_vec1;
+ using glm::aligned_vec2;
+ using glm::aligned_vec3;
+ using glm::aligned_vec4;
+ using glm::packed_vec1;
+ using glm::packed_vec2;
+ using glm::packed_vec3;
+ using glm::packed_vec4;
+ using glm::aligned_mat2;
+ using glm::aligned_mat3;
+ using glm::aligned_mat4;
+ using glm::packed_mat2;
+ using glm::packed_mat3;
+ using glm::packed_mat4;
+ using glm::aligned_mat2x2;
+ using glm::aligned_mat2x3;
+ using glm::aligned_mat2x4;
+ using glm::aligned_mat3x2;
+ using glm::aligned_mat3x3;
+ using glm::aligned_mat3x4;
+ using glm::aligned_mat4x2;
+ using glm::aligned_mat4x3;
+ using glm::aligned_mat4x4;
+ using glm::packed_mat2x2;
+ using glm::packed_mat2x3;
+ using glm::packed_mat2x4;
+ using glm::packed_mat3x2;
+ using glm::packed_mat3x3;
+ using glm::packed_mat3x4;
+ using glm::packed_mat4x2;
+ using glm::packed_mat4x3;
+ using glm::packed_mat4x4;
+# elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+ using glm::aligned_vec1;
+ using glm::aligned_vec2;
+ using glm::aligned_vec3;
+ using glm::aligned_vec4;
+ using glm::packed_vec1;
+ using glm::packed_vec2;
+ using glm::packed_vec3;
+ using glm::packed_vec4;
+ using glm::aligned_mat2;
+ using glm::aligned_mat3;
+ using glm::aligned_mat4;
+ using glm::packed_mat2;
+ using glm::packed_mat3;
+ using glm::packed_mat4;
+ using glm::aligned_mat2x2;
+ using glm::aligned_mat2x3;
+ using glm::aligned_mat2x4;
+ using glm::aligned_mat3x2;
+ using glm::aligned_mat3x3;
+ using glm::aligned_mat3x4;
+ using glm::aligned_mat4x2;
+ using glm::aligned_mat4x3;
+ using glm::aligned_mat4x4;
+ using glm::packed_mat2x2;
+ using glm::packed_mat2x3;
+ using glm::packed_mat2x4;
+ using glm::packed_mat3x2;
+ using glm::packed_mat3x3;
+ using glm::packed_mat3x4;
+ using glm::packed_mat4x2;
+ using glm::packed_mat4x3;
+ using glm::packed_mat4x4;
+# else //defined(GLM_PRECISION_HIGHP_FLOAT)
+ using glm::aligned_vec1;
+ using glm::aligned_vec2;
+ using glm::aligned_vec3;
+ using glm::aligned_vec4;
+ using glm::packed_vec1;
+ using glm::packed_vec2;
+ using glm::packed_vec3;
+ using glm::packed_vec4;
+ using glm::aligned_mat2;
+ using glm::aligned_mat3;
+ using glm::aligned_mat4;
+ using glm::packed_mat2;
+ using glm::packed_mat3;
+ using glm::packed_mat4;
+ using glm::aligned_mat2x2;
+ using glm::aligned_mat2x3;
+ using glm::aligned_mat2x4;
+ using glm::aligned_mat3x2;
+ using glm::aligned_mat3x3;
+ using glm::aligned_mat3x4;
+ using glm::aligned_mat4x2;
+ using glm::aligned_mat4x3;
+ using glm::aligned_mat4x4;
+ using glm::packed_mat2x2;
+ using glm::packed_mat2x3;
+ using glm::packed_mat2x4;
+ using glm::packed_mat3x2;
+ using glm::packed_mat3x3;
+ using glm::packed_mat3x4;
+ using glm::packed_mat4x2;
+ using glm::packed_mat4x3;
+ using glm::packed_mat4x4;
+# endif//GLM_PRECISION
+# if(defined(GLM_PRECISION_LOWP_DOUBLE))
+ using glm::aligned_dvec1;
+ using glm::aligned_dvec2;
+ using glm::aligned_dvec3;
+ using glm::aligned_dvec4;
+ using glm::packed_dvec1;
+ using glm::packed_dvec2;
+ using glm::packed_dvec3;
+ using glm::packed_dvec4;
+ using glm::aligned_dmat2;
+ using glm::aligned_dmat3;
+ using glm::aligned_dmat4;
+ using glm::packed_dmat2;
+ using glm::packed_dmat3;
+ using glm::packed_dmat4;
+ using glm::aligned_dmat2x2;
+ using glm::aligned_dmat2x3;
+ using glm::aligned_dmat2x4;
+ using glm::aligned_dmat3x2;
+ using glm::aligned_dmat3x3;
+ using glm::aligned_dmat3x4;
+ using glm::aligned_dmat4x2;
+ using glm::aligned_dmat4x3;
+ using glm::aligned_dmat4x4;
+ using glm::packed_dmat2x2;
+ using glm::packed_dmat2x3;
+ using glm::packed_dmat2x4;
+ using glm::packed_dmat3x2;
+ using glm::packed_dmat3x3;
+ using glm::packed_dmat3x4;
+ using glm::packed_dmat4x2;
+ using glm::packed_dmat4x3;
+ using glm::packed_dmat4x4;
+# elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+ using glm::aligned_dvec1;
+ using glm::aligned_dvec2;
+ using glm::aligned_dvec3;
+ using glm::aligned_dvec4;
+ using glm::packed_dvec1;
+ using glm::packed_dvec2;
+ using glm::packed_dvec3;
+ using glm::packed_dvec4;
+ using glm::aligned_dmat2;
+ using glm::aligned_dmat3;
+ using glm::aligned_dmat4;
+ using glm::packed_dmat2;
+ using glm::packed_dmat3;
+ using glm::packed_dmat4;
+ using glm::aligned_dmat2x2;
+ using glm::aligned_dmat2x3;
+ using glm::aligned_dmat2x4;
+ using glm::aligned_dmat3x2;
+ using glm::aligned_dmat3x3;
+ using glm::aligned_dmat3x4;
+ using glm::aligned_dmat4x2;
+ using glm::aligned_dmat4x3;
+ using glm::aligned_dmat4x4;
+ using glm::packed_dmat2x2;
+ using glm::packed_dmat2x3;
+ using glm::packed_dmat2x4;
+ using glm::packed_dmat3x2;
+ using glm::packed_dmat3x3;
+ using glm::packed_dmat3x4;
+ using glm::packed_dmat4x2;
+ using glm::packed_dmat4x3;
+ using glm::packed_dmat4x4;
+# else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+ using glm::aligned_dvec1;
+ using glm::aligned_dvec2;
+ using glm::aligned_dvec3;
+ using glm::aligned_dvec4;
+ using glm::packed_dvec1;
+ using glm::packed_dvec2;
+ using glm::packed_dvec3;
+ using glm::packed_dvec4;
+ using glm::aligned_dmat2;
+ using glm::aligned_dmat3;
+ using glm::aligned_dmat4;
+ using glm::packed_dmat2;
+ using glm::packed_dmat3;
+ using glm::packed_dmat4;
+ using glm::aligned_dmat2x2;
+ using glm::aligned_dmat2x3;
+ using glm::aligned_dmat2x4;
+ using glm::aligned_dmat3x2;
+ using glm::aligned_dmat3x3;
+ using glm::aligned_dmat3x4;
+ using glm::aligned_dmat4x2;
+ using glm::aligned_dmat4x3;
+ using glm::aligned_dmat4x4;
+ using glm::packed_dmat2x2;
+ using glm::packed_dmat2x3;
+ using glm::packed_dmat2x4;
+ using glm::packed_dmat3x2;
+ using glm::packed_dmat3x3;
+ using glm::packed_dmat3x4;
+ using glm::packed_dmat4x2;
+ using glm::packed_dmat4x3;
+ using glm::packed_dmat4x4;
+# endif//GLM_PRECISION
+# if(defined(GLM_PRECISION_LOWP_INT))
+ using glm::aligned_ivec1;
+ using glm::aligned_ivec2;
+ using glm::aligned_ivec3;
+ using glm::aligned_ivec4;
+# elif(defined(GLM_PRECISION_MEDIUMP_INT))
+ using glm::aligned_ivec1;
+ using glm::aligned_ivec2;
+ using glm::aligned_ivec3;
+ using glm::aligned_ivec4;
+# else //defined(GLM_PRECISION_HIGHP_INT)
+ using glm::aligned_ivec1;
+ using glm::aligned_ivec2;
+ using glm::aligned_ivec3;
+ using glm::aligned_ivec4;
+ using glm::packed_ivec1;
+ using glm::packed_ivec2;
+ using glm::packed_ivec3;
+ using glm::packed_ivec4;
+# endif//GLM_PRECISION
+# if(defined(GLM_PRECISION_LOWP_UINT))
+ using glm::aligned_uvec1;
+ using glm::aligned_uvec2;
+ using glm::aligned_uvec3;
+ using glm::aligned_uvec4;
+# elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+ using glm::aligned_uvec1;
+ using glm::aligned_uvec2;
+ using glm::aligned_uvec3;
+ using glm::aligned_uvec4;
+# else //defined(GLM_PRECISION_HIGHP_UINT)
+ using glm::aligned_uvec1;
+ using glm::aligned_uvec2;
+ using glm::aligned_uvec3;
+ using glm::aligned_uvec4;
+ using glm::packed_uvec1;
+ using glm::packed_uvec2;
+ using glm::packed_uvec3;
+ using glm::packed_uvec4;
+# endif//GLM_PRECISION
+# if(defined(GLM_PRECISION_LOWP_BOOL))
+ using glm::aligned_bvec1;
+ using glm::aligned_bvec2;
+ using glm::aligned_bvec3;
+ using glm::aligned_bvec4;
+# elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
+ using glm::aligned_bvec1;
+ using glm::aligned_bvec2;
+ using glm::aligned_bvec3;
+ using glm::aligned_bvec4;
+# else //defined(GLM_PRECISION_HIGHP_BOOL)
+ using glm::aligned_bvec1;
+ using glm::aligned_bvec2;
+ using glm::aligned_bvec3;
+ using glm::aligned_bvec4;
+ using glm::packed_bvec1;
+ using glm::packed_bvec2;
+ using glm::packed_bvec3;
+ using glm::packed_bvec4;
+# endif//GLM_PRECISION
+# endif
+
+
+ using glm::abs;
+ using glm::acos;
+ using glm::acosh;
+ using glm::acot;
+ using glm::acoth;
+ using glm::acsc;
+ using glm::acsch;
+ using glm::affineInverse;
+ using glm::all;
+ using glm::angle;
+ using glm::angleAxis;
+ using glm::any;
+ using glm::asec;
+ using glm::asech;
+ using glm::asin;
+ using glm::asinh;
+ using glm::atan;
+ using glm::atanh;
+ using glm::axis;
+ using glm::ballRand;
+ using glm::bitCount;
+ using glm::bitfieldDeinterleave;
+ using glm::bitfieldExtract;
+ using glm::bitfieldFillOne;
+ using glm::bitfieldFillZero;
+ using glm::bitfieldInsert;
+ using glm::bitfieldInterleave;
+ using glm::bitfieldReverse;
+ using glm::bitfieldRotateLeft;
+ using glm::bitfieldRotateRight;
+ using glm::ceil;
+ using glm::ceilMultiple;
+ using glm::ceilPowerOfTwo;
+ using glm::circularRand;
+ using glm::clamp;
+ using glm::column;
+ using glm::conjugate;
+ using glm::convertLinearToSRGB;
+ using glm::convertSRGBToLinear;
+ using glm::cos;
+ using glm::cos_one_over_two;
+ using glm::cosh;
+ using glm::cot;
+ using glm::coth;
+ using glm::cross;
+ using glm::csc;
+ using glm::csch;
+ using glm::degrees;
+ using glm::determinant;
+ using glm::diskRand;
+ using glm::distance;
+ using glm::dot;
+ using glm::e;
+ using glm::epsilon;
+ using glm::epsilonEqual;
+ using glm::epsilonNotEqual;
+ using glm::equal;
+ using glm::euler;
+ using glm::eulerAngles;
+ using glm::exp;
+ using glm::exp2;
+ using glm::faceforward;
+ using glm::fclamp;
+ using glm::findLSB;
+ using glm::findMSB;
+ using glm::floatBitsToInt;
+ using glm::floatBitsToUint;
+ using glm::float_distance;
+ using glm::floor;
+ using glm::floorMultiple;
+ using glm::floorPowerOfTwo;
+ using glm::fma;
+ using glm::fmax;
+ using glm::fmin;
+ using glm::four_over_pi;
+ using glm::fract;
+ using glm::frexp;
+ using glm::frustum;
+ using glm::frustumLH;
+ using glm::frustumLH_NO;
+ using glm::frustumLH_ZO;
+ using glm::frustumNO;
+ using glm::frustumRH;
+ using glm::frustumRH_NO;
+ using glm::frustumRH_ZO;
+ using glm::frustumZO;
+ using glm::gaussRand;
+ using glm::golden_ratio;
+ using glm::greaterThan;
+ using glm::greaterThanEqual;
+ using glm::half_pi;
+ using glm::identity;
+ using glm::imulExtended;
+ using glm::infinitePerspective;
+ using glm::infinitePerspectiveLH;
+ using glm::infinitePerspectiveRH;
+ using glm::intBitsToFloat;
+ using glm::inverse;
+ using glm::inverseTranspose;
+ using glm::inversesqrt;
+ using glm::iround;
+ using glm::isinf;
+ using glm::isnan;
+ using glm::ldexp;
+ using glm::length;
+ using glm::lerp;
+ using glm::lessThan;
+ using glm::lessThanEqual;
+ using glm::linearRand;
+ using glm::ln_ln_two;
+ using glm::ln_ten;
+ using glm::ln_two;
+ using glm::log;
+ using glm::log2;
+ using glm::lookAt;
+ using glm::lookAtLH;
+ using glm::lookAtRH;
+ using glm::make_mat2;
+ using glm::make_mat2x2;
+ using glm::make_mat2x3;
+ using glm::make_mat2x4;
+ using glm::make_mat3;
+ using glm::make_mat3x2;
+ using glm::make_mat3x3;
+ using glm::make_mat3x4;
+ using glm::make_mat4;
+ using glm::make_mat4x2;
+ using glm::make_mat4x3;
+ using glm::make_mat4x4;
+ using glm::make_quat;
+ using glm::make_vec1;
+ using glm::make_vec2;
+ using glm::make_vec3;
+ using glm::make_vec4;
+ using glm::mask;
+ using glm::mat3_cast;
+ using glm::mat4_cast;
+ using glm::matrixCompMult;
+ using glm::max;
+ using glm::min;
+ using glm::mirrorClamp;
+ using glm::mirrorRepeat;
+ using glm::mix;
+ using glm::mod;
+ using glm::modf;
+ using glm::next_float;
+ using glm::normalize;
+ using glm::notEqual;
+ using glm::not_;
+ using glm::one;
+ using glm::one_over_pi;
+ using glm::one_over_root_two;
+ using glm::one_over_two_pi;
+ using glm::ortho;
+ using glm::orthoLH;
+ using glm::orthoLH_NO;
+ using glm::orthoLH_ZO;
+ using glm::orthoNO;
+ using glm::orthoRH;
+ using glm::orthoRH_NO;
+ using glm::orthoRH_ZO;
+ using glm::orthoZO;
+ using glm::outerProduct;
+ using glm::packF2x11_1x10;
+ using glm::packF3x9_E1x5;
+ using glm::packHalf;
+ using glm::packHalf1x16;
+ using glm::packHalf4x16;
+ using glm::packI3x10_1x2;
+ using glm::packInt2x16;
+ using glm::packInt2x32;
+ using glm::packInt2x8;
+ using glm::packInt4x16;
+ using glm::packInt4x8;
+ using glm::packRGBM;
+ using glm::packSnorm;
+ using glm::packSnorm1x16;
+ using glm::packSnorm1x8;
+ using glm::packSnorm2x8;
+ using glm::packSnorm3x10_1x2;
+ using glm::packSnorm4x16;
+ using glm::packU3x10_1x2;
+ using glm::packUint2x16;
+ using glm::packUint2x32;
+ using glm::packUint2x8;
+ using glm::packUint4x16;
+ using glm::packUint4x8;
+ using glm::packUnorm;
+ using glm::packUnorm1x16;
+ using glm::packUnorm1x5_1x6_1x5;
+ using glm::packUnorm1x8;
+ using glm::packUnorm2x3_1x2;
+ using glm::packUnorm2x4;
+ using glm::packUnorm2x8;
+ using glm::packUnorm3x10_1x2;
+ using glm::packUnorm3x5_1x1;
+ using glm::packUnorm4x16;
+ using glm::packUnorm4x4;
+ using glm::perlin;
+ using glm::perspective;
+ using glm::perspectiveFov;
+ using glm::perspectiveFovLH;
+ using glm::perspectiveFovLH_NO;
+ using glm::perspectiveFovLH_ZO;
+ using glm::perspectiveFovNO;
+ using glm::perspectiveFovRH;
+ using glm::perspectiveFovRH_NO;
+ using glm::perspectiveFovRH_ZO;
+ using glm::perspectiveFovZO;
+ using glm::perspectiveLH;
+ using glm::perspectiveLH_NO;
+ using glm::perspectiveLH_ZO;
+ using glm::perspectiveNO;
+ using glm::perspectiveRH;
+ using glm::perspectiveRH_NO;
+ using glm::perspectiveRH_ZO;
+ using glm::perspectiveZO;
+ using glm::pi;
+ using glm::pickMatrix;
+ using glm::pitch;
+ using glm::pow;
+ using glm::prev_float;
+ using glm::project;
+ using glm::projectNO;
+ using glm::projectZO;
+ using glm::quarter_pi;
+ using glm::quatLookAt;
+ using glm::quatLookAtLH;
+ using glm::quatLookAtRH;
+ using glm::quat_cast;
+ using glm::radians;
+ using glm::reflect;
+ using glm::refract;
+ using glm::repeat;
+ using glm::roll;
+ using glm::root_five;
+ using glm::root_half_pi;
+ using glm::root_ln_four;
+ using glm::root_pi;
+ using glm::root_three;
+ using glm::root_two;
+ using glm::root_two_pi;
+ using glm::rotate;
+ using glm::round;
+ using glm::roundEven;
+ using glm::roundMultiple;
+ using glm::roundPowerOfTwo;
+ using glm::row;
+ using glm::scale;
+ using glm::sec;
+ using glm::sech;
+ using glm::sign;
+ using glm::simplex;
+ using glm::sin;
+ using glm::sinh;
+ using glm::slerp;
+ using glm::smoothstep;
+ using glm::sphericalRand;
+ using glm::sqrt;
+ using glm::step;
+ using glm::tan;
+ using glm::tanh;
+ using glm::third;
+ using glm::three_over_two_pi;
+ using glm::translate;
+ using glm::transpose;
+ using glm::trunc;
+ using glm::tweakedInfinitePerspective;
+ using glm::two_over_pi;
+ using glm::two_over_root_pi;
+ using glm::two_pi;
+ using glm::two_thirds;
+ using glm::uaddCarry;
+ using glm::uintBitsToFloat;
+ using glm::umulExtended;
+ using glm::unProject;
+ using glm::unProjectNO;
+ using glm::unProjectZO;
+ using glm::unpackF2x11_1x10;
+ using glm::unpackF3x9_E1x5;
+ using glm::unpackHalf;
+ using glm::unpackHalf1x16;
+ using glm::unpackHalf4x16;
+ using glm::unpackI3x10_1x2;
+ using glm::unpackInt2x16;
+ using glm::unpackInt2x32;
+ using glm::unpackInt2x8;
+ using glm::unpackInt4x16;
+ using glm::unpackInt4x8;
+ using glm::unpackRGBM;
+ using glm::unpackSnorm;
+ using glm::unpackSnorm1x16;
+ using glm::unpackSnorm1x8;
+ using glm::unpackSnorm2x8;
+ using glm::unpackSnorm3x10_1x2;
+ using glm::unpackSnorm4x16;
+ using glm::unpackU3x10_1x2;
+ using glm::unpackUint2x16;
+ using glm::unpackUint2x32;
+ using glm::unpackUint2x8;
+ using glm::unpackUint4x16;
+ using glm::unpackUint4x8;
+ using glm::unpackUnorm;
+ using glm::unpackUnorm1x16;
+ using glm::unpackUnorm1x5_1x6_1x5;
+ using glm::unpackUnorm1x8;
+ using glm::unpackUnorm2x3_1x2;
+ using glm::unpackUnorm2x4;
+ using glm::unpackUnorm2x8;
+ using glm::unpackUnorm3x10_1x2;
+ using glm::unpackUnorm3x5_1x1;
+ using glm::unpackUnorm4x16;
+ using glm::unpackUnorm4x4;
+ using glm::uround;
+ using glm::usubBorrow;
+ using glm::value_ptr;
+ using glm::yaw;
+ using glm::zero;
+ }
+
+# ifdef GLM_EXT_INLINE_NAMESPACE
+ inline
+# endif
+ namespace ext {
+ using glm::abs;
+ using glm::acos;
+ using glm::acosh;
+ using glm::acot;
+ using glm::acoth;
+ using glm::acsc;
+ using glm::acsch;
+ using glm::all;
+ using glm::angle;
+ using glm::angleAxis;
+ using glm::any;
+ using glm::asec;
+ using glm::asech;
+ using glm::asin;
+ using glm::asinh;
+ using glm::atan;
+ using glm::atanh;
+ using glm::axis;
+ using glm::ceil;
+ using glm::clamp;
+ using glm::conjugate;
+ using glm::cos;
+ using glm::cos_one_over_two;
+ using glm::cosh;
+ using glm::cot;
+ using glm::coth;
+ using glm::cross;
+ using glm::csc;
+ using glm::csch;
+ using glm::degrees;
+ using glm::determinant;
+ using glm::distance;
+ using glm::dot;
+ using glm::e;
+ using glm::epsilon;
+ using glm::equal;
+ using glm::euler;
+ using glm::exp;
+ using glm::exp2;
+ using glm::faceforward;
+ using glm::fclamp;
+ using glm::findNSB;
+ using glm::floatBitsToInt;
+ using glm::floatBitsToUint;
+ using glm::floatDistance;
+ using glm::floor;
+ using glm::fma;
+ using glm::fmax;
+ using glm::fmin;
+ using glm::four_over_pi;
+ using glm::fract;
+ using glm::frexp;
+ using glm::frustum;
+ using glm::frustumLH;
+ using glm::frustumLH_NO;
+ using glm::frustumLH_ZO;
+ using glm::frustumNO;
+ using glm::frustumRH;
+ using glm::frustumRH_NO;
+ using glm::frustumRH_ZO;
+ using glm::frustumZO;
+ using glm::golden_ratio;
+ using glm::greaterThan;
+ using glm::greaterThanEqual;
+ using glm::half_pi;
+ using glm::identity;
+ using glm::infinitePerspective;
+ using glm::infinitePerspectiveLH;
+ using glm::infinitePerspectiveRH;
+ using glm::intBitsToFloat;
+ using glm::inverse;
+ using glm::inversesqrt;
+ using glm::iround;
+ using glm::isMultiple;
+ using glm::isPowerOfTwo;
+ using glm::isinf;
+ using glm::isnan;
+ using glm::ldexp;
+ using glm::length;
+ using glm::lerp;
+ using glm::lessThan;
+ using glm::lessThanEqual;
+ using glm::ln_ln_two;
+ using glm::ln_ten;
+ using glm::ln_two;
+ using glm::log;
+ using glm::log2;
+ using glm::lookAt;
+ using glm::lookAtLH;
+ using glm::lookAtRH;
+ using glm::matrixCompMult;
+ using glm::max;
+ using glm::min;
+ using glm::mirrorClamp;
+ using glm::mirrorRepeat;
+ using glm::mix;
+ using glm::mod;
+ using glm::modf;
+ using glm::nextFloat;
+ using glm::nextMultiple;
+ using glm::nextPowerOfTwo;
+ using glm::normalize;
+ using glm::notEqual;
+ using glm::not_;
+ using glm::one;
+ using glm::one_over_pi;
+ using glm::one_over_root_two;
+ using glm::one_over_two_pi;
+ using glm::ortho;
+ using glm::orthoLH;
+ using glm::orthoLH_NO;
+ using glm::orthoLH_ZO;
+ using glm::orthoNO;
+ using glm::orthoRH;
+ using glm::orthoRH_NO;
+ using glm::orthoRH_ZO;
+ using glm::orthoZO;
+ using glm::outerProduct;
+ using glm::perspective;
+ using glm::perspectiveFov;
+ using glm::perspectiveFovLH;
+ using glm::perspectiveFovLH_NO;
+ using glm::perspectiveFovLH_ZO;
+ using glm::perspectiveFovNO;
+ using glm::perspectiveFovRH;
+ using glm::perspectiveFovRH_NO;
+ using glm::perspectiveFovRH_ZO;
+ using glm::perspectiveFovZO;
+ using glm::perspectiveLH;
+ using glm::perspectiveLH_NO;
+ using glm::perspectiveLH_ZO;
+ using glm::perspectiveNO;
+ using glm::perspectiveRH;
+ using glm::perspectiveRH_NO;
+ using glm::perspectiveRH_ZO;
+ using glm::perspectiveZO;
+ using glm::pi;
+ using glm::pickMatrix;
+ using glm::pow;
+ using glm::prevFloat;
+ using glm::prevMultiple;
+ using glm::prevPowerOfTwo;
+ using glm::project;
+ using glm::projectNO;
+ using glm::projectZO;
+ using glm::quarter_pi;
+ using glm::radians;
+ using glm::reflect;
+ using glm::refract;
+ using glm::repeat;
+ using glm::root_five;
+ using glm::root_half_pi;
+ using glm::root_ln_four;
+ using glm::root_pi;
+ using glm::root_three;
+ using glm::root_two;
+ using glm::root_two_pi;
+ using glm::rotate;
+ using glm::round;
+ using glm::roundEven;
+ using glm::scale;
+ using glm::sec;
+ using glm::sech;
+ using glm::sign;
+ using glm::sin;
+ using glm::sinh;
+ using glm::slerp;
+ using glm::smoothstep;
+ using glm::sqrt;
+ using glm::step;
+ using glm::tan;
+ using glm::tanh;
+ using glm::third;
+ using glm::three_over_two_pi;
+ using glm::translate;
+ using glm::transpose;
+ using glm::trunc;
+ using glm::tweakedInfinitePerspective;
+ using glm::two_over_pi;
+ using glm::two_over_root_pi;
+ using glm::two_pi;
+ using glm::two_thirds;
+ using glm::uintBitsToFloat;
+ using glm::unProject;
+ using glm::unProjectNO;
+ using glm::unProjectZO;
+ using glm::uround;
+ using glm::zero;
+ }
+
+# ifdef GLM_ENABLE_EXPERIMENTAL
+# ifdef GLM_GTX_INLINE_NAMESPACE
+ inline
+# endif
+ namespace gtx {
+ using glm::io::order_type;
+ using glm::io::format_punct;
+ using glm::io::basic_state_saver;
+ using glm::io::basic_format_saver;
+ using glm::io::precision;
+ using glm::io::width;
+ using glm::io::delimeter;
+ using glm::io::order;
+ using glm::io::get_facet;
+ using glm::io::formatted;
+ using glm::io::unformatted;
+ using glm::io::operator<<;
+ using glm::operator<<;
+ using glm::tdualquat;
+
+# if !((GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP))
+ using glm::to_string;
+# endif
+# if GLM_HAS_TEMPLATE_ALIASES
+ using glm::operator*;
+ using glm::operator/;
+# endif
+# if GLM_HAS_RANGE_FOR
+ using glm::components;
+ using glm::begin;
+ using glm::end;
+# endif
+
+ using glm::abs;
+ using glm::acos;
+ using glm::acosh;
+ using glm::adjugate;
+ using glm::all;
+ using glm::angle;
+ using glm::angleAxis;
+ using glm::any;
+ using glm::areCollinear;
+ using glm::areOrthogonal;
+ using glm::areOrthonormal;
+ using glm::asin;
+ using glm::asinh;
+ using glm::associatedMax;
+ using glm::associatedMin;
+ using glm::atan;
+ using glm::atanh;
+ using glm::axis;
+ using glm::axisAngle;
+ using glm::axisAngleMatrix;
+ using glm::backEaseIn;
+ using glm::backEaseInOut;
+ using glm::backEaseOut;
+ using glm::bitCount;
+ using glm::bitfieldDeinterleave;
+ using glm::bitfieldExtract;
+ using glm::bitfieldFillOne;
+ using glm::bitfieldFillZero;
+ using glm::bitfieldInsert;
+ using glm::bitfieldInterleave;
+ using glm::bitfieldReverse;
+ using glm::bitfieldRotateLeft;
+ using glm::bitfieldRotateRight;
+ using glm::bounceEaseIn;
+ using glm::bounceEaseInOut;
+ using glm::bounceEaseOut;
+ using glm::catmullRom;
+ using glm::ceil;
+ using glm::circularEaseIn;
+ using glm::circularEaseInOut;
+ using glm::circularEaseOut;
+ using glm::clamp;
+ using glm::closeBounded;
+ using glm::closestPointOnLine;
+ using glm::colMajor2;
+ using glm::colMajor3;
+ using glm::colMajor4;
+ using glm::compAdd;
+ using glm::compMax;
+ using glm::compMin;
+ using glm::compMul;
+ using glm::compNormalize;
+ using glm::compScale;
+ using glm::computeCovarianceMatrix;
+ using glm::conjugate;
+ using glm::convertD65XYZToD50XYZ;
+ using glm::convertD65XYZToLinearSRGB;
+ using glm::convertLinearSRGBToD50XYZ;
+ using glm::convertLinearSRGBToD65XYZ;
+ using glm::cos;
+ using glm::cos_one_over_two;
+ using glm::cosh;
+ using glm::cross;
+ using glm::cubic;
+ using glm::cubicEaseIn;
+ using glm::cubicEaseInOut;
+ using glm::cubicEaseOut;
+ using glm::decompose;
+ using glm::degrees;
+ using glm::derivedEulerAngleX;
+ using glm::derivedEulerAngleY;
+ using glm::derivedEulerAngleZ;
+ using glm::determinant;
+ using glm::diagonal2x2;
+ using glm::diagonal2x3;
+ using glm::diagonal2x4;
+ using glm::diagonal3x2;
+ using glm::diagonal3x3;
+ using glm::diagonal3x4;
+ using glm::diagonal4x2;
+ using glm::diagonal4x3;
+ using glm::diagonal4x4;
+ using glm::distance;
+ using glm::distance2;
+ using glm::dot;
+ using glm::dual_quat_identity;
+ using glm::dualquat_cast;
+ using glm::e;
+ using glm::elasticEaseIn;
+ using glm::elasticEaseInOut;
+ using glm::elasticEaseOut;
+ using glm::epsilon;
+ using glm::epsilonEqual;
+ using glm::epsilonNotEqual;
+ using glm::equal;
+ using glm::euclidean;
+ using glm::euler;
+ using glm::eulerAngleX;
+ using glm::eulerAngleXY;
+ using glm::eulerAngleXYX;
+ using glm::eulerAngleXYZ;
+ using glm::eulerAngleXZ;
+ using glm::eulerAngleXZX;
+ using glm::eulerAngleXZY;
+ using glm::eulerAngleY;
+ using glm::eulerAngleYX;
+ using glm::eulerAngleYXY;
+ using glm::eulerAngleYXZ;
+ using glm::eulerAngleYZ;
+ using glm::eulerAngleYZX;
+ using glm::eulerAngleYZY;
+ using glm::eulerAngleZ;
+ using glm::eulerAngleZX;
+ using glm::eulerAngleZXY;
+ using glm::eulerAngleZXZ;
+ using glm::eulerAngleZY;
+ using glm::eulerAngleZYX;
+ using glm::eulerAngleZYZ;
+ using glm::eulerAngles;
+ using glm::exp;
+ using glm::exp2;
+ using glm::exponentialEaseIn;
+ using glm::exponentialEaseInOut;
+ using glm::exponentialEaseOut;
+ using glm::extend;
+ using glm::extractEulerAngleXYX;
+ using glm::extractEulerAngleXYZ;
+ using glm::extractEulerAngleXZX;
+ using glm::extractEulerAngleXZY;
+ using glm::extractEulerAngleYXY;
+ using glm::extractEulerAngleYXZ;
+ using glm::extractEulerAngleYZX;
+ using glm::extractEulerAngleYZY;
+ using glm::extractEulerAngleZXY;
+ using glm::extractEulerAngleZXZ;
+ using glm::extractEulerAngleZYX;
+ using glm::extractEulerAngleZYZ;
+ using glm::extractMatrixRotation;
+ using glm::extractRealComponent;
+ using glm::faceforward;
+ using glm::factorial;
+ using glm::fastAcos;
+ using glm::fastAsin;
+ using glm::fastAtan;
+ using glm::fastCos;
+ using glm::fastDistance;
+ using glm::fastExp;
+ using glm::fastExp2;
+ using glm::fastInverseSqrt;
+ using glm::fastLength;
+ using glm::fastLog;
+ using glm::fastLog2;
+ using glm::fastMix;
+ using glm::fastNormalize;
+ using glm::fastNormalizeDot;
+ using glm::fastPow;
+ using glm::fastSin;
+ using glm::fastSqrt;
+ using glm::fastTan;
+ using glm::fclamp;
+ using glm::findLSB;
+ using glm::findMSB;
+ using glm::fliplr;
+ using glm::flipud;
+ using glm::floatBitsToInt;
+ using glm::floatBitsToUint;
+ using glm::floor;
+ using glm::floor_log2;
+ using glm::fma;
+ using glm::fmax;
+ using glm::fmin;
+ using glm::fmod;
+ using glm::four_over_pi;
+ using glm::fract;
+ using glm::frexp;
+ using glm::frustum;
+ using glm::frustumLH;
+ using glm::frustumLH_NO;
+ using glm::frustumLH_ZO;
+ using glm::frustumNO;
+ using glm::frustumRH;
+ using glm::frustumRH_NO;
+ using glm::frustumRH_ZO;
+ using glm::frustumZO;
+ using glm::gauss;
+ using glm::golden_ratio;
+ using glm::greaterThan;
+ using glm::greaterThanEqual;
+ using glm::half_pi;
+ using glm::hermite;
+ using glm::highestBitValue;
+ using glm::hsvColor;
+ using glm::identity;
+ using glm::imulExtended;
+ using glm::infinitePerspective;
+ using glm::infinitePerspectiveLH;
+ using glm::infinitePerspectiveRH;
+ using glm::intBitsToFloat;
+ using glm::intermediate;
+ using glm::interpolate;
+ using glm::intersectLineSphere;
+ using glm::intersectLineTriangle;
+ using glm::intersectRayPlane;
+ using glm::intersectRaySphere;
+ using glm::intersectRayTriangle;
+ using glm::inverse;
+ using glm::inversesqrt;
+ using glm::iround;
+ using glm::isCompNull;
+ using glm::isIdentity;
+ using glm::isNormalized;
+ using glm::isNull;
+ using glm::isOrthogonal;
+ using glm::isdenormal;
+ using glm::isfinite;
+ using glm::isinf;
+ using glm::isnan;
+ using glm::l1Norm;
+ using glm::l2Norm;
+ using glm::lMaxNorm;
+ using glm::ldexp;
+ using glm::leftHanded;
+ using glm::length;
+ using glm::length2;
+ using glm::lerp;
+ using glm::lessThan;
+ using glm::lessThanEqual;
+ using glm::linearGradient;
+ using glm::linearInterpolation;
+ using glm::ln_ln_two;
+ using glm::ln_ten;
+ using glm::ln_two;
+ using glm::log;
+ using glm::log2;
+ using glm::lookAt;
+ using glm::lookAtLH;
+ using glm::lookAtRH;
+ using glm::lowestBitValue;
+ using glm::luminosity;
+ using glm::lxNorm;
+ using glm::make_mat2;
+ using glm::make_mat2x2;
+ using glm::make_mat2x3;
+ using glm::make_mat2x4;
+ using glm::make_mat3;
+ using glm::make_mat3x2;
+ using glm::make_mat3x3;
+ using glm::make_mat3x4;
+ using glm::make_mat4;
+ using glm::make_mat4x2;
+ using glm::make_mat4x3;
+ using glm::make_mat4x4;
+ using glm::make_quat;
+ using glm::make_vec1;
+ using glm::make_vec2;
+ using glm::make_vec3;
+ using glm::make_vec4;
+ using glm::mask;
+ using glm::mat2x4_cast;
+ using glm::mat3_cast;
+ using glm::mat3x4_cast;
+ using glm::mat4_cast;
+ using glm::matrixCompMult;
+ using glm::matrixCross3;
+ using glm::matrixCross4;
+ using glm::max;
+ using glm::min;
+ using glm::mirrorClamp;
+ using glm::mirrorRepeat;
+ using glm::mix;
+ using glm::mixedProduct;
+ using glm::mod;
+ using glm::modf;
+ using glm::nlz;
+ using glm::normalize;
+ using glm::normalizeDot;
+ using glm::notEqual;
+ using glm::not_;
+ using glm::YCoCg2rgb;
+ using glm::YCoCgR2rgb;
+ using glm::one;
+ using glm::one_over_pi;
+ using glm::one_over_root_two;
+ using glm::one_over_two_pi;
+ using glm::openBounded;
+ using glm::orientate2;
+ using glm::orientate3;
+ using glm::orientate4;
+ using glm::orientation;
+ using glm::orientedAngle;
+ using glm::ortho;
+ using glm::orthoLH;
+ using glm::orthoLH_NO;
+ using glm::orthoLH_ZO;
+ using glm::orthoNO;
+ using glm::orthoRH;
+ using glm::orthoRH_NO;
+ using glm::orthoRH_ZO;
+ using glm::orthoZO;
+ using glm::orthonormalize;
+ using glm::outerProduct;
+ using glm::packDouble2x32;
+ using glm::packHalf2x16;
+ using glm::packSnorm2x16;
+ using glm::packSnorm4x8;
+ using glm::packUnorm2x16;
+ using glm::packUnorm4x8;
+ using glm::perp;
+ using glm::perspective;
+ using glm::perspectiveFov;
+ using glm::perspectiveFovLH;
+ using glm::perspectiveFovLH_NO;
+ using glm::perspectiveFovLH_ZO;
+ using glm::perspectiveFovNO;
+ using glm::perspectiveFovRH;
+ using glm::perspectiveFovRH_NO;
+ using glm::perspectiveFovRH_ZO;
+ using glm::perspectiveFovZO;
+ using glm::perspectiveLH;
+ using glm::perspectiveLH_NO;
+ using glm::perspectiveLH_ZO;
+ using glm::perspectiveNO;
+ using glm::perspectiveRH;
+ using glm::perspectiveRH_NO;
+ using glm::perspectiveRH_ZO;
+ using glm::perspectiveZO;
+ using glm::pi;
+ using glm::pickMatrix;
+ using glm::pitch;
+ using glm::polar;
+ using glm::pow;
+ using glm::pow2;
+ using glm::pow3;
+ using glm::pow4;
+ using glm::powerOfTwoAbove;
+ using glm::powerOfTwoBelow;
+ using glm::powerOfTwoNearest;
+ using glm::proj;
+ using glm::proj2D;
+ using glm::proj3D;
+ using glm::project;
+ using glm::projectNO;
+ using glm::projectZO;
+ using glm::qr_decompose;
+ using glm::quadraticEaseIn;
+ using glm::quadraticEaseInOut;
+ using glm::quadraticEaseOut;
+ using glm::quarter_pi;
+ using glm::quarticEaseIn;
+ using glm::quarticEaseInOut;
+ using glm::quarticEaseOut;
+ using glm::quatLookAt;
+ using glm::quatLookAtLH;
+ using glm::quatLookAtRH;
+ using glm::quat_cast;
+ using glm::quat_identity;
+ using glm::quinticEaseIn;
+ using glm::quinticEaseInOut;
+ using glm::quinticEaseOut;
+ using glm::radialGradient;
+ using glm::radians;
+ using glm::recompose;
+ using glm::reflect;
+ using glm::refract;
+ using glm::repeat;
+ using glm::rgb2YCoCg;
+ using glm::rgb2YCoCgR;
+ using glm::rgbColor;
+ using glm::rightHanded;
+ using glm::roll;
+ using glm::root_five;
+ using glm::root_half_pi;
+ using glm::root_ln_four;
+ using glm::root_pi;
+ using glm::root_three;
+ using glm::root_two;
+ using glm::root_two_pi;
+ using glm::rotate;
+ using glm::rotateNormalizedAxis;
+ using glm::rotateX;
+ using glm::rotateY;
+ using glm::rotateZ;
+ using glm::rotation;
+ using glm::round;
+ using glm::roundEven;
+ using glm::rowMajor2;
+ using glm::rowMajor3;
+ using glm::rowMajor4;
+ using glm::rq_decompose;
+ using glm::saturation;
+ using glm::scale;
+ using glm::scaleBias;
+ using glm::shearX2D;
+ using glm::shearX3D;
+ using glm::shearY2D;
+ using glm::shearY3D;
+ using glm::shearZ3D;
+ using glm::shortMix;
+ using glm::sign;
+ using glm::sin;
+ using glm::sineEaseIn;
+ using glm::sineEaseInOut;
+ using glm::sineEaseOut;
+ using glm::sinh;
+ using glm::slerp;
+ using glm::smoothstep;
+ using glm::sortEigenvalues;
+ using glm::sqrt;
+ using glm::squad;
+ using glm::step;
+ using glm::tan;
+ using glm::tanh;
+ using glm::third;
+ using glm::three_over_two_pi;
+ using glm::translate;
+ using glm::transpose;
+ using glm::triangleNormal;
+ using glm::trunc;
+ using glm::tweakedInfinitePerspective;
+ using glm::two_over_pi;
+ using glm::two_over_root_pi;
+ using glm::two_pi;
+ using glm::two_thirds;
+ using glm::uaddCarry;
+ using glm::uintBitsToFloat;
+ using glm::umulExtended;
+ using glm::unProject;
+ using glm::unProjectNO;
+ using glm::unProjectZO;
+ using glm::unpackDouble2x32;
+ using glm::unpackHalf2x16;
+ using glm::unpackSnorm2x16;
+ using glm::unpackSnorm4x8;
+ using glm::unpackUnorm2x16;
+ using glm::unpackUnorm4x8;
+ using glm::uround;
+ using glm::usubBorrow;
+ using glm::value_ptr;
+ using glm::wrapAngle;
+ using glm::wxyz;
+ using glm::yaw;
+ using glm::yawPitchRoll;
+ using glm::zero;
+ }
+# endif
+}
+
+#if defined(_MSC_VER) // Workaround
+// Partial template specialization doesn't need to be exported explicitly, but this may not work otherwise on MSVC.
+export namespace std {
+ using std::hash; // See GLM_GTX_hash
+}
+#endif