00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 #ifndef GLM_GTC_type_precision 00044 #define GLM_GTC_type_precision GLM_VERSION 00045 00046 // Dependency: 00047 #include "../glm.hpp" 00048 #include "../gtc/half_float.hpp" 00049 #include "../gtc/quaternion.hpp" 00050 00051 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00052 # pragma message("GLM: GLM_GTC_type_precision extension included") 00053 #endif 00054 00055 namespace glm 00056 { 00058 // Signed int vector types 00059 00062 00063 typedef detail::int8 int8; 00064 typedef detail::int16 int16; 00065 typedef detail::int32 int32; 00066 typedef detail::int64 int64; 00067 00068 typedef detail::int8 int8_t; 00069 typedef detail::int16 int16_t; 00070 typedef detail::int32 int32_t; 00071 typedef detail::int64 int64_t; 00072 00073 typedef int8 i8; 00074 typedef int16 i16; 00075 typedef int32 i32; 00076 typedef int64 i64; 00077 00078 typedef detail::tvec1<i8> i8vec1; 00079 typedef detail::tvec2<i8> i8vec2; 00080 typedef detail::tvec3<i8> i8vec3; 00081 typedef detail::tvec4<i8> i8vec4; 00082 00083 typedef detail::tvec1<i16> i16vec1; 00084 typedef detail::tvec2<i16> i16vec2; 00085 typedef detail::tvec3<i16> i16vec3; 00086 typedef detail::tvec4<i16> i16vec4; 00087 00088 typedef detail::tvec1<i32> i32vec1; 00089 typedef detail::tvec2<i32> i32vec2; 00090 typedef detail::tvec3<i32> i32vec3; 00091 typedef detail::tvec4<i32> i32vec4; 00092 00093 typedef detail::tvec1<i64> i64vec1; 00094 typedef detail::tvec2<i64> i64vec2; 00095 typedef detail::tvec3<i64> i64vec3; 00096 typedef detail::tvec4<i64> i64vec4; 00097 00099 // Unsigned int vector types 00100 00101 typedef detail::uint8 uint8; 00102 typedef detail::uint16 uint16; 00103 typedef detail::uint32 uint32; 00104 typedef detail::uint64 uint64; 00105 00106 typedef detail::uint8 uint8_t; 00107 typedef detail::uint16 uint16_t; 00108 typedef detail::uint32 uint32_t; 00109 typedef detail::uint64 uint64_t; 00110 00111 typedef uint8 u8; 00112 typedef uint16 u16; 00113 typedef uint32 u32; 00114 typedef uint64 u64; 00115 00116 typedef detail::tvec1<u8> u8vec1; 00117 typedef detail::tvec2<u8> u8vec2; 00118 typedef detail::tvec3<u8> u8vec3; 00119 typedef detail::tvec4<u8> u8vec4; 00120 00121 typedef detail::tvec1<u16> u16vec1; 00122 typedef detail::tvec2<u16> u16vec2; 00123 typedef detail::tvec3<u16> u16vec3; 00124 typedef detail::tvec4<u16> u16vec4; 00125 00126 typedef detail::tvec1<u32> u32vec1; 00127 typedef detail::tvec2<u32> u32vec2; 00128 typedef detail::tvec3<u32> u32vec3; 00129 typedef detail::tvec4<u32> u32vec4; 00130 00131 typedef detail::tvec1<u64> u64vec1; 00132 typedef detail::tvec2<u64> u64vec2; 00133 typedef detail::tvec3<u64> u64vec3; 00134 typedef detail::tvec4<u64> u64vec4; 00135 00137 // Float vector types 00138 00139 typedef detail::float16 float16; 00140 typedef detail::float32 float32; 00141 typedef detail::float64 float64; 00142 00143 typedef detail::float16 float16_t; 00144 typedef detail::float32 float32_t; 00145 typedef detail::float64 float64_t; 00146 00147 typedef float16 f16; 00148 typedef float32 f32; 00149 typedef float64 f64; 00150 00151 typedef detail::tvec2<float> fvec2; 00152 typedef detail::tvec3<float> fvec3; 00153 typedef detail::tvec4<float> fvec4; 00154 00155 typedef detail::tvec1<f16> f16vec1; 00156 typedef detail::tvec2<f16> f16vec2; 00157 typedef detail::tvec3<f16> f16vec3; 00158 typedef detail::tvec4<f16> f16vec4; 00159 00160 typedef detail::tvec1<f32> f32vec1; 00161 typedef detail::tvec2<f32> f32vec2; 00162 typedef detail::tvec3<f32> f32vec3; 00163 typedef detail::tvec4<f32> f32vec4; 00164 00165 typedef detail::tvec1<f64> f64vec1; 00166 typedef detail::tvec2<f64> f64vec2; 00167 typedef detail::tvec3<f64> f64vec3; 00168 typedef detail::tvec4<f64> f64vec4; 00169 00171 // Float matrix types 00172 00173 //typedef f32 fmat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00174 typedef detail::tmat2x2<f32> fmat2; 00175 typedef detail::tmat3x3<f32> fmat3; 00176 typedef detail::tmat4x4<f32> fmat4; 00177 00178 //typedef f32 fmat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00179 typedef detail::tmat2x2<f32> fmat2x2; 00180 typedef detail::tmat2x3<f32> fmat2x3; 00181 typedef detail::tmat2x4<f32> fmat2x4; 00182 typedef detail::tmat3x2<f32> fmat3x2; 00183 typedef detail::tmat3x3<f32> fmat3x3; 00184 typedef detail::tmat3x4<f32> fmat3x4; 00185 typedef detail::tmat4x2<f32> fmat4x2; 00186 typedef detail::tmat4x3<f32> fmat4x3; 00187 typedef detail::tmat4x4<f32> fmat4x4; 00188 00189 //typedef f16 f16mat1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00190 typedef detail::tmat2x2<f16> f16mat2; 00191 typedef detail::tmat3x3<f16> f16mat3; 00192 typedef detail::tmat4x4<f16> f16mat4; 00193 00194 //typedef f16 f16mat1x1; //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00195 typedef detail::tmat2x2<f16> f16mat2x2; 00196 typedef detail::tmat2x3<f16> f16mat2x3; 00197 typedef detail::tmat2x4<f16> f16mat2x4; 00198 typedef detail::tmat3x2<f16> f16mat3x2; 00199 typedef detail::tmat3x3<f16> f16mat3x3; 00200 typedef detail::tmat3x4<f16> f16mat3x4; 00201 typedef detail::tmat4x2<f16> f16mat4x2; 00202 typedef detail::tmat4x3<f16> f16mat4x3; 00203 typedef detail::tmat4x4<f16> f16mat4x4; 00204 00205 //typedef f32 f32mat1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00206 typedef detail::tmat2x2<f32> f32mat2; 00207 typedef detail::tmat3x3<f32> f32mat3; 00208 typedef detail::tmat4x4<f32> f32mat4; 00209 00210 //typedef f32 f32mat1x1; //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00211 typedef detail::tmat2x2<f32> f32mat2x2; 00212 typedef detail::tmat2x3<f32> f32mat2x3; 00213 typedef detail::tmat2x4<f32> f32mat2x4; 00214 typedef detail::tmat3x2<f32> f32mat3x2; 00215 typedef detail::tmat3x3<f32> f32mat3x3; 00216 typedef detail::tmat3x4<f32> f32mat3x4; 00217 typedef detail::tmat4x2<f32> f32mat4x2; 00218 typedef detail::tmat4x3<f32> f32mat4x3; 00219 typedef detail::tmat4x4<f32> f32mat4x4; 00220 00221 //typedef f64 f64mat1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00222 typedef detail::tmat2x2<f64> f64mat2; 00223 typedef detail::tmat3x3<f64> f64mat3; 00224 typedef detail::tmat4x4<f64> f64mat4; 00225 00226 //typedef f64 f64mat1x1; //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension) 00227 typedef detail::tmat2x2<f64> f64mat2x2; 00228 typedef detail::tmat2x3<f64> f64mat2x3; 00229 typedef detail::tmat2x4<f64> f64mat2x4; 00230 typedef detail::tmat3x2<f64> f64mat3x2; 00231 typedef detail::tmat3x3<f64> f64mat3x3; 00232 typedef detail::tmat3x4<f64> f64mat3x4; 00233 typedef detail::tmat4x2<f64> f64mat4x2; 00234 typedef detail::tmat4x3<f64> f64mat4x3; 00235 typedef detail::tmat4x4<f64> f64mat4x4; 00236 00238 // Float quaternion types 00239 00240 typedef detail::tquat<f16> f16quat; 00241 typedef detail::tquat<f32> f32quat; 00242 typedef detail::tquat<f64> f64quat; 00243 00245 }//namespace glm 00246 00247 #include "type_precision.inl" 00248 00249 #endif//GLM_GTC_type_precision