0.9.6
type_mat.hpp
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include "precision.hpp"
36 
37 namespace glm{
38 namespace detail
39 {
40  template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
41  struct outerProduct_trait{};
42 }//namespace detail
43 
44  template <typename T, precision P> struct tvec2;
45  template <typename T, precision P> struct tvec3;
46  template <typename T, precision P> struct tvec4;
47  template <typename T, precision P> struct tmat2x2;
48  template <typename T, precision P> struct tmat2x3;
49  template <typename T, precision P> struct tmat2x4;
50  template <typename T, precision P> struct tmat3x2;
51  template <typename T, precision P> struct tmat3x3;
52  template <typename T, precision P> struct tmat3x4;
53  template <typename T, precision P> struct tmat4x2;
54  template <typename T, precision P> struct tmat4x3;
55  template <typename T, precision P> struct tmat4x4;
56 
59 
65  typedef tmat2x2<float, lowp> lowp_mat2;
66 
72  typedef tmat2x2<float, mediump> mediump_mat2;
73 
79  typedef tmat2x2<float, highp> highp_mat2;
80 
86  typedef tmat2x2<float, lowp> lowp_mat2x2;
87 
93  typedef tmat2x2<float, mediump> mediump_mat2x2;
94 
100  typedef tmat2x2<float, highp> highp_mat2x2;
101 
103 
106 
112  typedef tmat2x3<float, lowp> lowp_mat2x3;
113 
119  typedef tmat2x3<float, mediump> mediump_mat2x3;
120 
126  typedef tmat2x3<float, highp> highp_mat2x3;
127 
129 
132 
138  typedef tmat2x4<float, lowp> lowp_mat2x4;
139 
145  typedef tmat2x4<float, mediump> mediump_mat2x4;
146 
152  typedef tmat2x4<float, highp> highp_mat2x4;
153 
155 
158 
164  typedef tmat3x2<float, lowp> lowp_mat3x2;
165 
171  typedef tmat3x2<float, mediump> mediump_mat3x2;
172 
178  typedef tmat3x2<float, highp> highp_mat3x2;
179 
181 
184 
190  typedef tmat3x3<float, lowp> lowp_mat3;
191 
197  typedef tmat3x3<float, mediump> mediump_mat3;
198 
204  typedef tmat3x3<float, highp> highp_mat3;
205 
211  typedef tmat3x3<float, lowp> lowp_mat3x3;
212 
218  typedef tmat3x3<float, mediump> mediump_mat3x3;
219 
225  typedef tmat3x3<float, highp> highp_mat3x3;
226 
228 
231 
237  typedef tmat3x4<float, lowp> lowp_mat3x4;
238 
244  typedef tmat3x4<float, mediump> mediump_mat3x4;
245 
251  typedef tmat3x4<float, highp> highp_mat3x4;
252 
254 
257 
263  typedef tmat4x2<float, lowp> lowp_mat4x2;
264 
270  typedef tmat4x2<float, mediump> mediump_mat4x2;
271 
277  typedef tmat4x2<float, highp> highp_mat4x2;
278 
280 
283 
289  typedef tmat4x3<float, lowp> lowp_mat4x3;
290 
296  typedef tmat4x3<float, mediump> mediump_mat4x3;
297 
303  typedef tmat4x3<float, highp> highp_mat4x3;
304 
306 
307 
310 
316  typedef tmat4x4<float, lowp> lowp_mat4;
317 
323  typedef tmat4x4<float, mediump> mediump_mat4;
324 
330  typedef tmat4x4<float, highp> highp_mat4;
331 
337  typedef tmat4x4<float, lowp> lowp_mat4x4;
338 
344  typedef tmat4x4<float, mediump> mediump_mat4x4;
345 
351  typedef tmat4x4<float, highp> highp_mat4x4;
352 
354 
357 
359  // Float definition
360 
361 #if(defined(GLM_PRECISION_LOWP_FLOAT))
362  typedef lowp_mat2x2 mat2x2;
363  typedef lowp_mat2x3 mat2x3;
364  typedef lowp_mat2x4 mat2x4;
365  typedef lowp_mat3x2 mat3x2;
366  typedef lowp_mat3x3 mat3x3;
367  typedef lowp_mat3x4 mat3x4;
368  typedef lowp_mat4x2 mat4x2;
369  typedef lowp_mat4x3 mat4x3;
370  typedef lowp_mat4x4 mat4x4;
371 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
372  typedef mediump_mat2x2 mat2x2;
373  typedef mediump_mat2x3 mat2x3;
374  typedef mediump_mat2x4 mat2x4;
375  typedef mediump_mat3x2 mat3x2;
376  typedef mediump_mat3x3 mat3x3;
377  typedef mediump_mat3x4 mat3x4;
378  typedef mediump_mat4x2 mat4x2;
379  typedef mediump_mat4x3 mat4x3;
380  typedef mediump_mat4x4 mat4x4;
381 #else
382  typedef highp_mat2x2 mat2x2;
386 
390  typedef highp_mat2x3 mat2x3;
391 
395  typedef highp_mat2x4 mat2x4;
396 
400  typedef highp_mat3x2 mat3x2;
401 
405  typedef highp_mat3x3 mat3x3;
406 
410  typedef highp_mat3x4 mat3x4;
411 
415  typedef highp_mat4x2 mat4x2;
416 
420  typedef highp_mat4x3 mat4x3;
421 
425  typedef highp_mat4x4 mat4x4;
426 
427 #endif//GLM_PRECISION
428 
432  typedef mat2x2 mat2;
433 
437  typedef mat3x3 mat3;
438 
442  typedef mat4x4 mat4;
443 
445  // Double definition
446 
449 
454  typedef tmat2x2<double, lowp> lowp_dmat2;
455 
460  typedef tmat2x2<double, mediump> mediump_dmat2;
461 
466  typedef tmat2x2<double, highp> highp_dmat2;
467 
472  typedef tmat2x2<double, lowp> lowp_dmat2x2;
473 
478  typedef tmat2x2<double, mediump> mediump_dmat2x2;
479 
484  typedef tmat2x2<double, highp> highp_dmat2x2;
485 
487 
490 
495  typedef tmat2x3<double, lowp> lowp_dmat2x3;
496 
501  typedef tmat2x3<double, mediump> mediump_dmat2x3;
502 
507  typedef tmat2x3<double, highp> highp_dmat2x3;
508 
510 
513 
518  typedef tmat2x4<double, lowp> lowp_dmat2x4;
519 
524  typedef tmat2x4<double, mediump> mediump_dmat2x4;
525 
530  typedef tmat2x4<double, highp> highp_dmat2x4;
531 
533 
536 
541  typedef tmat3x2<double, lowp> lowp_dmat3x2;
542 
547  typedef tmat3x2<double, mediump> mediump_dmat3x2;
548 
553  typedef tmat3x2<double, highp> highp_dmat3x2;
554 
556 
559 
564  typedef tmat3x3<float, lowp> lowp_dmat3;
565 
570  typedef tmat3x3<double, mediump> mediump_dmat3;
571 
576  typedef tmat3x3<double, highp> highp_dmat3;
577 
582  typedef tmat3x3<double, lowp> lowp_dmat3x3;
583 
588  typedef tmat3x3<double, mediump> mediump_dmat3x3;
589 
594  typedef tmat3x3<double, highp> highp_dmat3x3;
595 
597 
600 
605  typedef tmat3x4<double, lowp> lowp_dmat3x4;
606 
611  typedef tmat3x4<double, mediump> mediump_dmat3x4;
612 
617  typedef tmat3x4<double, highp> highp_dmat3x4;
618 
620 
623 
628  typedef tmat4x2<double, lowp> lowp_dmat4x2;
629 
634  typedef tmat4x2<double, mediump> mediump_dmat4x2;
635 
640  typedef tmat4x2<double, highp> highp_dmat4x2;
641 
643 
646 
651  typedef tmat4x3<double, lowp> lowp_dmat4x3;
652 
657  typedef tmat4x3<double, mediump> mediump_dmat4x3;
658 
663  typedef tmat4x3<double, highp> highp_dmat4x3;
664 
666 
669 
674  typedef tmat4x4<double, lowp> lowp_dmat4;
675 
680  typedef tmat4x4<double, mediump> mediump_dmat4;
681 
686  typedef tmat4x4<double, highp> highp_dmat4;
687 
692  typedef tmat4x4<double, lowp> lowp_dmat4x4;
693 
698  typedef tmat4x4<double, mediump> mediump_dmat4x4;
699 
704  typedef tmat4x4<double, highp> highp_dmat4x4;
705 
707 
708 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
709  typedef lowp_dmat2x2 dmat2x2;
710  typedef lowp_dmat2x3 dmat2x3;
711  typedef lowp_dmat2x4 dmat2x4;
712  typedef lowp_dmat3x2 dmat3x2;
713  typedef lowp_dmat3x3 dmat3x3;
714  typedef lowp_dmat3x4 dmat3x4;
715  typedef lowp_dmat4x2 dmat4x2;
716  typedef lowp_dmat4x3 dmat4x3;
717  typedef lowp_dmat4x4 dmat4x4;
718 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
719  typedef mediump_dmat2x2 dmat2x2;
720  typedef mediump_dmat2x3 dmat2x3;
721  typedef mediump_dmat2x4 dmat2x4;
722  typedef mediump_dmat3x2 dmat3x2;
723  typedef mediump_dmat3x3 dmat3x3;
724  typedef mediump_dmat3x4 dmat3x4;
725  typedef mediump_dmat4x2 dmat4x2;
726  typedef mediump_dmat4x3 dmat4x3;
727  typedef mediump_dmat4x4 dmat4x4;
728 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
729 
733  typedef highp_dmat2x2 dmat2;
734 
738  typedef highp_dmat3x3 dmat3;
739 
743  typedef highp_dmat4x4 dmat4;
744 
748  typedef highp_dmat2x2 dmat2x2;
749 
753  typedef highp_dmat2x3 dmat2x3;
754 
758  typedef highp_dmat2x4 dmat2x4;
759 
763  typedef highp_dmat3x2 dmat3x2;
764 
768  typedef highp_dmat3x3 dmat3x3;
769 
773  typedef highp_dmat3x4 dmat3x4;
774 
778  typedef highp_dmat4x2 dmat4x2;
779 
783  typedef highp_dmat4x3 dmat4x3;
784 
788  typedef highp_dmat4x4 dmat4x4;
789 
790 #endif//GLM_PRECISION
791 
793 }//namespace glm
tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:582
tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:753
tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:576
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:788
tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
OpenGL Mathematics (glm.g-truc.net)
tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:541
tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:410
tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:518
tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:763
tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:692
tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:617
tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:466
tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:738
tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:588
tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:454
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:547
tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:570
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:743
tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:657
tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:553
tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:530
tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:484
tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:400
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:778
tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:640
tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:524
tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:686
tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:704
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:472
tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:495
tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:564
tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:594
tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:783
tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:501
tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:507
tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:605
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:748
tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:698
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:420
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:628
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:733
tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:634
Definition: _noise.hpp:39
tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:663
tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:680
tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:478
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:395
tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:758
tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:405
tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:611
tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:651
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:390
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:768
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:773
tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:674
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:385
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:415
tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:460