vulkanTutorial/libs/glm-1.0.0/glm.cppm

2676 lines
69 KiB
Plaintext
Raw Permalink Normal View History

2024-02-18 23:22:05 +08:00
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