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 #pragma once
00044
00045
00046 #include "../gtc/quaternion.hpp"
00047 #include "../vec2.hpp"
00048 #include "../vec3.hpp"
00049 #include "../vec4.hpp"
00050 #include "../mat2x2.hpp"
00051 #include "../mat2x3.hpp"
00052 #include "../mat2x4.hpp"
00053 #include "../mat3x2.hpp"
00054 #include "../mat3x3.hpp"
00055 #include "../mat3x4.hpp"
00056 #include "../mat4x2.hpp"
00057 #include "../mat4x3.hpp"
00058 #include "../mat4x4.hpp"
00059
00060 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
00061 # pragma message("GLM: GLM_GTC_type_precision extension included")
00062 #endif
00063
00064 namespace glm
00065 {
00067
00068
00071
00074 typedef detail::int8 lowp_int8;
00075
00078 typedef detail::int16 lowp_int16;
00079
00082 typedef detail::int32 lowp_int32;
00083
00086 typedef detail::int64 lowp_int64;
00087
00090 typedef detail::int8 lowp_int8_t;
00091
00094 typedef detail::int16 lowp_int16_t;
00095
00098 typedef detail::int32 lowp_int32_t;
00099
00102 typedef detail::int64 lowp_int64_t;
00103
00106 typedef detail::int8 lowp_i8;
00107
00110 typedef detail::int16 lowp_i16;
00111
00114 typedef detail::int32 lowp_i32;
00115
00118 typedef detail::int64 lowp_i64;
00119
00122 typedef detail::int8 mediump_int8;
00123
00126 typedef detail::int16 mediump_int16;
00127
00130 typedef detail::int32 mediump_int32;
00131
00134 typedef detail::int64 mediump_int64;
00135
00138 typedef detail::int8 mediump_int8_t;
00139
00142 typedef detail::int16 mediump_int16_t;
00143
00146 typedef detail::int32 mediump_int32_t;
00147
00150 typedef detail::int64 mediump_int64_t;
00151
00154 typedef detail::int8 mediump_i8;
00155
00158 typedef detail::int16 mediump_i16;
00159
00162 typedef detail::int32 mediump_i32;
00163
00166 typedef detail::int64 mediump_i64;
00167
00170 typedef detail::int8 highp_int8;
00171
00174 typedef detail::int16 highp_int16;
00175
00178 typedef detail::int32 highp_int32;
00179
00182 typedef detail::int64 highp_int64;
00183
00186 typedef detail::int8 highp_int8_t;
00187
00190 typedef detail::int16 highp_int16_t;
00191
00194 typedef detail::int32 highp_int32_t;
00195
00198 typedef detail::int64 highp_int64_t;
00199
00202 typedef detail::int8 highp_i8;
00203
00206 typedef detail::int16 highp_i16;
00207
00210 typedef detail::int32 highp_i32;
00211
00214 typedef detail::int64 highp_i64;
00215
00216
00219 typedef detail::int8 int8;
00220
00223 typedef detail::int16 int16;
00224
00227 typedef detail::int32 int32;
00228
00231 typedef detail::int64 int64;
00232
00233 #if GLM_HAS_EXTENDED_INTEGER_TYPE
00234 using std::int8_t;
00235 using std::int16_t;
00236 using std::int32_t;
00237 using std::int64_t;
00238 #else
00239
00240
00241 typedef detail::int8 int8_t;
00242
00245 typedef detail::int16 int16_t;
00246
00249 typedef detail::int32 int32_t;
00250
00253 typedef detail::int64 int64_t;
00254 #endif
00255
00258 typedef detail::int8 i8;
00259
00262 typedef detail::int16 i16;
00263
00266 typedef detail::int32 i32;
00267
00270 typedef detail::int64 i64;
00271
00272
00275 typedef detail::tvec1<i8, defaultp> i8vec1;
00276
00279 typedef detail::tvec2<i8, defaultp> i8vec2;
00280
00283 typedef detail::tvec3<i8, defaultp> i8vec3;
00284
00287 typedef detail::tvec4<i8, defaultp> i8vec4;
00288
00289
00292 typedef detail::tvec1<i16, defaultp> i16vec1;
00293
00296 typedef detail::tvec2<i16, defaultp> i16vec2;
00297
00300 typedef detail::tvec3<i16, defaultp> i16vec3;
00301
00304 typedef detail::tvec4<i16, defaultp> i16vec4;
00305
00306
00309 typedef detail::tvec1<i32, defaultp> i32vec1;
00310
00313 typedef detail::tvec2<i32, defaultp> i32vec2;
00314
00317 typedef detail::tvec3<i32, defaultp> i32vec3;
00318
00321 typedef detail::tvec4<i32, defaultp> i32vec4;
00322
00323
00326 typedef detail::tvec1<i64, defaultp> i64vec1;
00327
00330 typedef detail::tvec2<i64, defaultp> i64vec2;
00331
00334 typedef detail::tvec3<i64, defaultp> i64vec3;
00335
00338 typedef detail::tvec4<i64, defaultp> i64vec4;
00339
00340
00342
00343
00346 typedef detail::uint8 lowp_uint8;
00347
00350 typedef detail::uint16 lowp_uint16;
00351
00354 typedef detail::uint32 lowp_uint32;
00355
00358 typedef detail::uint64 lowp_uint64;
00359
00362 typedef detail::uint8 lowp_uint8_t;
00363
00366 typedef detail::uint16 lowp_uint16_t;
00367
00370 typedef detail::uint32 lowp_uint32_t;
00371
00374 typedef detail::uint64 lowp_uint64_t;
00375
00378 typedef detail::uint8 lowp_u8;
00379
00382 typedef detail::uint16 lowp_u16;
00383
00386 typedef detail::uint32 lowp_u32;
00387
00390 typedef detail::uint64 lowp_u64;
00391
00394 typedef detail::uint8 mediump_uint8;
00395
00398 typedef detail::uint16 mediump_uint16;
00399
00402 typedef detail::uint32 mediump_uint32;
00403
00406 typedef detail::uint64 mediump_uint64;
00407
00410 typedef detail::uint8 mediump_uint8_t;
00411
00414 typedef detail::uint16 mediump_uint16_t;
00415
00418 typedef detail::uint32 mediump_uint32_t;
00419
00422 typedef detail::uint64 mediump_uint64_t;
00423
00426 typedef detail::uint8 mediump_u8;
00427
00430 typedef detail::uint16 mediump_u16;
00431
00434 typedef detail::uint32 mediump_u32;
00435
00438 typedef detail::uint64 mediump_u64;
00439
00442 typedef detail::uint8 highp_uint8;
00443
00446 typedef detail::uint16 highp_uint16;
00447
00450 typedef detail::uint32 highp_uint32;
00451
00454 typedef detail::uint64 highp_uint64;
00455
00458 typedef detail::uint8 highp_uint8_t;
00459
00462 typedef detail::uint16 highp_uint16_t;
00463
00466 typedef detail::uint32 highp_uint32_t;
00467
00470 typedef detail::uint64 highp_uint64_t;
00471
00474 typedef detail::uint8 highp_u8;
00475
00478 typedef detail::uint16 highp_u16;
00479
00482 typedef detail::uint32 highp_u32;
00483
00486 typedef detail::uint64 highp_u64;
00487
00490 typedef detail::uint8 uint8;
00491
00494 typedef detail::uint16 uint16;
00495
00498 typedef detail::uint32 uint32;
00499
00502 typedef detail::uint64 uint64;
00503
00504 #if GLM_HAS_EXTENDED_INTEGER_TYPE
00505 using std::uint8_t;
00506 using std::uint16_t;
00507 using std::uint32_t;
00508 using std::uint64_t;
00509 #else
00510
00511
00512 typedef detail::uint8 uint8_t;
00513
00516 typedef detail::uint16 uint16_t;
00517
00520 typedef detail::uint32 uint32_t;
00521
00524 typedef detail::uint64 uint64_t;
00525 #endif
00526
00529 typedef detail::uint8 u8;
00530
00533 typedef detail::uint16 u16;
00534
00537 typedef detail::uint32 u32;
00538
00541 typedef detail::uint64 u64;
00542
00543
00544
00547 typedef detail::tvec1<u8, defaultp> u8vec1;
00548
00551 typedef detail::tvec2<u8, defaultp> u8vec2;
00552
00555 typedef detail::tvec3<u8, defaultp> u8vec3;
00556
00559 typedef detail::tvec4<u8, defaultp> u8vec4;
00560
00561
00564 typedef detail::tvec1<u16, defaultp> u16vec1;
00565
00568 typedef detail::tvec2<u16, defaultp> u16vec2;
00569
00572 typedef detail::tvec3<u16, defaultp> u16vec3;
00573
00576 typedef detail::tvec4<u16, defaultp> u16vec4;
00577
00578
00581 typedef detail::tvec1<u32, defaultp> u32vec1;
00582
00585 typedef detail::tvec2<u32, defaultp> u32vec2;
00586
00589 typedef detail::tvec3<u32, defaultp> u32vec3;
00590
00593 typedef detail::tvec4<u32, defaultp> u32vec4;
00594
00595
00598 typedef detail::tvec1<u64, defaultp> u64vec1;
00599
00602 typedef detail::tvec2<u64, defaultp> u64vec2;
00603
00606 typedef detail::tvec3<u64, defaultp> u64vec3;
00607
00610 typedef detail::tvec4<u64, defaultp> u64vec4;
00611
00612
00614
00615
00618 typedef detail::float32 float32;
00619
00622 typedef detail::float64 float64;
00623
00624
00627 typedef detail::float32 float32_t;
00628
00631 typedef detail::float64 float64_t;
00632
00633
00636 typedef float32 f32;
00637
00640 typedef float64 f64;
00641
00642
00645 typedef detail::tvec1<float, defaultp> fvec1;
00646
00649 typedef detail::tvec2<float, defaultp> fvec2;
00650
00653 typedef detail::tvec3<float, defaultp> fvec3;
00654
00657 typedef detail::tvec4<float, defaultp> fvec4;
00658
00659
00662 typedef detail::tvec1<f32, defaultp> f32vec1;
00663
00666 typedef detail::tvec2<f32, defaultp> f32vec2;
00667
00670 typedef detail::tvec3<f32, defaultp> f32vec3;
00671
00674 typedef detail::tvec4<f32, defaultp> f32vec4;
00675
00676
00679 typedef detail::tvec1<f64, defaultp> f64vec1;
00680
00683 typedef detail::tvec2<f64, defaultp> f64vec2;
00684
00687 typedef detail::tvec3<f64, defaultp> f64vec3;
00688
00691 typedef detail::tvec4<f64, defaultp> f64vec4;
00692
00693
00695
00696
00699
00700
00703 typedef detail::tmat2x2<f32, defaultp> fmat2;
00704
00707 typedef detail::tmat3x3<f32, defaultp> fmat3;
00708
00711 typedef detail::tmat4x4<f32, defaultp> fmat4;
00712
00713
00716
00717
00720 typedef detail::tmat2x2<f32, defaultp> fmat2x2;
00721
00724 typedef detail::tmat2x3<f32, defaultp> fmat2x3;
00725
00728 typedef detail::tmat2x4<f32, defaultp> fmat2x4;
00729
00732 typedef detail::tmat3x2<f32, defaultp> fmat3x2;
00733
00736 typedef detail::tmat3x3<f32, defaultp> fmat3x3;
00737
00740 typedef detail::tmat3x4<f32, defaultp> fmat3x4;
00741
00744 typedef detail::tmat4x2<f32, defaultp> fmat4x2;
00745
00748 typedef detail::tmat4x3<f32, defaultp> fmat4x3;
00749
00752 typedef detail::tmat4x4<f32, defaultp> fmat4x4;
00753
00754
00757
00758
00761 typedef detail::tmat2x2<f32, defaultp> f32mat2;
00762
00765 typedef detail::tmat3x3<f32, defaultp> f32mat3;
00766
00769 typedef detail::tmat4x4<f32, defaultp> f32mat4;
00770
00771
00774
00775
00778 typedef detail::tmat2x2<f32, defaultp> f32mat2x2;
00779
00782 typedef detail::tmat2x3<f32, defaultp> f32mat2x3;
00783
00786 typedef detail::tmat2x4<f32, defaultp> f32mat2x4;
00787
00790 typedef detail::tmat3x2<f32, defaultp> f32mat3x2;
00791
00794 typedef detail::tmat3x3<f32, defaultp> f32mat3x3;
00795
00798 typedef detail::tmat3x4<f32, defaultp> f32mat3x4;
00799
00802 typedef detail::tmat4x2<f32, defaultp> f32mat4x2;
00803
00806 typedef detail::tmat4x3<f32, defaultp> f32mat4x3;
00807
00810 typedef detail::tmat4x4<f32, defaultp> f32mat4x4;
00811
00812
00815
00816
00819 typedef detail::tmat2x2<f64, defaultp> f64mat2;
00820
00823 typedef detail::tmat3x3<f64, defaultp> f64mat3;
00824
00827 typedef detail::tmat4x4<f64, defaultp> f64mat4;
00828
00829
00832
00833
00836 typedef detail::tmat2x2<f64, defaultp> f64mat2x2;
00837
00840 typedef detail::tmat2x3<f64, defaultp> f64mat2x3;
00841
00844 typedef detail::tmat2x4<f64, defaultp> f64mat2x4;
00845
00848 typedef detail::tmat3x2<f64, defaultp> f64mat3x2;
00849
00852 typedef detail::tmat3x3<f64, defaultp> f64mat3x3;
00853
00856 typedef detail::tmat3x4<f64, defaultp> f64mat3x4;
00857
00860 typedef detail::tmat4x2<f64, defaultp> f64mat4x2;
00861
00864 typedef detail::tmat4x3<f64, defaultp> f64mat4x3;
00865
00868 typedef detail::tmat4x4<f64, defaultp> f64mat4x4;
00869
00870
00872
00873
00876 typedef detail::tquat<f32, defaultp> f32quat;
00877
00880 typedef detail::tquat<f64, defaultp> f64quat;
00881
00883 }
00884
00885 #include "type_precision.inl"