0.9.7
type_vec.hpp
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include "precision.hpp"
36 #include "type_int.hpp"
37 
38 namespace glm
39 {
40  template <typename T, precision P> struct tvec1;
41  template <typename T, precision P> struct tvec2;
42  template <typename T, precision P> struct tvec3;
43  template <typename T, precision P> struct tvec4;
44 
45  typedef tvec1<float, highp> highp_vec1_t;
46  typedef tvec1<float, mediump> mediump_vec1_t;
47  typedef tvec1<float, lowp> lowp_vec1_t;
48  typedef tvec1<double, highp> highp_dvec1_t;
49  typedef tvec1<double, mediump> mediump_dvec1_t;
50  typedef tvec1<double, lowp> lowp_dvec1_t;
51  typedef tvec1<int, highp> highp_ivec1_t;
52  typedef tvec1<int, mediump> mediump_ivec1_t;
53  typedef tvec1<int, lowp> lowp_ivec1_t;
54  typedef tvec1<uint, highp> highp_uvec1_t;
55  typedef tvec1<uint, mediump> mediump_uvec1_t;
56  typedef tvec1<uint, lowp> lowp_uvec1_t;
57  typedef tvec1<bool, highp> highp_bvec1_t;
58  typedef tvec1<bool, mediump> mediump_bvec1_t;
59  typedef tvec1<bool, lowp> lowp_bvec1_t;
60 
63 
69  typedef tvec2<float, highp> highp_vec2;
70 
76  typedef tvec2<float, mediump> mediump_vec2;
77 
83  typedef tvec2<float, lowp> lowp_vec2;
84 
90  typedef tvec2<double, highp> highp_dvec2;
91 
97  typedef tvec2<double, mediump> mediump_dvec2;
98 
104  typedef tvec2<double, lowp> lowp_dvec2;
105 
111  typedef tvec2<int, highp> highp_ivec2;
112 
118  typedef tvec2<int, mediump> mediump_ivec2;
119 
125  typedef tvec2<int, lowp> lowp_ivec2;
126 
132  typedef tvec2<uint, highp> highp_uvec2;
133 
139  typedef tvec2<uint, mediump> mediump_uvec2;
140 
146  typedef tvec2<uint, lowp> lowp_uvec2;
147 
153  typedef tvec2<bool, highp> highp_bvec2;
154 
160  typedef tvec2<bool, mediump> mediump_bvec2;
161 
167  typedef tvec2<bool, lowp> lowp_bvec2;
168 
170 
173 
179  typedef tvec3<float, highp> highp_vec3;
180 
186  typedef tvec3<float, mediump> mediump_vec3;
187 
193  typedef tvec3<float, lowp> lowp_vec3;
194 
200  typedef tvec3<double, highp> highp_dvec3;
201 
207  typedef tvec3<double, mediump> mediump_dvec3;
208 
214  typedef tvec3<double, lowp> lowp_dvec3;
215 
221  typedef tvec3<int, highp> highp_ivec3;
222 
228  typedef tvec3<int, mediump> mediump_ivec3;
229 
235  typedef tvec3<int, lowp> lowp_ivec3;
236 
242  typedef tvec3<uint, highp> highp_uvec3;
243 
249  typedef tvec3<uint, mediump> mediump_uvec3;
250 
256  typedef tvec3<uint, lowp> lowp_uvec3;
257 
262  typedef tvec3<bool, highp> highp_bvec3;
263 
268  typedef tvec3<bool, mediump> mediump_bvec3;
269 
274  typedef tvec3<bool, lowp> lowp_bvec3;
275 
277 
280 
285  typedef tvec4<float, highp> highp_vec4;
286 
291  typedef tvec4<float, mediump> mediump_vec4;
292 
297  typedef tvec4<float, lowp> lowp_vec4;
298 
303  typedef tvec4<double, highp> highp_dvec4;
304 
309  typedef tvec4<double, mediump> mediump_dvec4;
310 
315  typedef tvec4<double, lowp> lowp_dvec4;
316 
321  typedef tvec4<int, highp> highp_ivec4;
322 
327  typedef tvec4<int, mediump> mediump_ivec4;
328 
333  typedef tvec4<int, lowp> lowp_ivec4;
334 
339  typedef tvec4<uint, highp> highp_uvec4;
340 
345  typedef tvec4<uint, mediump> mediump_uvec4;
346 
351  typedef tvec4<uint, lowp> lowp_uvec4;
352 
357  typedef tvec4<bool, highp> highp_bvec4;
358 
363  typedef tvec4<bool, mediump> mediump_bvec4;
364 
369  typedef tvec4<bool, lowp> lowp_bvec4;
370 
372 
375 
376  // -- Default float definition --
377 
378 #if(defined(GLM_PRECISION_LOWP_FLOAT))
379  typedef lowp_vec2 vec2;
380  typedef lowp_vec3 vec3;
381  typedef lowp_vec4 vec4;
382 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
383  typedef mediump_vec2 vec2;
384  typedef mediump_vec3 vec3;
385  typedef mediump_vec4 vec4;
386 #else //defined(GLM_PRECISION_HIGHP_FLOAT)
387  typedef highp_vec2 vec2;
391 
395  typedef highp_vec3 vec3;
396 
400  typedef highp_vec4 vec4;
401 #endif//GLM_PRECISION
402 
403  // -- Default double definition --
404 
405 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
406  typedef lowp_dvec2 dvec2;
407  typedef lowp_dvec3 dvec3;
408  typedef lowp_dvec4 dvec4;
409 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
410  typedef mediump_dvec2 dvec2;
411  typedef mediump_dvec3 dvec3;
412  typedef mediump_dvec4 dvec4;
413 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
414  typedef highp_dvec2 dvec2;
418 
422  typedef highp_dvec3 dvec3;
423 
427  typedef highp_dvec4 dvec4;
428 #endif//GLM_PRECISION
429 
430  // -- Signed integer definition --
431 
432 #if(defined(GLM_PRECISION_LOWP_INT))
433  typedef lowp_ivec2 ivec2;
434  typedef lowp_ivec3 ivec3;
435  typedef lowp_ivec4 ivec4;
436 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
437  typedef mediump_ivec2 ivec2;
438  typedef mediump_ivec3 ivec3;
439  typedef mediump_ivec4 ivec4;
440 #else //defined(GLM_PRECISION_HIGHP_INT)
441  typedef highp_ivec2 ivec2;
445 
449  typedef highp_ivec3 ivec3;
450 
454  typedef highp_ivec4 ivec4;
455 #endif//GLM_PRECISION
456 
457  // -- Unsigned integer definition --
458 
459 #if(defined(GLM_PRECISION_LOWP_UINT))
460  typedef lowp_uvec2 uvec2;
461  typedef lowp_uvec3 uvec3;
462  typedef lowp_uvec4 uvec4;
463 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
464  typedef mediump_uvec2 uvec2;
465  typedef mediump_uvec3 uvec3;
466  typedef mediump_uvec4 uvec4;
467 #else //defined(GLM_PRECISION_HIGHP_UINT)
468  typedef highp_uvec2 uvec2;
472 
476  typedef highp_uvec3 uvec3;
477 
481  typedef highp_uvec4 uvec4;
482 #endif//GLM_PRECISION
483 
484  // -- Boolean definition --
485 
486 #if(defined(GLM_PRECISION_LOWP_BOOL))
487  typedef lowp_bvec2 bvec2;
488  typedef lowp_bvec3 bvec3;
489  typedef lowp_bvec4 bvec4;
490 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
491  typedef mediump_bvec2 bvec2;
492  typedef mediump_bvec3 bvec3;
493  typedef mediump_bvec4 bvec4;
494 #else //defined(GLM_PRECISION_HIGHP_BOOL)
495  typedef highp_bvec2 bvec2;
499 
503  typedef highp_bvec3 bvec3;
504 
508  typedef highp_bvec4 bvec4;
509 #endif//GLM_PRECISION
510 
512 }//namespace glm
tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:69
highp_ivec3 ivec3
3 components vector of signed integer numbers.
Definition: type_vec.hpp:449
tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:186
highp_dvec2 dvec2
2 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:417
tvec2< int, lowp > lowp_ivec2
2 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:125
highp_uvec3 uvec3
3 components vector of unsigned integer numbers.
Definition: type_vec.hpp:476
tvec3< double, highp > highp_dvec3
3 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:200
tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:76
tvec4< double, mediump > mediump_dvec4
4 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:309
tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:179
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:481
highp_dvec4 dvec4
4 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:427
tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:285
tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:291
tvec4< uint, highp > highp_uvec4
4 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:339
tvec4< bool, highp > highp_bvec4
4 components vector of high precision bool numbers.
Definition: type_vec.hpp:357
tvec3< int, highp > highp_ivec3
3 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:221
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:390
tvec4< bool, lowp > lowp_bvec4
4 components vector of low precision bool numbers.
Definition: type_vec.hpp:369
tvec4< uint, mediump > mediump_uvec4
4 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:345
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:471
tvec2< double, lowp > lowp_dvec2
2 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:104
tvec3< int, mediump > mediump_ivec3
3 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:228
tvec2< bool, lowp > lowp_bvec2
2 components vector of low precision bool numbers.
Definition: type_vec.hpp:167
tvec4< int, mediump > mediump_ivec4
4 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:327
tvec2< uint, mediump > mediump_uvec2
2 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:139
highp_bvec2 bvec2
2 components vector of boolean.
Definition: type_vec.hpp:498
tvec4< bool, mediump > mediump_bvec4
4 components vector of medium precision bool numbers.
Definition: type_vec.hpp:363
tvec4< int, lowp > lowp_ivec4
4 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:333
tvec3< bool, mediump > mediump_bvec3
3 components vector of medium precision bool numbers.
Definition: type_vec.hpp:268
tvec3< double, mediump > mediump_dvec3
3 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:207
tvec2< double, mediump > mediump_dvec2
2 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:97
Definition: _noise.hpp:40
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:454
highp_bvec4 bvec4
4 components vector of boolean.
Definition: type_vec.hpp:508
tvec2< bool, mediump > mediump_bvec2
2 components vector of medium precision bool numbers.
Definition: type_vec.hpp:160
tvec2< int, highp > highp_ivec2
2 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:111
tvec3< bool, lowp > lowp_bvec3
3 components vector of low precision bool numbers.
Definition: type_vec.hpp:274
tvec4< double, lowp > lowp_dvec4
4 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:315
tvec2< bool, highp > highp_bvec2
2 components vector of high precision bool numbers.
Definition: type_vec.hpp:153
highp_bvec3 bvec3
3 components vector of boolean.
Definition: type_vec.hpp:503
tvec3< double, lowp > lowp_dvec3
3 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:214
tvec4< double, highp > highp_dvec4
4 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:303
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:400
tvec4< uint, lowp > lowp_uvec4
4 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:351
tvec3< int, lowp > lowp_ivec3
3 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:235
tvec2< uint, lowp > lowp_uvec2
2 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:146
tvec3< uint, mediump > mediump_uvec3
3 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:249
tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:83
tvec3< uint, lowp > lowp_uvec3
3 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:256
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:395
highp_dvec3 dvec3
3 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:422
tvec3< uint, highp > highp_uvec3
3 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:242
tvec3< bool, highp > highp_bvec3
3 components vector of high precision bool numbers.
Definition: type_vec.hpp:262
tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:193
highp_ivec2 ivec2
2 components vector of signed integer numbers.
Definition: type_vec.hpp:444
tvec2< uint, highp > highp_uvec2
2 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:132
tvec2< int, mediump > mediump_ivec2
2 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:118
OpenGL Mathematics (glm.g-truc.net)
tvec4< int, highp > highp_ivec4
4 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:321
tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:297
OpenGL Mathematics (glm.g-truc.net)
tvec2< double, highp > highp_dvec2
2 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:90