0.9.6
type_mat.hpp
Go to the documentation of this file.
1 
29 #pragma once
30 
31 #include "precision.hpp"
32 
33 namespace glm{
34 namespace detail
35 {
36  template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
37  struct outerProduct_trait{};
38 }//namespace detail
39 
40  template <typename T, precision P> struct tvec2;
41  template <typename T, precision P> struct tvec3;
42  template <typename T, precision P> struct tvec4;
43  template <typename T, precision P> struct tmat2x2;
44  template <typename T, precision P> struct tmat2x3;
45  template <typename T, precision P> struct tmat2x4;
46  template <typename T, precision P> struct tmat3x2;
47  template <typename T, precision P> struct tmat3x3;
48  template <typename T, precision P> struct tmat3x4;
49  template <typename T, precision P> struct tmat4x2;
50  template <typename T, precision P> struct tmat4x3;
51  template <typename T, precision P> struct tmat4x4;
52 
55 
61  typedef tmat2x2<float, lowp> lowp_mat2;
62 
68  typedef tmat2x2<float, mediump> mediump_mat2;
69 
75  typedef tmat2x2<float, highp> highp_mat2;
76 
82  typedef tmat2x2<float, lowp> lowp_mat2x2;
83 
89  typedef tmat2x2<float, mediump> mediump_mat2x2;
90 
96  typedef tmat2x2<float, highp> highp_mat2x2;
97 
99 
102 
108  typedef tmat2x3<float, lowp> lowp_mat2x3;
109 
115  typedef tmat2x3<float, mediump> mediump_mat2x3;
116 
122  typedef tmat2x3<float, highp> highp_mat2x3;
123 
125 
128 
134  typedef tmat2x4<float, lowp> lowp_mat2x4;
135 
141  typedef tmat2x4<float, mediump> mediump_mat2x4;
142 
148  typedef tmat2x4<float, highp> highp_mat2x4;
149 
151 
154 
160  typedef tmat3x2<float, lowp> lowp_mat3x2;
161 
167  typedef tmat3x2<float, mediump> mediump_mat3x2;
168 
174  typedef tmat3x2<float, highp> highp_mat3x2;
175 
177 
180 
186  typedef tmat3x3<float, lowp> lowp_mat3;
187 
193  typedef tmat3x3<float, mediump> mediump_mat3;
194 
200  typedef tmat3x3<float, highp> highp_mat3;
201 
207  typedef tmat3x3<float, lowp> lowp_mat3x3;
208 
214  typedef tmat3x3<float, mediump> mediump_mat3x3;
215 
221  typedef tmat3x3<float, highp> highp_mat3x3;
222 
224 
227 
233  typedef tmat3x4<float, lowp> lowp_mat3x4;
234 
240  typedef tmat3x4<float, mediump> mediump_mat3x4;
241 
247  typedef tmat3x4<float, highp> highp_mat3x4;
248 
250 
253 
259  typedef tmat4x2<float, lowp> lowp_mat4x2;
260 
266  typedef tmat4x2<float, mediump> mediump_mat4x2;
267 
273  typedef tmat4x2<float, highp> highp_mat4x2;
274 
276 
279 
285  typedef tmat4x3<float, lowp> lowp_mat4x3;
286 
292  typedef tmat4x3<float, mediump> mediump_mat4x3;
293 
299  typedef tmat4x3<float, highp> highp_mat4x3;
300 
302 
303 
306 
312  typedef tmat4x4<float, lowp> lowp_mat4;
313 
319  typedef tmat4x4<float, mediump> mediump_mat4;
320 
326  typedef tmat4x4<float, highp> highp_mat4;
327 
333  typedef tmat4x4<float, lowp> lowp_mat4x4;
334 
340  typedef tmat4x4<float, mediump> mediump_mat4x4;
341 
347  typedef tmat4x4<float, highp> highp_mat4x4;
348 
350 
353 
355  // Float definition
356 
357 #if(defined(GLM_PRECISION_LOWP_FLOAT))
358  typedef lowp_mat2x2 mat2x2;
359  typedef lowp_mat2x3 mat2x3;
360  typedef lowp_mat2x4 mat2x4;
361  typedef lowp_mat3x2 mat3x2;
362  typedef lowp_mat3x3 mat3x3;
363  typedef lowp_mat3x4 mat3x4;
364  typedef lowp_mat4x2 mat4x2;
365  typedef lowp_mat4x3 mat4x3;
366  typedef lowp_mat4x4 mat4x4;
367 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
368  typedef mediump_mat2x2 mat2x2;
369  typedef mediump_mat2x3 mat2x3;
370  typedef mediump_mat2x4 mat2x4;
371  typedef mediump_mat3x2 mat3x2;
372  typedef mediump_mat3x3 mat3x3;
373  typedef mediump_mat3x4 mat3x4;
374  typedef mediump_mat4x2 mat4x2;
375  typedef mediump_mat4x3 mat4x3;
376  typedef mediump_mat4x4 mat4x4;
377 #else
378  typedef highp_mat2x2 mat2x2;
382 
386  typedef highp_mat2x3 mat2x3;
387 
391  typedef highp_mat2x4 mat2x4;
392 
396  typedef highp_mat3x2 mat3x2;
397 
401  typedef highp_mat3x3 mat3x3;
402 
406  typedef highp_mat3x4 mat3x4;
407 
411  typedef highp_mat4x2 mat4x2;
412 
416  typedef highp_mat4x3 mat4x3;
417 
421  typedef highp_mat4x4 mat4x4;
422 
423 #endif//GLM_PRECISION
424 
428  typedef mat2x2 mat2;
429 
433  typedef mat3x3 mat3;
434 
438  typedef mat4x4 mat4;
439 
441  // Double definition
442 
445 
450  typedef tmat2x2<double, lowp> lowp_dmat2;
451 
456  typedef tmat2x2<double, mediump> mediump_dmat2;
457 
462  typedef tmat2x2<double, highp> highp_dmat2;
463 
468  typedef tmat2x2<double, lowp> lowp_dmat2x2;
469 
474  typedef tmat2x2<double, mediump> mediump_dmat2x2;
475 
480  typedef tmat2x2<double, highp> highp_dmat2x2;
481 
483 
486 
491  typedef tmat2x3<double, lowp> lowp_dmat2x3;
492 
497  typedef tmat2x3<double, mediump> mediump_dmat2x3;
498 
503  typedef tmat2x3<double, highp> highp_dmat2x3;
504 
506 
509 
514  typedef tmat2x4<double, lowp> lowp_dmat2x4;
515 
520  typedef tmat2x4<double, mediump> mediump_dmat2x4;
521 
526  typedef tmat2x4<double, highp> highp_dmat2x4;
527 
529 
532 
537  typedef tmat3x2<double, lowp> lowp_dmat3x2;
538 
543  typedef tmat3x2<double, mediump> mediump_dmat3x2;
544 
549  typedef tmat3x2<double, highp> highp_dmat3x2;
550 
552 
555 
560  typedef tmat3x3<float, lowp> lowp_dmat3;
561 
566  typedef tmat3x3<double, mediump> mediump_dmat3;
567 
572  typedef tmat3x3<double, highp> highp_dmat3;
573 
578  typedef tmat3x3<double, lowp> lowp_dmat3x3;
579 
584  typedef tmat3x3<double, mediump> mediump_dmat3x3;
585 
590  typedef tmat3x3<double, highp> highp_dmat3x3;
591 
593 
596 
601  typedef tmat3x4<double, lowp> lowp_dmat3x4;
602 
607  typedef tmat3x4<double, mediump> mediump_dmat3x4;
608 
613  typedef tmat3x4<double, highp> highp_dmat3x4;
614 
616 
619 
624  typedef tmat4x2<double, lowp> lowp_dmat4x2;
625 
630  typedef tmat4x2<double, mediump> mediump_dmat4x2;
631 
636  typedef tmat4x2<double, highp> highp_dmat4x2;
637 
639 
642 
647  typedef tmat4x3<double, lowp> lowp_dmat4x3;
648 
653  typedef tmat4x3<double, mediump> mediump_dmat4x3;
654 
659  typedef tmat4x3<double, highp> highp_dmat4x3;
660 
662 
665 
670  typedef tmat4x4<double, lowp> lowp_dmat4;
671 
676  typedef tmat4x4<double, mediump> mediump_dmat4;
677 
682  typedef tmat4x4<double, highp> highp_dmat4;
683 
688  typedef tmat4x4<double, lowp> lowp_dmat4x4;
689 
694  typedef tmat4x4<double, mediump> mediump_dmat4x4;
695 
700  typedef tmat4x4<double, highp> highp_dmat4x4;
701 
703 
704 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
705  typedef lowp_dmat2x2 dmat2x2;
706  typedef lowp_dmat2x3 dmat2x3;
707  typedef lowp_dmat2x4 dmat2x4;
708  typedef lowp_dmat3x2 dmat3x2;
709  typedef lowp_dmat3x3 dmat3x3;
710  typedef lowp_dmat3x4 dmat3x4;
711  typedef lowp_dmat4x2 dmat4x2;
712  typedef lowp_dmat4x3 dmat4x3;
713  typedef lowp_dmat4x4 dmat4x4;
714 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
715  typedef mediump_dmat2x2 dmat2x2;
716  typedef mediump_dmat2x3 dmat2x3;
717  typedef mediump_dmat2x4 dmat2x4;
718  typedef mediump_dmat3x2 dmat3x2;
719  typedef mediump_dmat3x3 dmat3x3;
720  typedef mediump_dmat3x4 dmat3x4;
721  typedef mediump_dmat4x2 dmat4x2;
722  typedef mediump_dmat4x3 dmat4x3;
723  typedef mediump_dmat4x4 dmat4x4;
724 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
725 
729  typedef highp_dmat2x2 dmat2;
730 
734  typedef highp_dmat3x3 dmat3;
735 
739  typedef highp_dmat4x4 dmat4;
740 
744  typedef highp_dmat2x2 dmat2x2;
745 
749  typedef highp_dmat2x3 dmat2x3;
750 
754  typedef highp_dmat2x4 dmat2x4;
755 
759  typedef highp_dmat3x2 dmat3x2;
760 
764  typedef highp_dmat3x3 dmat3x3;
765 
769  typedef highp_dmat3x4 dmat3x4;
770 
774  typedef highp_dmat4x2 dmat4x2;
775 
779  typedef highp_dmat4x3 dmat4x3;
780 
784  typedef highp_dmat4x4 dmat4x4;
785 
786 #endif//GLM_PRECISION
787 
789 }//namespace glm
tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:450
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:433
tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:200
tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:186
tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:233
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:428
tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:134
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:744
tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:247
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:421
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:438
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:779
tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:456
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:391
tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:347
tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:688
tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:240
tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:68
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:396
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:401
tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:160
tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:312
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:416
tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:607
tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:462
tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:647
tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:122
tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:543
tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:682
tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:82
tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:491
tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:273
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:769
tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:292
tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:108
tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:333
tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:148
tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:670
tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:96
tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:340
tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:636
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:411
tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:700
tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:89
tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:115
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:754
tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:497
tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:584
tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:537
tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:624
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:729
tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:676
tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:259
tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:266
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:784
tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:326
tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:630
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:381
tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:221
tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:514
tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:474
tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:520
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:386
Definition: _noise.hpp:31
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:759
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:764
tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:167
tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:653
tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:560
tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:613
tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:480
tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:578
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:749
tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:299
tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:61
tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:566
tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:285
tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:174
tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:75
tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:526
tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:601
tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:141
tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:214
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:406
tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:319
tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:207
tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:193
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:734
tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:549
OpenGL Mathematics (glm.g-truc.net)
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:739
tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:694
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:774
tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:572
tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:590
tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:659
tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:468
tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:503