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 00065 typedef detail::int8 int8; 00066 00069 typedef detail::int16 int16; 00070 00073 typedef detail::int32 int32; 00074 00077 typedef detail::int64 int64; 00078 00079 00082 typedef detail::int8 int8_t; 00083 00086 typedef detail::int16 int16_t; 00087 00090 typedef detail::int32 int32_t; 00091 00094 typedef detail::int64 int64_t; 00095 00096 00099 typedef detail::int8 i8; 00100 00103 typedef detail::int16 i16; 00104 00107 typedef detail::int32 i32; 00108 00111 typedef detail::int64 i64; 00112 00113 00116 typedef detail::tvec1<i8> i8vec1; 00117 00120 typedef detail::tvec2<i8> i8vec2; 00121 00124 typedef detail::tvec3<i8> i8vec3; 00125 00128 typedef detail::tvec4<i8> i8vec4; 00129 00130 00133 typedef detail::tvec1<i16> i16vec1; 00134 00137 typedef detail::tvec2<i16> i16vec2; 00138 00141 typedef detail::tvec3<i16> i16vec3; 00142 00145 typedef detail::tvec4<i16> i16vec4; 00146 00147 00150 typedef detail::tvec1<i32> i32vec1; 00151 00154 typedef detail::tvec2<i32> i32vec2; 00155 00158 typedef detail::tvec3<i32> i32vec3; 00159 00162 typedef detail::tvec4<i32> i32vec4; 00163 00164 00167 typedef detail::tvec1<i64> i64vec1; 00168 00171 typedef detail::tvec2<i64> i64vec2; 00172 00175 typedef detail::tvec3<i64> i64vec3; 00176 00179 typedef detail::tvec4<i64> i64vec4; 00180 00181 00183 // Unsigned int vector types 00184 00187 typedef detail::uint8 uint8; 00188 00191 typedef detail::uint16 uint16; 00192 00195 typedef detail::uint32 uint32; 00196 00199 typedef detail::uint64 uint64; 00200 00201 00204 typedef detail::uint8 uint8_t; 00205 00208 typedef detail::uint16 uint16_t; 00209 00212 typedef detail::uint32 uint32_t; 00213 00216 typedef detail::uint64 uint64_t; 00217 00218 00221 typedef detail::uint8 u8; 00222 00225 typedef detail::uint16 u16; 00226 00229 typedef detail::uint32 u32; 00230 00233 typedef detail::uint64 u64; 00234 00235 00238 typedef detail::tvec1<u8> u8vec1; 00239 00242 typedef detail::tvec2<u8> u8vec2; 00243 00246 typedef detail::tvec3<u8> u8vec3; 00247 00250 typedef detail::tvec4<u8> u8vec4; 00251 00252 00255 typedef detail::tvec1<u16> u16vec1; 00256 00259 typedef detail::tvec2<u16> u16vec2; 00260 00263 typedef detail::tvec3<u16> u16vec3; 00264 00267 typedef detail::tvec4<u16> u16vec4; 00268 00269 00272 typedef detail::tvec1<u32> u32vec1; 00273 00276 typedef detail::tvec2<u32> u32vec2; 00277 00280 typedef detail::tvec3<u32> u32vec3; 00281 00284 typedef detail::tvec4<u32> u32vec4; 00285 00286 00289 typedef detail::tvec1<u64> u64vec1; 00290 00293 typedef detail::tvec2<u64> u64vec2; 00294 00297 typedef detail::tvec3<u64> u64vec3; 00298 00301 typedef detail::tvec4<u64> u64vec4; 00302 00303 00305 // Float vector types 00306 00309 typedef detail::float16 float16; 00310 00313 typedef detail::float32 float32; 00314 00317 typedef detail::float64 float64; 00318 00319 00322 typedef detail::float16 float16_t; 00323 00326 typedef detail::float32 float32_t; 00327 00330 typedef detail::float64 float64_t; 00331 00332 00335 typedef float16 f16; 00336 00339 typedef float32 f32; 00340 00343 typedef float64 f64; 00344 00345 00348 typedef detail::tvec1<float> fvec1; 00349 00352 typedef detail::tvec2<float> fvec2; 00353 00356 typedef detail::tvec3<float> fvec3; 00357 00360 typedef detail::tvec4<float> fvec4; 00361 00362 00365 typedef detail::tvec1<f16> f16vec1; 00366 00369 typedef detail::tvec2<f16> f16vec2; 00370 00373 typedef detail::tvec3<f16> f16vec3; 00374 00377 typedef detail::tvec4<f16> f16vec4; 00378 00379 00382 typedef detail::tvec1<f32> f32vec1; 00383 00386 typedef detail::tvec2<f32> f32vec2; 00387 00390 typedef detail::tvec3<f32> f32vec3; 00391 00394 typedef detail::tvec4<f32> f32vec4; 00395 00396 00399 typedef detail::tvec1<f64> f64vec1; 00400 00403 typedef detail::tvec2<f64> f64vec2; 00404 00407 typedef detail::tvec3<f64> f64vec3; 00408 00411 typedef detail::tvec4<f64> f64vec4; 00412 00413 00415 // Float matrix types 00416 00419 //typedef detail::tmat1x1<f32> fmat1; 00420 00423 typedef detail::tmat2x2<f32> fmat2; 00424 00427 typedef detail::tmat3x3<f32> fmat3; 00428 00431 typedef detail::tmat4x4<f32> fmat4; 00432 00433 00436 //typedef f32 fmat1x1; 00437 00440 typedef detail::tmat2x2<f32> fmat2x2; 00441 00444 typedef detail::tmat2x3<f32> fmat2x3; 00445 00448 typedef detail::tmat2x4<f32> fmat2x4; 00449 00452 typedef detail::tmat3x2<f32> fmat3x2; 00453 00456 typedef detail::tmat3x3<f32> fmat3x3; 00457 00460 typedef detail::tmat3x4<f32> fmat3x4; 00461 00464 typedef detail::tmat4x2<f32> fmat4x2; 00465 00468 typedef detail::tmat4x3<f32> fmat4x3; 00469 00472 typedef detail::tmat4x4<f32> fmat4x4; 00473 00474 00477 //typedef detail::tmat1x1<f16> f16mat1; 00478 00481 typedef detail::tmat2x2<f16> f16mat2; 00482 00485 typedef detail::tmat3x3<f16> f16mat3; 00486 00489 typedef detail::tmat4x4<f16> f16mat4; 00490 00491 00494 //typedef f16 f16mat1x1; 00495 00498 typedef detail::tmat2x2<f16> f16mat2x2; 00499 00502 typedef detail::tmat2x3<f16> f16mat2x3; 00503 00506 typedef detail::tmat2x4<f16> f16mat2x4; 00507 00510 typedef detail::tmat3x2<f16> f16mat3x2; 00511 00514 typedef detail::tmat3x3<f16> f16mat3x3; 00515 00518 typedef detail::tmat3x4<f16> f16mat3x4; 00519 00522 typedef detail::tmat4x2<f16> f16mat4x2; 00523 00526 typedef detail::tmat4x3<f16> f16mat4x3; 00527 00530 typedef detail::tmat4x4<f16> f16mat4x4; 00531 00532 00535 //typedef detail::tmat1x1<f32> f32mat1; 00536 00539 typedef detail::tmat2x2<f32> f32mat2; 00540 00543 typedef detail::tmat3x3<f32> f32mat3; 00544 00547 typedef detail::tmat4x4<f32> f32mat4; 00548 00549 00552 //typedef f32 f32mat1x1; 00553 00556 typedef detail::tmat2x2<f32> f32mat2x2; 00557 00560 typedef detail::tmat2x3<f32> f32mat2x3; 00561 00564 typedef detail::tmat2x4<f32> f32mat2x4; 00565 00568 typedef detail::tmat3x2<f32> f32mat3x2; 00569 00572 typedef detail::tmat3x3<f32> f32mat3x3; 00573 00576 typedef detail::tmat3x4<f32> f32mat3x4; 00577 00580 typedef detail::tmat4x2<f32> f32mat4x2; 00581 00584 typedef detail::tmat4x3<f32> f32mat4x3; 00585 00588 typedef detail::tmat4x4<f32> f32mat4x4; 00589 00590 00593 //typedef detail::tmat1x1<f64> f64mat1; 00594 00597 typedef detail::tmat2x2<f64> f64mat2; 00598 00601 typedef detail::tmat3x3<f64> f64mat3; 00602 00605 typedef detail::tmat4x4<f64> f64mat4; 00606 00607 00610 //typedef f64 f64mat1x1; 00611 00614 typedef detail::tmat2x2<f64> f64mat2x2; 00615 00618 typedef detail::tmat2x3<f64> f64mat2x3; 00619 00622 typedef detail::tmat2x4<f64> f64mat2x4; 00623 00626 typedef detail::tmat3x2<f64> f64mat3x2; 00627 00630 typedef detail::tmat3x3<f64> f64mat3x3; 00631 00634 typedef detail::tmat3x4<f64> f64mat3x4; 00635 00638 typedef detail::tmat4x2<f64> f64mat4x2; 00639 00642 typedef detail::tmat4x3<f64> f64mat4x3; 00643 00646 typedef detail::tmat4x4<f64> f64mat4x4; 00647 00648 00650 // Quaternion types 00651 00654 typedef detail::tquat<f16> f16quat; 00655 00658 typedef detail::tquat<f32> f32quat; 00659 00662 typedef detail::tquat<f64> f64quat; 00663 00665 }//namespace glm 00666 00667 #include "type_precision.inl" 00668 00669 #endif//GLM_GTC_type_precision