type_precision.hpp
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 #ifndef GLM_GTC_type_precision
44 #define GLM_GTC_type_precision GLM_VERSION
45 
46 // Dependency:
47 #include "../glm.hpp"
48 #include "../gtc/half_float.hpp"
49 #include "../gtc/quaternion.hpp"
50 
51 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
52 # pragma message("GLM: GLM_GTC_type_precision extension included")
53 #endif
54 
55 namespace glm
56 {
58  // Signed int vector types
59 
62 
65  typedef detail::int8 int8;
66 
69  typedef detail::int16 int16;
70 
73  typedef detail::int32 int32;
74 
77  typedef detail::int64 int64;
78 
79 
82  typedef detail::int8 int8_t;
83 
86  typedef detail::int16 int16_t;
87 
90  typedef detail::int32 int32_t;
91 
94  typedef detail::int64 int64_t;
95 
96 
99  typedef detail::int8 i8;
100 
103  typedef detail::int16 i16;
104 
107  typedef detail::int32 i32;
108 
111  typedef detail::int64 i64;
112 
113 
116  typedef detail::tvec1<i8> i8vec1;
117 
120  typedef detail::tvec2<i8> i8vec2;
121 
124  typedef detail::tvec3<i8> i8vec3;
125 
128  typedef detail::tvec4<i8> i8vec4;
129 
130 
133  typedef detail::tvec1<i16> i16vec1;
134 
137  typedef detail::tvec2<i16> i16vec2;
138 
141  typedef detail::tvec3<i16> i16vec3;
142 
145  typedef detail::tvec4<i16> i16vec4;
146 
147 
150  typedef detail::tvec1<i32> i32vec1;
151 
154  typedef detail::tvec2<i32> i32vec2;
155 
158  typedef detail::tvec3<i32> i32vec3;
159 
162  typedef detail::tvec4<i32> i32vec4;
163 
164 
167  typedef detail::tvec1<i64> i64vec1;
168 
171  typedef detail::tvec2<i64> i64vec2;
172 
175  typedef detail::tvec3<i64> i64vec3;
176 
179  typedef detail::tvec4<i64> i64vec4;
180 
181 
183  // Unsigned int vector types
184 
187  typedef detail::uint8 uint8;
188 
191  typedef detail::uint16 uint16;
192 
195  typedef detail::uint32 uint32;
196 
199  typedef detail::uint64 uint64;
200 
201 
204  typedef detail::uint8 uint8_t;
205 
208  typedef detail::uint16 uint16_t;
209 
212  typedef detail::uint32 uint32_t;
213 
216  typedef detail::uint64 uint64_t;
217 
218 
221  typedef detail::uint8 u8;
222 
225  typedef detail::uint16 u16;
226 
229  typedef detail::uint32 u32;
230 
233  typedef detail::uint64 u64;
234 
235 
238  typedef detail::tvec1<u8> u8vec1;
239 
242  typedef detail::tvec2<u8> u8vec2;
243 
246  typedef detail::tvec3<u8> u8vec3;
247 
250  typedef detail::tvec4<u8> u8vec4;
251 
252 
255  typedef detail::tvec1<u16> u16vec1;
256 
259  typedef detail::tvec2<u16> u16vec2;
260 
263  typedef detail::tvec3<u16> u16vec3;
264 
267  typedef detail::tvec4<u16> u16vec4;
268 
269 
272  typedef detail::tvec1<u32> u32vec1;
273 
276  typedef detail::tvec2<u32> u32vec2;
277 
280  typedef detail::tvec3<u32> u32vec3;
281 
284  typedef detail::tvec4<u32> u32vec4;
285 
286 
289  typedef detail::tvec1<u64> u64vec1;
290 
293  typedef detail::tvec2<u64> u64vec2;
294 
297  typedef detail::tvec3<u64> u64vec3;
298 
301  typedef detail::tvec4<u64> u64vec4;
302 
303 
305  // Float vector types
306 
309  typedef detail::float16 float16;
310 
313  typedef detail::float32 float32;
314 
317  typedef detail::float64 float64;
318 
319 
322  typedef detail::float16 float16_t;
323 
326  typedef detail::float32 float32_t;
327 
330  typedef detail::float64 float64_t;
331 
332 
335  typedef float16 f16;
336 
339  typedef float32 f32;
340 
343  typedef float64 f64;
344 
345 
348  typedef detail::tvec1<float> fvec1;
349 
352  typedef detail::tvec2<float> fvec2;
353 
356  typedef detail::tvec3<float> fvec3;
357 
360  typedef detail::tvec4<float> fvec4;
361 
362 
365  typedef detail::tvec1<f16> f16vec1;
366 
369  typedef detail::tvec2<f16> f16vec2;
370 
373  typedef detail::tvec3<f16> f16vec3;
374 
377  typedef detail::tvec4<f16> f16vec4;
378 
379 
382  typedef detail::tvec1<f32> f32vec1;
383 
386  typedef detail::tvec2<f32> f32vec2;
387 
390  typedef detail::tvec3<f32> f32vec3;
391 
394  typedef detail::tvec4<f32> f32vec4;
395 
396 
399  typedef detail::tvec1<f64> f64vec1;
400 
403  typedef detail::tvec2<f64> f64vec2;
404 
407  typedef detail::tvec3<f64> f64vec3;
408 
411  typedef detail::tvec4<f64> f64vec4;
412 
413 
415  // Float matrix types
416 
419  //typedef detail::tmat1x1<f32> fmat1;
420 
423  typedef detail::tmat2x2<f32> fmat2;
424 
427  typedef detail::tmat3x3<f32> fmat3;
428 
431  typedef detail::tmat4x4<f32> fmat4;
432 
433 
436  //typedef f32 fmat1x1;
437 
440  typedef detail::tmat2x2<f32> fmat2x2;
441 
444  typedef detail::tmat2x3<f32> fmat2x3;
445 
448  typedef detail::tmat2x4<f32> fmat2x4;
449 
452  typedef detail::tmat3x2<f32> fmat3x2;
453 
456  typedef detail::tmat3x3<f32> fmat3x3;
457 
460  typedef detail::tmat3x4<f32> fmat3x4;
461 
464  typedef detail::tmat4x2<f32> fmat4x2;
465 
468  typedef detail::tmat4x3<f32> fmat4x3;
469 
472  typedef detail::tmat4x4<f32> fmat4x4;
473 
474 
477  //typedef detail::tmat1x1<f16> f16mat1;
478 
481  typedef detail::tmat2x2<f16> f16mat2;
482 
485  typedef detail::tmat3x3<f16> f16mat3;
486 
489  typedef detail::tmat4x4<f16> f16mat4;
490 
491 
494  //typedef f16 f16mat1x1;
495 
498  typedef detail::tmat2x2<f16> f16mat2x2;
499 
502  typedef detail::tmat2x3<f16> f16mat2x3;
503 
506  typedef detail::tmat2x4<f16> f16mat2x4;
507 
510  typedef detail::tmat3x2<f16> f16mat3x2;
511 
514  typedef detail::tmat3x3<f16> f16mat3x3;
515 
518  typedef detail::tmat3x4<f16> f16mat3x4;
519 
522  typedef detail::tmat4x2<f16> f16mat4x2;
523 
526  typedef detail::tmat4x3<f16> f16mat4x3;
527 
530  typedef detail::tmat4x4<f16> f16mat4x4;
531 
532 
535  //typedef detail::tmat1x1<f32> f32mat1;
536 
539  typedef detail::tmat2x2<f32> f32mat2;
540 
543  typedef detail::tmat3x3<f32> f32mat3;
544 
547  typedef detail::tmat4x4<f32> f32mat4;
548 
549 
552  //typedef f32 f32mat1x1;
553 
556  typedef detail::tmat2x2<f32> f32mat2x2;
557 
560  typedef detail::tmat2x3<f32> f32mat2x3;
561 
564  typedef detail::tmat2x4<f32> f32mat2x4;
565 
568  typedef detail::tmat3x2<f32> f32mat3x2;
569 
572  typedef detail::tmat3x3<f32> f32mat3x3;
573 
576  typedef detail::tmat3x4<f32> f32mat3x4;
577 
580  typedef detail::tmat4x2<f32> f32mat4x2;
581 
584  typedef detail::tmat4x3<f32> f32mat4x3;
585 
588  typedef detail::tmat4x4<f32> f32mat4x4;
589 
590 
593  //typedef detail::tmat1x1<f64> f64mat1;
594 
597  typedef detail::tmat2x2<f64> f64mat2;
598 
601  typedef detail::tmat3x3<f64> f64mat3;
602 
605  typedef detail::tmat4x4<f64> f64mat4;
606 
607 
610  //typedef f64 f64mat1x1;
611 
614  typedef detail::tmat2x2<f64> f64mat2x2;
615 
618  typedef detail::tmat2x3<f64> f64mat2x3;
619 
622  typedef detail::tmat2x4<f64> f64mat2x4;
623 
626  typedef detail::tmat3x2<f64> f64mat3x2;
627 
630  typedef detail::tmat3x3<f64> f64mat3x3;
631 
634  typedef detail::tmat3x4<f64> f64mat3x4;
635 
638  typedef detail::tmat4x2<f64> f64mat4x2;
639 
642  typedef detail::tmat4x3<f64> f64mat4x3;
643 
646  typedef detail::tmat4x4<f64> f64mat4x4;
647 
648 
650  // Quaternion types
651 
654  typedef detail::tquat<f16> f16quat;
655 
658  typedef detail::tquat<f32> f32quat;
659 
662  typedef detail::tquat<f64> f64quat;
663 
665 }//namespace glm
666 
667 #include "type_precision.inl"
668 
669 #endif//GLM_GTC_type_precision