@@ -17,25 +17,30 @@ namespace detail
17
17
char _buffer[1 ];
18
18
};
19
19
20
- template <int N, typename T, qualifier Q, int E0 , int E1 , int E2 , int E3 , bool Aligned >
20
+ template <int N, typename T, qualifier Q, int E0 , int E1 , int E2 , int E3 , bool UseSimd >
21
21
struct _swizzle_base1 : public _swizzle_base0 <T, N>
22
22
{
23
23
};
24
24
25
- template <typename T, qualifier Q, int E0 , int E1 , bool Aligned>
26
- struct _swizzle_base1 <2 , T, Q, E0 ,E1 ,-1 ,-2 , Aligned> : public _swizzle_base0<T, 2 >
25
+ template <int N, typename T, qualifier Q, int E0 , int E1 , int E2 , int E3 >
26
+ struct _swizzle_base1 <N, T, Q, E0 , E1 , E2 , E3 , false > : public _swizzle_base0<T, N>
27
+ {
28
+ };
29
+
30
+ template <typename T, qualifier Q, int E0 , int E1 >
31
+ struct _swizzle_base1 <2 , T, Q, E0 ,E1 ,-1 ,-2 , false > : public _swizzle_base0<T, 2 >
27
32
{
28
33
GLM_FUNC_QUALIFIER vec<2 , T, Q> operator ()() const { return vec<2 , T, Q>(this ->elem (E0 ), this ->elem (E1 )); }
29
34
};
30
35
31
- template <typename T, qualifier Q, int E0 , int E1 , int E2 , bool Aligned >
32
- struct _swizzle_base1 <3 , T, Q, E0 ,E1 ,E2 ,- 1 , Aligned > : public _swizzle_base0<T, 3 >
36
+ template <typename T, qualifier Q, int E0 , int E1 , int E2 >
37
+ struct _swizzle_base1 <3 , T, Q, E0 ,E1 ,E2 ,3 , false > : public _swizzle_base0<T, 3 >
33
38
{
34
39
GLM_FUNC_QUALIFIER vec<3 , T, Q> operator ()() const { return vec<3 , T, Q>(this ->elem (E0 ), this ->elem (E1 ), this ->elem (E2 )); }
35
40
};
36
41
37
- template <typename T, qualifier Q, int E0 , int E1 , int E2 , int E3 , bool Aligned >
38
- struct _swizzle_base1 <4 , T, Q, E0 ,E1 ,E2 ,E3 , Aligned > : public _swizzle_base0<T, 4 >
42
+ template <typename T, qualifier Q, int E0 , int E1 , int E2 , int E3 >
43
+ struct _swizzle_base1 <4 , T, Q, E0 ,E1 ,E2 ,E3 , false > : public _swizzle_base0<T, 4 >
39
44
{
40
45
GLM_FUNC_QUALIFIER vec<4 , T, Q> operator ()() const { return vec<4 , T, Q>(this ->elem (E0 ), this ->elem (E1 ), this ->elem (E2 ), this ->elem (E3 )); }
41
46
};
@@ -350,33 +355,33 @@ namespace glm
350
355
struct { detail::_swizzle<2 ,T, Q, 2 ,2 ,-1 ,-2 > E2 ## E2 ; };
351
356
352
357
#define GLM_SWIZZLE3_3_MEMBERS (T, Q ,E0,E1,E2 ) \
353
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,0 ,- 1 > E0 ## E0 ## E0 ; }; \
354
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,1 ,- 1 > E0 ## E0 ## E1 ; }; \
355
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,2 ,- 1 > E0 ## E0 ## E2 ; }; \
356
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,0 ,- 1 > E0 ## E1 ## E0 ; }; \
357
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,1 ,- 1 > E0 ## E1 ## E1 ; }; \
358
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,2 ,- 1 > E0 ## E1 ## E2 ; }; \
359
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,0 ,- 1 > E0 ## E2 ## E0 ; }; \
360
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,1 ,- 1 > E0 ## E2 ## E1 ; }; \
361
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,2 ,- 1 > E0 ## E2 ## E2 ; }; \
362
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,0 ,- 1 > E1 ## E0 ## E0 ; }; \
363
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,1 ,- 1 > E1 ## E0 ## E1 ; }; \
364
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,2 ,- 1 > E1 ## E0 ## E2 ; }; \
365
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,0 ,- 1 > E1 ## E1 ## E0 ; }; \
366
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,1 ,- 1 > E1 ## E1 ## E1 ; }; \
367
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,2 ,- 1 > E1 ## E1 ## E2 ; }; \
368
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,0 ,- 1 > E1 ## E2 ## E0 ; }; \
369
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,1 ,- 1 > E1 ## E2 ## E1 ; }; \
370
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,2 ,- 1 > E1 ## E2 ## E2 ; }; \
371
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,0 ,- 1 > E2 ## E0 ## E0 ; }; \
372
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,1 ,- 1 > E2 ## E0 ## E1 ; }; \
373
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,2 ,- 1 > E2 ## E0 ## E2 ; }; \
374
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,0 ,- 1 > E2 ## E1 ## E0 ; }; \
375
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,1 ,- 1 > E2 ## E1 ## E1 ; }; \
376
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,2 ,- 1 > E2 ## E1 ## E2 ; }; \
377
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,0 ,- 1 > E2 ## E2 ## E0 ; }; \
378
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,1 ,- 1 > E2 ## E2 ## E1 ; }; \
379
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,2 ,- 1 > E2 ## E2 ## E2 ; };
358
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,0 ,3 > E0 ## E0 ## E0 ; }; \
359
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,1 ,3 > E0 ## E0 ## E1 ; }; \
360
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,2 ,3 > E0 ## E0 ## E2 ; }; \
361
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,0 ,3 > E0 ## E1 ## E0 ; }; \
362
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,1 ,3 > E0 ## E1 ## E1 ; }; \
363
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,2 ,3 > E0 ## E1 ## E2 ; }; \
364
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,0 ,3 > E0 ## E2 ## E0 ; }; \
365
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,1 ,3 > E0 ## E2 ## E1 ; }; \
366
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,2 ,3 > E0 ## E2 ## E2 ; }; \
367
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,0 ,3 > E1 ## E0 ## E0 ; }; \
368
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,1 ,3 > E1 ## E0 ## E1 ; }; \
369
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,2 ,3 > E1 ## E0 ## E2 ; }; \
370
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,0 ,3 > E1 ## E1 ## E0 ; }; \
371
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,1 ,3 > E1 ## E1 ## E1 ; }; \
372
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,2 ,3 > E1 ## E1 ## E2 ; }; \
373
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,0 ,3 > E1 ## E2 ## E0 ; }; \
374
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,1 ,3 > E1 ## E2 ## E1 ; }; \
375
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,2 ,3 > E1 ## E2 ## E2 ; }; \
376
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,0 ,3 > E2 ## E0 ## E0 ; }; \
377
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,1 ,3 > E2 ## E0 ## E1 ; }; \
378
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,2 ,3 > E2 ## E0 ## E2 ; }; \
379
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,0 ,3 > E2 ## E1 ## E0 ; }; \
380
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,1 ,3 > E2 ## E1 ## E1 ; }; \
381
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,2 ,3 > E2 ## E1 ## E2 ; }; \
382
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,0 ,3 > E2 ## E2 ## E0 ; }; \
383
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,1 ,3 > E2 ## E2 ## E1 ; }; \
384
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,2 ,3 > E2 ## E2 ## E2 ; };
380
385
381
386
#define GLM_SWIZZLE3_4_MEMBERS (T, Q, E0,E1,E2 ) \
382
387
struct { detail::_swizzle<4 ,T, Q, 0 ,0 ,0 ,0 > E0 ## E0 ## E0 ## E0 ; }; \
@@ -480,70 +485,70 @@ namespace glm
480
485
struct { detail::_swizzle<2 ,T, Q, 3 ,3 ,-1 ,-2 > E3 ## E3 ; };
481
486
482
487
#define GLM_SWIZZLE4_3_MEMBERS (T, Q, E0,E1,E2,E3 ) \
483
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,0 ,- 1 > E0 ## E0 ## E0 ; }; \
484
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,1 ,- 1 > E0 ## E0 ## E1 ; }; \
485
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,2 ,- 1 > E0 ## E0 ## E2 ; }; \
486
- struct { detail::_swizzle<3 , T, Q, 0 ,0 ,3 ,- 1 > E0 ## E0 ## E3 ; }; \
487
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,0 ,- 1 > E0 ## E1 ## E0 ; }; \
488
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,1 ,- 1 > E0 ## E1 ## E1 ; }; \
489
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,2 ,- 1 > E0 ## E1 ## E2 ; }; \
490
- struct { detail::_swizzle<3 , T, Q, 0 ,1 ,3 ,- 1 > E0 ## E1 ## E3 ; }; \
491
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,0 ,- 1 > E0 ## E2 ## E0 ; }; \
492
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,1 ,- 1 > E0 ## E2 ## E1 ; }; \
493
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,2 ,- 1 > E0 ## E2 ## E2 ; }; \
494
- struct { detail::_swizzle<3 , T, Q, 0 ,2 ,3 ,- 1 > E0 ## E2 ## E3 ; }; \
495
- struct { detail::_swizzle<3 , T, Q, 0 ,3 ,0 ,- 1 > E0 ## E3 ## E0 ; }; \
496
- struct { detail::_swizzle<3 , T, Q, 0 ,3 ,1 ,- 1 > E0 ## E3 ## E1 ; }; \
497
- struct { detail::_swizzle<3 , T, Q, 0 ,3 ,2 ,- 1 > E0 ## E3 ## E2 ; }; \
498
- struct { detail::_swizzle<3 , T, Q, 0 ,3 ,3 ,- 1 > E0 ## E3 ## E3 ; }; \
499
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,0 ,- 1 > E1 ## E0 ## E0 ; }; \
500
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,1 ,- 1 > E1 ## E0 ## E1 ; }; \
501
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,2 ,- 1 > E1 ## E0 ## E2 ; }; \
502
- struct { detail::_swizzle<3 , T, Q, 1 ,0 ,3 ,- 1 > E1 ## E0 ## E3 ; }; \
503
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,0 ,- 1 > E1 ## E1 ## E0 ; }; \
504
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,1 ,- 1 > E1 ## E1 ## E1 ; }; \
505
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,2 ,- 1 > E1 ## E1 ## E2 ; }; \
506
- struct { detail::_swizzle<3 , T, Q, 1 ,1 ,3 ,- 1 > E1 ## E1 ## E3 ; }; \
507
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,0 ,- 1 > E1 ## E2 ## E0 ; }; \
508
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,1 ,- 1 > E1 ## E2 ## E1 ; }; \
509
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,2 ,- 1 > E1 ## E2 ## E2 ; }; \
510
- struct { detail::_swizzle<3 , T, Q, 1 ,2 ,3 ,- 1 > E1 ## E2 ## E3 ; }; \
511
- struct { detail::_swizzle<3 , T, Q, 1 ,3 ,0 ,- 1 > E1 ## E3 ## E0 ; }; \
512
- struct { detail::_swizzle<3 , T, Q, 1 ,3 ,1 ,- 1 > E1 ## E3 ## E1 ; }; \
513
- struct { detail::_swizzle<3 , T, Q, 1 ,3 ,2 ,- 1 > E1 ## E3 ## E2 ; }; \
514
- struct { detail::_swizzle<3 , T, Q, 1 ,3 ,3 ,- 1 > E1 ## E3 ## E3 ; }; \
515
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,0 ,- 1 > E2 ## E0 ## E0 ; }; \
516
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,1 ,- 1 > E2 ## E0 ## E1 ; }; \
517
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,2 ,- 1 > E2 ## E0 ## E2 ; }; \
518
- struct { detail::_swizzle<3 , T, Q, 2 ,0 ,3 ,- 1 > E2 ## E0 ## E3 ; }; \
519
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,0 ,- 1 > E2 ## E1 ## E0 ; }; \
520
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,1 ,- 1 > E2 ## E1 ## E1 ; }; \
521
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,2 ,- 1 > E2 ## E1 ## E2 ; }; \
522
- struct { detail::_swizzle<3 , T, Q, 2 ,1 ,3 ,- 1 > E2 ## E1 ## E3 ; }; \
523
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,0 ,- 1 > E2 ## E2 ## E0 ; }; \
524
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,1 ,- 1 > E2 ## E2 ## E1 ; }; \
525
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,2 ,- 1 > E2 ## E2 ## E2 ; }; \
526
- struct { detail::_swizzle<3 , T, Q, 2 ,2 ,3 ,- 1 > E2 ## E2 ## E3 ; }; \
527
- struct { detail::_swizzle<3 , T, Q, 2 ,3 ,0 ,- 1 > E2 ## E3 ## E0 ; }; \
528
- struct { detail::_swizzle<3 , T, Q, 2 ,3 ,1 ,- 1 > E2 ## E3 ## E1 ; }; \
529
- struct { detail::_swizzle<3 , T, Q, 2 ,3 ,2 ,- 1 > E2 ## E3 ## E2 ; }; \
530
- struct { detail::_swizzle<3 , T, Q, 2 ,3 ,3 ,- 1 > E2 ## E3 ## E3 ; }; \
531
- struct { detail::_swizzle<3 , T, Q, 3 ,0 ,0 ,- 1 > E3 ## E0 ## E0 ; }; \
532
- struct { detail::_swizzle<3 , T, Q, 3 ,0 ,1 ,- 1 > E3 ## E0 ## E1 ; }; \
533
- struct { detail::_swizzle<3 , T, Q, 3 ,0 ,2 ,- 1 > E3 ## E0 ## E2 ; }; \
534
- struct { detail::_swizzle<3 , T, Q, 3 ,0 ,3 ,- 1 > E3 ## E0 ## E3 ; }; \
535
- struct { detail::_swizzle<3 , T, Q, 3 ,1 ,0 ,- 1 > E3 ## E1 ## E0 ; }; \
536
- struct { detail::_swizzle<3 , T, Q, 3 ,1 ,1 ,- 1 > E3 ## E1 ## E1 ; }; \
537
- struct { detail::_swizzle<3 , T, Q, 3 ,1 ,2 ,- 1 > E3 ## E1 ## E2 ; }; \
538
- struct { detail::_swizzle<3 , T, Q, 3 ,1 ,3 ,- 1 > E3 ## E1 ## E3 ; }; \
539
- struct { detail::_swizzle<3 , T, Q, 3 ,2 ,0 ,- 1 > E3 ## E2 ## E0 ; }; \
540
- struct { detail::_swizzle<3 , T, Q, 3 ,2 ,1 ,- 1 > E3 ## E2 ## E1 ; }; \
541
- struct { detail::_swizzle<3 , T, Q, 3 ,2 ,2 ,- 1 > E3 ## E2 ## E2 ; }; \
542
- struct { detail::_swizzle<3 , T, Q, 3 ,2 ,3 ,- 1 > E3 ## E2 ## E3 ; }; \
543
- struct { detail::_swizzle<3 , T, Q, 3 ,3 ,0 ,- 1 > E3 ## E3 ## E0 ; }; \
544
- struct { detail::_swizzle<3 , T, Q, 3 ,3 ,1 ,- 1 > E3 ## E3 ## E1 ; }; \
545
- struct { detail::_swizzle<3 , T, Q, 3 ,3 ,2 ,- 1 > E3 ## E3 ## E2 ; }; \
546
- struct { detail::_swizzle<3 , T, Q, 3 ,3 ,3 ,- 1 > E3 ## E3 ## E3 ; };
488
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,0 ,3 > E0 ## E0 ## E0 ; }; \
489
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,1 ,3 > E0 ## E0 ## E1 ; }; \
490
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,2 ,3 > E0 ## E0 ## E2 ; }; \
491
+ struct { detail::_swizzle<3 , T, Q, 0 ,0 ,3 ,3 > E0 ## E0 ## E3 ; }; \
492
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,0 ,3 > E0 ## E1 ## E0 ; }; \
493
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,1 ,3 > E0 ## E1 ## E1 ; }; \
494
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,2 ,3 > E0 ## E1 ## E2 ; }; \
495
+ struct { detail::_swizzle<3 , T, Q, 0 ,1 ,3 ,3 > E0 ## E1 ## E3 ; }; \
496
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,0 ,3 > E0 ## E2 ## E0 ; }; \
497
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,1 ,3 > E0 ## E2 ## E1 ; }; \
498
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,2 ,3 > E0 ## E2 ## E2 ; }; \
499
+ struct { detail::_swizzle<3 , T, Q, 0 ,2 ,3 ,3 > E0 ## E2 ## E3 ; }; \
500
+ struct { detail::_swizzle<3 , T, Q, 0 ,3 ,0 ,3 > E0 ## E3 ## E0 ; }; \
501
+ struct { detail::_swizzle<3 , T, Q, 0 ,3 ,1 ,3 > E0 ## E3 ## E1 ; }; \
502
+ struct { detail::_swizzle<3 , T, Q, 0 ,3 ,2 ,3 > E0 ## E3 ## E2 ; }; \
503
+ struct { detail::_swizzle<3 , T, Q, 0 ,3 ,3 ,3 > E0 ## E3 ## E3 ; }; \
504
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,0 ,3 > E1 ## E0 ## E0 ; }; \
505
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,1 ,3 > E1 ## E0 ## E1 ; }; \
506
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,2 ,3 > E1 ## E0 ## E2 ; }; \
507
+ struct { detail::_swizzle<3 , T, Q, 1 ,0 ,3 ,3 > E1 ## E0 ## E3 ; }; \
508
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,0 ,3 > E1 ## E1 ## E0 ; }; \
509
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,1 ,3 > E1 ## E1 ## E1 ; }; \
510
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,2 ,3 > E1 ## E1 ## E2 ; }; \
511
+ struct { detail::_swizzle<3 , T, Q, 1 ,1 ,3 ,3 > E1 ## E1 ## E3 ; }; \
512
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,0 ,3 > E1 ## E2 ## E0 ; }; \
513
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,1 ,3 > E1 ## E2 ## E1 ; }; \
514
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,2 ,3 > E1 ## E2 ## E2 ; }; \
515
+ struct { detail::_swizzle<3 , T, Q, 1 ,2 ,3 ,3 > E1 ## E2 ## E3 ; }; \
516
+ struct { detail::_swizzle<3 , T, Q, 1 ,3 ,0 ,3 > E1 ## E3 ## E0 ; }; \
517
+ struct { detail::_swizzle<3 , T, Q, 1 ,3 ,1 ,3 > E1 ## E3 ## E1 ; }; \
518
+ struct { detail::_swizzle<3 , T, Q, 1 ,3 ,2 ,3 > E1 ## E3 ## E2 ; }; \
519
+ struct { detail::_swizzle<3 , T, Q, 1 ,3 ,3 ,3 > E1 ## E3 ## E3 ; }; \
520
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,0 ,3 > E2 ## E0 ## E0 ; }; \
521
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,1 ,3 > E2 ## E0 ## E1 ; }; \
522
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,2 ,3 > E2 ## E0 ## E2 ; }; \
523
+ struct { detail::_swizzle<3 , T, Q, 2 ,0 ,3 ,3 > E2 ## E0 ## E3 ; }; \
524
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,0 ,3 > E2 ## E1 ## E0 ; }; \
525
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,1 ,3 > E2 ## E1 ## E1 ; }; \
526
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,2 ,3 > E2 ## E1 ## E2 ; }; \
527
+ struct { detail::_swizzle<3 , T, Q, 2 ,1 ,3 ,3 > E2 ## E1 ## E3 ; }; \
528
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,0 ,3 > E2 ## E2 ## E0 ; }; \
529
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,1 ,3 > E2 ## E2 ## E1 ; }; \
530
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,2 ,3 > E2 ## E2 ## E2 ; }; \
531
+ struct { detail::_swizzle<3 , T, Q, 2 ,2 ,3 ,3 > E2 ## E2 ## E3 ; }; \
532
+ struct { detail::_swizzle<3 , T, Q, 2 ,3 ,0 ,3 > E2 ## E3 ## E0 ; }; \
533
+ struct { detail::_swizzle<3 , T, Q, 2 ,3 ,1 ,3 > E2 ## E3 ## E1 ; }; \
534
+ struct { detail::_swizzle<3 , T, Q, 2 ,3 ,2 ,3 > E2 ## E3 ## E2 ; }; \
535
+ struct { detail::_swizzle<3 , T, Q, 2 ,3 ,3 ,3 > E2 ## E3 ## E3 ; }; \
536
+ struct { detail::_swizzle<3 , T, Q, 3 ,0 ,0 ,3 > E3 ## E0 ## E0 ; }; \
537
+ struct { detail::_swizzle<3 , T, Q, 3 ,0 ,1 ,3 > E3 ## E0 ## E1 ; }; \
538
+ struct { detail::_swizzle<3 , T, Q, 3 ,0 ,2 ,3 > E3 ## E0 ## E2 ; }; \
539
+ struct { detail::_swizzle<3 , T, Q, 3 ,0 ,3 ,3 > E3 ## E0 ## E3 ; }; \
540
+ struct { detail::_swizzle<3 , T, Q, 3 ,1 ,0 ,3 > E3 ## E1 ## E0 ; }; \
541
+ struct { detail::_swizzle<3 , T, Q, 3 ,1 ,1 ,3 > E3 ## E1 ## E1 ; }; \
542
+ struct { detail::_swizzle<3 , T, Q, 3 ,1 ,2 ,3 > E3 ## E1 ## E2 ; }; \
543
+ struct { detail::_swizzle<3 , T, Q, 3 ,1 ,3 ,3 > E3 ## E1 ## E3 ; }; \
544
+ struct { detail::_swizzle<3 , T, Q, 3 ,2 ,0 ,3 > E3 ## E2 ## E0 ; }; \
545
+ struct { detail::_swizzle<3 , T, Q, 3 ,2 ,1 ,3 > E3 ## E2 ## E1 ; }; \
546
+ struct { detail::_swizzle<3 , T, Q, 3 ,2 ,2 ,3 > E3 ## E2 ## E2 ; }; \
547
+ struct { detail::_swizzle<3 , T, Q, 3 ,2 ,3 ,3 > E3 ## E2 ## E3 ; }; \
548
+ struct { detail::_swizzle<3 , T, Q, 3 ,3 ,0 ,3 > E3 ## E3 ## E0 ; }; \
549
+ struct { detail::_swizzle<3 , T, Q, 3 ,3 ,1 ,3 > E3 ## E3 ## E1 ; }; \
550
+ struct { detail::_swizzle<3 , T, Q, 3 ,3 ,2 ,3 > E3 ## E3 ## E2 ; }; \
551
+ struct { detail::_swizzle<3 , T, Q, 3 ,3 ,3 ,3 > E3 ## E3 ## E3 ; };
547
552
548
553
#define GLM_SWIZZLE4_4_MEMBERS (T, Q, E0,E1,E2,E3 ) \
549
554
struct { detail::_swizzle<4 , T, Q, 0 ,0 ,0 ,0 > E0 ## E0 ## E0 ## E0 ; }; \
0 commit comments