From 75332652334235b7b5721fee1f10a0e6433167f2 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 20 Oct 2011 12:00:51 +0100 Subject: [PATCH] Updated style, typo, removed old swizzle macro --- glm/core/_swizzle.hpp | 1054 ---------------------------------------- glm/core/setup.hpp | 13 +- glm/core/type_vec2.hpp | 32 +- glm/core/type_vec3.hpp | 41 +- glm/core/type_vec4.hpp | 32 +- 5 files changed, 56 insertions(+), 1116 deletions(-) diff --git a/glm/core/_swizzle.hpp b/glm/core/_swizzle.hpp index 54db67a1..e58074b9 100644 --- a/glm/core/_swizzle.hpp +++ b/glm/core/_swizzle.hpp @@ -591,7 +591,6 @@ namespace glm struct { glm::detail::swizzle<3,T,P,3,3,1,-1> E3 ## E3 ## E1; }; \ struct { glm::detail::swizzle<3,T,P,3,3,2,-1> E3 ## E3 ## E2; }; \ struct { glm::detail::swizzle<3,T,P,3,3,3,-1> E3 ## E3 ## E3; }; - #define _GLM_SWIZZLE4_4_MEMBERS(T,P,E0,E1,E2,E3) \ struct { glm::detail::swizzle<4,T,P,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ @@ -835,1057 +834,4 @@ namespace glm struct { glm::detail::swizzle<4,T,P,3,3,3,2> E3 ## E3 ## E3 ## E2; }; \ struct { glm::detail::swizzle<4,T,P,3,3,3,3> E3 ## E3 ## E3 ## E3; }; -#if(defined(GLM_SWIZZLE_XYZW) || defined(GLM_SWIZZLE)) - -#define xx swizzle(glm::X, glm::X) -#define yx swizzle(glm::Y, glm::X) -#define zx swizzle(glm::Z, glm::X) -#define wx swizzle(glm::W, glm::X) -#define xy swizzle(glm::X, glm::Y) -#define yy swizzle(glm::Y, glm::Y) -#define zy swizzle(glm::Z, glm::Y) -#define wy swizzle(glm::W, glm::Y) -#define xz swizzle(glm::X, glm::Z) -#define yz swizzle(glm::Y, glm::Z) -#define zz swizzle(glm::Z, glm::Z) -#define wz swizzle(glm::W, glm::Z) -#define xw swizzle(glm::X, glm::W) -#define yw swizzle(glm::Y, glm::W) -#define zw swizzle(glm::Z, glm::W) -#define ww swizzle(glm::W, glm::W) - -#endif - -#if(defined(GLM_SWIZZLE_RGBA) || defined(GLM_SWIZZLE)) - -#define rr swizzle(glm::X, glm::X) -#define gr swizzle(glm::Y, glm::X) -#define br swizzle(glm::Z, glm::X) -#define ar swizzle(glm::W, glm::X) -#define rg swizzle(glm::X, glm::Y) -#define gg swizzle(glm::Y, glm::Y) -#define bg swizzle(glm::Z, glm::Y) -#define ag swizzle(glm::W, glm::Y) -#define rb swizzle(glm::X, glm::Z) -#define gb swizzle(glm::Y, glm::Z) -#define bb swizzle(glm::Z, glm::Z) -#define ab swizzle(glm::W, glm::Z) -#define ra swizzle(glm::X, glm::W) -#define ga swizzle(glm::Y, glm::W) -#define ba swizzle(glm::Z, glm::W) -#define aa swizzle(glm::W, glm::W) - -#endif - -#if(defined(GLM_FORCE_SWIZZLE_STPQ) || defined(GLM_SWIZZLE)) - -#define ss swizzle(glm::X, glm::X) -#define ts swizzle(glm::Y, glm::X) -#define ps swizzle(glm::Z, glm::X) -#define qs swizzle(glm::W, glm::X) -#define st swizzle(glm::X, glm::Y) -#define tt swizzle(glm::Y, glm::Y) -#define pt swizzle(glm::Z, glm::Y) -#define qt swizzle(glm::W, glm::Y) -#define sp swizzle(glm::X, glm::Z) -#define tp swizzle(glm::Y, glm::Z) -#define pp swizzle(glm::Z, glm::Z) -#define qp swizzle(glm::W, glm::Z) -#define sq swizzle(glm::X, glm::W) -#define tq swizzle(glm::Y, glm::W) -#define pq swizzle(glm::Z, glm::W) -#define qq swizzle(glm::W, glm::W) - -#endif - -#if(defined(GLM_SWIZZLE_XYZW) || defined(GLM_SWIZZLE)) - -#define xxx swizzle(glm::X, glm::X, glm::X) -#define yxx swizzle(glm::Y, glm::X, glm::X) -#define zxx swizzle(glm::Z, glm::X, glm::X) -#define wxx swizzle(glm::W, glm::X, glm::X) -#define xyx swizzle(glm::X, glm::Y, glm::X) -#define yyx swizzle(glm::Y, glm::Y, glm::X) -#define zyx swizzle(glm::Z, glm::Y, glm::X) -#define wyx swizzle(glm::W, glm::Y, glm::X) -#define xzx swizzle(glm::X, glm::Z, glm::X) -#define yzx swizzle(glm::Y, glm::Z, glm::X) -#define zzx swizzle(glm::Z, glm::Z, glm::X) -#define wzx swizzle(glm::W, glm::Z, glm::X) -#define xwx swizzle(glm::X, glm::W, glm::X) -#define ywx swizzle(glm::Y, glm::W, glm::X) -#define zwx swizzle(glm::Z, glm::W, glm::X) -#define wwx swizzle(glm::W, glm::W, glm::X) -#define xxy swizzle(glm::X, glm::X, glm::Y) -#define yxy swizzle(glm::Y, glm::X, glm::Y) -#define zxy swizzle(glm::Z, glm::X, glm::Y) -#define wxy swizzle(glm::W, glm::X, glm::Y) -#define xyy swizzle(glm::X, glm::Y, glm::Y) -#define yyy swizzle(glm::Y, glm::Y, glm::Y) -#define zyy swizzle(glm::Z, glm::Y, glm::Y) -#define wyy swizzle(glm::W, glm::Y, glm::Y) -#define xzy swizzle(glm::X, glm::Z, glm::Y) -#define yzy swizzle(glm::Y, glm::Z, glm::Y) -#define zzy swizzle(glm::Z, glm::Z, glm::Y) -#define wzy swizzle(glm::W, glm::Z, glm::Y) -#define xwy swizzle(glm::X, glm::W, glm::Y) -#define ywy swizzle(glm::Y, glm::W, glm::Y) -#define zwy swizzle(glm::Z, glm::W, glm::Y) -#define wwy swizzle(glm::W, glm::W, glm::Y) -#define xxz swizzle(glm::X, glm::X, glm::Z) -#define yxz swizzle(glm::Y, glm::X, glm::Z) -#define zxz swizzle(glm::Z, glm::X, glm::Z) -#define wxz swizzle(glm::W, glm::X, glm::Z) -#define xyz swizzle(glm::X, glm::Y, glm::Z) -#define yyz swizzle(glm::Y, glm::Y, glm::Z) -#define zyz swizzle(glm::Z, glm::Y, glm::Z) -#define wyz swizzle(glm::W, glm::Y, glm::Z) -#define xzz swizzle(glm::X, glm::Z, glm::Z) -#define yzz swizzle(glm::Y, glm::Z, glm::Z) -#define zzz swizzle(glm::Z, glm::Z, glm::Z) -#define wzz swizzle(glm::W, glm::Z, glm::Z) -#define xwz swizzle(glm::X, glm::W, glm::Z) -#define ywz swizzle(glm::Y, glm::W, glm::Z) -#define zwz swizzle(glm::Z, glm::W, glm::Z) -#define wwz swizzle(glm::W, glm::W, glm::Z) -#define xxw swizzle(glm::X, glm::X, glm::W) -#define yxw swizzle(glm::Y, glm::X, glm::W) -#define zxw swizzle(glm::Z, glm::X, glm::W) -#define wxw swizzle(glm::W, glm::X, glm::W) -#define xyw swizzle(glm::X, glm::Y, glm::W) -#define yyw swizzle(glm::Y, glm::Y, glm::W) -#define zyw swizzle(glm::Z, glm::Y, glm::W) -#define wyw swizzle(glm::W, glm::Y, glm::W) -#define xzw swizzle(glm::X, glm::Z, glm::W) -#define yzw swizzle(glm::Y, glm::Z, glm::W) -#define zzw swizzle(glm::Z, glm::Z, glm::W) -#define wzw swizzle(glm::W, glm::Z, glm::W) -#define xww swizzle(glm::X, glm::W, glm::W) -#define yww swizzle(glm::Y, glm::W, glm::W) -#define zww swizzle(glm::Z, glm::W, glm::W) -#define www swizzle(glm::W, glm::W, glm::W) - -#endif - -#if(defined(GLM_SWIZZLE_RGBA) || defined(GLM_SWIZZLE)) - -#define rrr swizzle(glm::X, glm::X, glm::X) -#define grr swizzle(glm::Y, glm::X, glm::X) -#define brr swizzle(glm::Z, glm::X, glm::X) -#define arr swizzle(glm::W, glm::X, glm::X) -#define rgr swizzle(glm::X, glm::Y, glm::X) -#define ggr swizzle(glm::Y, glm::Y, glm::X) -#define bgr swizzle(glm::Z, glm::Y, glm::X) -#define agr swizzle(glm::W, glm::Y, glm::X) -#define rbr swizzle(glm::X, glm::Z, glm::X) -#define gbr swizzle(glm::Y, glm::Z, glm::X) -#define bbr swizzle(glm::Z, glm::Z, glm::X) -#define abr swizzle(glm::W, glm::Z, glm::X) -#define rar swizzle(glm::X, glm::W, glm::X) -#define gar swizzle(glm::Y, glm::W, glm::X) -#define bar swizzle(glm::Z, glm::W, glm::X) -#define aar swizzle(glm::W, glm::W, glm::X) -#define rrg swizzle(glm::X, glm::X, glm::Y) -#define grg swizzle(glm::Y, glm::X, glm::Y) -#define brg swizzle(glm::Z, glm::X, glm::Y) -#define arg swizzle(glm::W, glm::X, glm::Y) -#define rgg swizzle(glm::X, glm::Y, glm::Y) -#define ggg swizzle(glm::Y, glm::Y, glm::Y) -#define bgg swizzle(glm::Z, glm::Y, glm::Y) -#define agg swizzle(glm::W, glm::Y, glm::Y) -#define rbg swizzle(glm::X, glm::Z, glm::Y) -#define gbg swizzle(glm::Y, glm::Z, glm::Y) -#define bbg swizzle(glm::Z, glm::Z, glm::Y) -#define abg swizzle(glm::W, glm::Z, glm::Y) -#define rag swizzle(glm::X, glm::W, glm::Y) -#define gag swizzle(glm::Y, glm::W, glm::Y) -#define bag swizzle(glm::Z, glm::W, glm::Y) -#define aag swizzle(glm::W, glm::W, glm::Y) -#define rrb swizzle(glm::X, glm::X, glm::Z) -#define grb swizzle(glm::Y, glm::X, glm::Z) -#define brb swizzle(glm::Z, glm::X, glm::Z) -#define arb swizzle(glm::W, glm::X, glm::Z) -#define rgb swizzle(glm::X, glm::Y, glm::Z) -#define ggb swizzle(glm::Y, glm::Y, glm::Z) -#define bgb swizzle(glm::Z, glm::Y, glm::Z) -#define agb swizzle(glm::W, glm::Y, glm::Z) -#define rbb swizzle(glm::X, glm::Z, glm::Z) -#define gbb swizzle(glm::Y, glm::Z, glm::Z) -#define bbb swizzle(glm::Z, glm::Z, glm::Z) -#define abb swizzle(glm::W, glm::Z, glm::Z) -#define rab swizzle(glm::X, glm::W, glm::Z) -#define gab swizzle(glm::Y, glm::W, glm::Z) -#define bab swizzle(glm::Z, glm::W, glm::Z) -#define aab swizzle(glm::W, glm::W, glm::Z) -#define rra swizzle(glm::X, glm::X, glm::W) -#define gra swizzle(glm::Y, glm::X, glm::W) -#define bra swizzle(glm::Z, glm::X, glm::W) -#define ara swizzle(glm::W, glm::X, glm::W) -#define rga swizzle(glm::X, glm::Y, glm::W) -#define gga swizzle(glm::Y, glm::Y, glm::W) -#define bga swizzle(glm::Z, glm::Y, glm::W) -#define aga swizzle(glm::W, glm::Y, glm::W) -#define rba swizzle(glm::X, glm::Z, glm::W) -#define gba swizzle(glm::Y, glm::Z, glm::W) -#define bba swizzle(glm::Z, glm::Z, glm::W) -#define aba swizzle(glm::W, glm::Z, glm::W) -#define raa swizzle(glm::X, glm::W, glm::W) -#define gaa swizzle(glm::Y, glm::W, glm::W) -#define baa swizzle(glm::Z, glm::W, glm::W) -#define aaa swizzle(glm::W, glm::W, glm::W) - -#endif - -#if(defined(GLM_FORCE_SWIZZLE_STPQ) || defined(GLM_SWIZZLE)) - -#define sss swizzle(glm::X, glm::X, glm::X) -#define tss swizzle(glm::Y, glm::X, glm::X) -#define pss swizzle(glm::Z, glm::X, glm::X) -#define qss swizzle(glm::W, glm::X, glm::X) -#define sts swizzle(glm::X, glm::Y, glm::X) -#define tts swizzle(glm::Y, glm::Y, glm::X) -#define pts swizzle(glm::Z, glm::Y, glm::X) -#define qts swizzle(glm::W, glm::Y, glm::X) -#define sps swizzle(glm::X, glm::Z, glm::X) -#define tps swizzle(glm::Y, glm::Z, glm::X) -#define pps swizzle(glm::Z, glm::Z, glm::X) -#define qps swizzle(glm::W, glm::Z, glm::X) -#define sqs swizzle(glm::X, glm::W, glm::X) -#define tqs swizzle(glm::Y, glm::W, glm::X) -#define pqs swizzle(glm::Z, glm::W, glm::X) -#define qqs swizzle(glm::W, glm::W, glm::X) -#define sst swizzle(glm::X, glm::X, glm::Y) -#define tst swizzle(glm::Y, glm::X, glm::Y) -#define pst swizzle(glm::Z, glm::X, glm::Y) -#define qst swizzle(glm::W, glm::X, glm::Y) -#define stt swizzle(glm::X, glm::Y, glm::Y) -#define ttt swizzle(glm::Y, glm::Y, glm::Y) -#define ptt swizzle(glm::Z, glm::Y, glm::Y) -#define qtt swizzle(glm::W, glm::Y, glm::Y) -#define spt swizzle(glm::X, glm::Z, glm::Y) -#define tpt swizzle(glm::Y, glm::Z, glm::Y) -#define ppt swizzle(glm::Z, glm::Z, glm::Y) -#define qpt swizzle(glm::W, glm::Z, glm::Y) -#define sqt swizzle(glm::X, glm::W, glm::Y) -#define tqt swizzle(glm::Y, glm::W, glm::Y) -#define pqt swizzle(glm::Z, glm::W, glm::Y) -#define qqt swizzle(glm::W, glm::W, glm::Y) -#define ssp swizzle(glm::X, glm::X, glm::Z) -#define tsp swizzle(glm::Y, glm::X, glm::Z) -#define psp swizzle(glm::Z, glm::X, glm::Z) -#define qsp swizzle(glm::W, glm::X, glm::Z) -#define stp swizzle(glm::X, glm::Y, glm::Z) -#define ttp swizzle(glm::Y, glm::Y, glm::Z) -#define ptp swizzle(glm::Z, glm::Y, glm::Z) -#define qtp swizzle(glm::W, glm::Y, glm::Z) -#define spp swizzle(glm::X, glm::Z, glm::Z) -#define tpp swizzle(glm::Y, glm::Z, glm::Z) -#define ppp swizzle(glm::Z, glm::Z, glm::Z) -#define qpp swizzle(glm::W, glm::Z, glm::Z) -#define sqp swizzle(glm::X, glm::W, glm::Z) -#define tqp swizzle(glm::Y, glm::W, glm::Z) -#define pqp swizzle(glm::Z, glm::W, glm::Z) -#define qqp swizzle(glm::W, glm::W, glm::Z) -#define ssq swizzle(glm::X, glm::X, glm::W) -#define tsq swizzle(glm::Y, glm::X, glm::W) -#define psq swizzle(glm::Z, glm::X, glm::W) -#define qsq swizzle(glm::W, glm::X, glm::W) -#define stq swizzle(glm::X, glm::Y, glm::W) -#define ttq swizzle(glm::Y, glm::Y, glm::W) -#define ptq swizzle(glm::Z, glm::Y, glm::W) -#define qtq swizzle(glm::W, glm::Y, glm::W) -#define spq swizzle(glm::X, glm::Z, glm::W) -#define tpq swizzle(glm::Y, glm::Z, glm::W) -#define ppq swizzle(glm::Z, glm::Z, glm::W) -#define qpq swizzle(glm::W, glm::Z, glm::W) -#define sqq swizzle(glm::X, glm::W, glm::W) -#define tqq swizzle(glm::Y, glm::W, glm::W) -#define pqq swizzle(glm::Z, glm::W, glm::W) -#define qqq swizzle(glm::W, glm::W, glm::W) - -#endif - -#if(defined(GLM_SWIZZLE_XYZW) || defined(GLM_SWIZZLE)) - -#define xxxx swizzle(glm::X, glm::X, glm::X, glm::X) -#define yxxx swizzle(glm::Y, glm::X, glm::X, glm::X) -#define zxxx swizzle(glm::Z, glm::X, glm::X, glm::X) -#define wxxx swizzle(glm::W, glm::X, glm::X, glm::X) -#define xyxx swizzle(glm::X, glm::Y, glm::X, glm::X) -#define yyxx swizzle(glm::Y, glm::Y, glm::X, glm::X) -#define zyxx swizzle(glm::Z, glm::Y, glm::X, glm::X) -#define wyxx swizzle(glm::W, glm::Y, glm::X, glm::X) -#define xzxx swizzle(glm::X, glm::Z, glm::X, glm::X) -#define yzxx swizzle(glm::Y, glm::Z, glm::X, glm::X) -#define zzxx swizzle(glm::Z, glm::Z, glm::X, glm::X) -#define wzxx swizzle(glm::W, glm::Z, glm::X, glm::X) -#define xwxx swizzle(glm::X, glm::W, glm::X, glm::X) -#define ywxx swizzle(glm::Y, glm::W, glm::X, glm::X) -#define zwxx swizzle(glm::Z, glm::W, glm::X, glm::X) -#define wwxx swizzle(glm::W, glm::W, glm::X, glm::X) -#define xxyx swizzle(glm::X, glm::X, glm::Y, glm::X) -#define yxyx swizzle(glm::Y, glm::X, glm::Y, glm::X) -#define zxyx swizzle(glm::Z, glm::X, glm::Y, glm::X) -#define wxyx swizzle(glm::W, glm::X, glm::Y, glm::X) -#define xyyx swizzle(glm::X, glm::Y, glm::Y, glm::X) -#define yyyx swizzle(glm::Y, glm::Y, glm::Y, glm::X) -#define zyyx swizzle(glm::Z, glm::Y, glm::Y, glm::X) -#define wyyx swizzle(glm::W, glm::Y, glm::Y, glm::X) -#define xzyx swizzle(glm::X, glm::Z, glm::Y, glm::X) -#define yzyx swizzle(glm::Y, glm::Z, glm::Y, glm::X) -#define zzyx swizzle(glm::Z, glm::Z, glm::Y, glm::X) -#define wzyx swizzle(glm::W, glm::Z, glm::Y, glm::X) -#define xwyx swizzle(glm::X, glm::W, glm::Y, glm::X) -#define ywyx swizzle(glm::Y, glm::W, glm::Y, glm::X) -#define zwyx swizzle(glm::Z, glm::W, glm::Y, glm::X) -#define wwyx swizzle(glm::W, glm::W, glm::Y, glm::X) -#define xxzx swizzle(glm::X, glm::X, glm::Z, glm::X) -#define yxzx swizzle(glm::Y, glm::X, glm::Z, glm::X) -#define zxzx swizzle(glm::Z, glm::X, glm::Z, glm::X) -#define wxzx swizzle(glm::W, glm::X, glm::Z, glm::X) -#define xyzx swizzle(glm::X, glm::Y, glm::Z, glm::X) -#define yyzx swizzle(glm::Y, glm::Y, glm::Z, glm::X) -#define zyzx swizzle(glm::Z, glm::Y, glm::Z, glm::X) -#define wyzx swizzle(glm::W, glm::Y, glm::Z, glm::X) -#define xzzx swizzle(glm::X, glm::Z, glm::Z, glm::X) -#define yzzx swizzle(glm::Y, glm::Z, glm::Z, glm::X) -#define zzzx swizzle(glm::Z, glm::Z, glm::Z, glm::X) -#define wzzx swizzle(glm::W, glm::Z, glm::Z, glm::X) -#define xwzx swizzle(glm::X, glm::W, glm::Z, glm::X) -#define ywzx swizzle(glm::Y, glm::W, glm::Z, glm::X) -#define zwzx swizzle(glm::Z, glm::W, glm::Z, glm::X) -#define wwzx swizzle(glm::W, glm::W, glm::Z, glm::X) -#define xxwx swizzle(glm::X, glm::X, glm::W, glm::X) -#define yxwx swizzle(glm::Y, glm::X, glm::W, glm::X) -#define zxwx swizzle(glm::Z, glm::X, glm::W, glm::X) -#define wxwx swizzle(glm::W, glm::X, glm::W, glm::X) -#define xywx swizzle(glm::X, glm::Y, glm::W, glm::X) -#define yywx swizzle(glm::Y, glm::Y, glm::W, glm::X) -#define zywx swizzle(glm::Z, glm::Y, glm::W, glm::X) -#define wywx swizzle(glm::W, glm::Y, glm::W, glm::X) -#define xzwx swizzle(glm::X, glm::Z, glm::W, glm::X) -#define yzwx swizzle(glm::Y, glm::Z, glm::W, glm::X) -#define zzwx swizzle(glm::Z, glm::Z, glm::W, glm::X) -#define wzwx swizzle(glm::W, glm::Z, glm::W, glm::X) -#define xwwx swizzle(glm::X, glm::W, glm::W, glm::X) -#define ywwx swizzle(glm::Y, glm::W, glm::W, glm::X) -#define zwwx swizzle(glm::Z, glm::W, glm::W, glm::X) -#define wwwx swizzle(glm::W, glm::W, glm::W, glm::X) -#define xxxy swizzle(glm::X, glm::X, glm::X, glm::Y) -#define yxxy swizzle(glm::Y, glm::X, glm::X, glm::Y) -#define zxxy swizzle(glm::Z, glm::X, glm::X, glm::Y) -#define wxxy swizzle(glm::W, glm::X, glm::X, glm::Y) -#define xyxy swizzle(glm::X, glm::Y, glm::X, glm::Y) -#define yyxy swizzle(glm::Y, glm::Y, glm::X, glm::Y) -#define zyxy swizzle(glm::Z, glm::Y, glm::X, glm::Y) -#define wyxy swizzle(glm::W, glm::Y, glm::X, glm::Y) -#define xzxy swizzle(glm::X, glm::Z, glm::X, glm::Y) -#define yzxy swizzle(glm::Y, glm::Z, glm::X, glm::Y) -#define zzxy swizzle(glm::Z, glm::Z, glm::X, glm::Y) -#define wzxy swizzle(glm::W, glm::Z, glm::X, glm::Y) -#define xwxy swizzle(glm::X, glm::W, glm::X, glm::Y) -#define ywxy swizzle(glm::Y, glm::W, glm::X, glm::Y) -#define zwxy swizzle(glm::Z, glm::W, glm::X, glm::Y) -#define wwxy swizzle(glm::W, glm::W, glm::X, glm::Y) -#define xxyy swizzle(glm::X, glm::X, glm::Y, glm::Y) -#define yxyy swizzle(glm::Y, glm::X, glm::Y, glm::Y) -#define zxyy swizzle(glm::Z, glm::X, glm::Y, glm::Y) -#define wxyy swizzle(glm::W, glm::X, glm::Y, glm::Y) -#define xyyy swizzle(glm::X, glm::Y, glm::Y, glm::Y) -#define yyyy swizzle(glm::Y, glm::Y, glm::Y, glm::Y) -#define zyyy swizzle(glm::Z, glm::Y, glm::Y, glm::Y) -#define wyyy swizzle(glm::W, glm::Y, glm::Y, glm::Y) -#define xzyy swizzle(glm::X, glm::Z, glm::Y, glm::Y) -#define yzyy swizzle(glm::Y, glm::Z, glm::Y, glm::Y) -#define zzyy swizzle(glm::Z, glm::Z, glm::Y, glm::Y) -#define wzyy swizzle(glm::W, glm::Z, glm::Y, glm::Y) -#define xwyy swizzle(glm::X, glm::W, glm::Y, glm::Y) -#define ywyy swizzle(glm::Y, glm::W, glm::Y, glm::Y) -#define zwyy swizzle(glm::Z, glm::W, glm::Y, glm::Y) -#define wwyy swizzle(glm::W, glm::W, glm::Y, glm::Y) -#define xxzy swizzle(glm::X, glm::X, glm::Z, glm::Y) -#define yxzy swizzle(glm::Y, glm::X, glm::Z, glm::Y) -#define zxzy swizzle(glm::Z, glm::X, glm::Z, glm::Y) -#define wxzy swizzle(glm::W, glm::X, glm::Z, glm::Y) -#define xyzy swizzle(glm::X, glm::Y, glm::Z, glm::Y) -#define yyzy swizzle(glm::Y, glm::Y, glm::Z, glm::Y) -#define zyzy swizzle(glm::Z, glm::Y, glm::Z, glm::Y) -#define wyzy swizzle(glm::W, glm::Y, glm::Z, glm::Y) -#define xzzy swizzle(glm::X, glm::Z, glm::Z, glm::Y) -#define yzzy swizzle(glm::Y, glm::Z, glm::Z, glm::Y) -#define zzzy swizzle(glm::Z, glm::Z, glm::Z, glm::Y) -#define wzzy swizzle(glm::W, glm::Z, glm::Z, glm::Y) -#define xwzy swizzle(glm::X, glm::W, glm::Z, glm::Y) -#define ywzy swizzle(glm::Y, glm::W, glm::Z, glm::Y) -#define zwzy swizzle(glm::Z, glm::W, glm::Z, glm::Y) -#define wwzy swizzle(glm::W, glm::W, glm::Z, glm::Y) -#define xxwy swizzle(glm::X, glm::X, glm::W, glm::Y) -#define yxwy swizzle(glm::Y, glm::X, glm::W, glm::Y) -#define zxwy swizzle(glm::Z, glm::X, glm::W, glm::Y) -#define wxwy swizzle(glm::W, glm::X, glm::W, glm::Y) -#define xywy swizzle(glm::X, glm::Y, glm::W, glm::Y) -#define yywy swizzle(glm::Y, glm::Y, glm::W, glm::Y) -#define zywy swizzle(glm::Z, glm::Y, glm::W, glm::Y) -#define wywy swizzle(glm::W, glm::Y, glm::W, glm::Y) -#define xzwy swizzle(glm::X, glm::Z, glm::W, glm::Y) -#define yzwy swizzle(glm::Y, glm::Z, glm::W, glm::Y) -#define zzwy swizzle(glm::Z, glm::Z, glm::W, glm::Y) -#define wzwy swizzle(glm::W, glm::Z, glm::W, glm::Y) -#define xwwy swizzle(glm::X, glm::W, glm::W, glm::Y) -#define ywwy swizzle(glm::Y, glm::W, glm::W, glm::Y) -#define zwwy swizzle(glm::Z, glm::W, glm::W, glm::Y) -#define wwwy swizzle(glm::W, glm::W, glm::W, glm::Y) -#define xxxz swizzle(glm::X, glm::X, glm::X, glm::Z) -#define yxxz swizzle(glm::Y, glm::X, glm::X, glm::Z) -#define zxxz swizzle(glm::Z, glm::X, glm::X, glm::Z) -#define wxxz swizzle(glm::W, glm::X, glm::X, glm::Z) -#define xyxz swizzle(glm::X, glm::Y, glm::X, glm::Z) -#define yyxz swizzle(glm::Y, glm::Y, glm::X, glm::Z) -#define zyxz swizzle(glm::Z, glm::Y, glm::X, glm::Z) -#define wyxz swizzle(glm::W, glm::Y, glm::X, glm::Z) -#define xzxz swizzle(glm::X, glm::Z, glm::X, glm::Z) -#define yzxz swizzle(glm::Y, glm::Z, glm::X, glm::Z) -#define zzxz swizzle(glm::Z, glm::Z, glm::X, glm::Z) -#define wzxz swizzle(glm::W, glm::Z, glm::X, glm::Z) -#define xwxz swizzle(glm::X, glm::W, glm::X, glm::Z) -#define ywxz swizzle(glm::Y, glm::W, glm::X, glm::Z) -#define zwxz swizzle(glm::Z, glm::W, glm::X, glm::Z) -#define wwxz swizzle(glm::W, glm::W, glm::X, glm::Z) -#define xxyz swizzle(glm::X, glm::X, glm::Y, glm::Z) -#define yxyz swizzle(glm::Y, glm::X, glm::Y, glm::Z) -#define zxyz swizzle(glm::Z, glm::X, glm::Y, glm::Z) -#define wxyz swizzle(glm::W, glm::X, glm::Y, glm::Z) -#define xyyz swizzle(glm::X, glm::Y, glm::Y, glm::Z) -#define yyyz swizzle(glm::Y, glm::Y, glm::Y, glm::Z) -#define zyyz swizzle(glm::Z, glm::Y, glm::Y, glm::Z) -#define wyyz swizzle(glm::W, glm::Y, glm::Y, glm::Z) -#define xzyz swizzle(glm::X, glm::Z, glm::Y, glm::Z) -#define yzyz swizzle(glm::Y, glm::Z, glm::Y, glm::Z) -#define zzyz swizzle(glm::Z, glm::Z, glm::Y, glm::Z) -#define wzyz swizzle(glm::W, glm::Z, glm::Y, glm::Z) -#define xwyz swizzle(glm::X, glm::W, glm::Y, glm::Z) -#define ywyz swizzle(glm::Y, glm::W, glm::Y, glm::Z) -#define zwyz swizzle(glm::Z, glm::W, glm::Y, glm::Z) -#define wwyz swizzle(glm::W, glm::W, glm::Y, glm::Z) -#define xxzz swizzle(glm::X, glm::X, glm::Z, glm::Z) -#define yxzz swizzle(glm::Y, glm::X, glm::Z, glm::Z) -#define zxzz swizzle(glm::Z, glm::X, glm::Z, glm::Z) -#define wxzz swizzle(glm::W, glm::X, glm::Z, glm::Z) -#define xyzz swizzle(glm::X, glm::Y, glm::Z, glm::Z) -#define yyzz swizzle(glm::Y, glm::Y, glm::Z, glm::Z) -#define zyzz swizzle(glm::Z, glm::Y, glm::Z, glm::Z) -#define wyzz swizzle(glm::W, glm::Y, glm::Z, glm::Z) -#define xzzz swizzle(glm::X, glm::Z, glm::Z, glm::Z) -#define yzzz swizzle(glm::Y, glm::Z, glm::Z, glm::Z) -#define zzzz swizzle(glm::Z, glm::Z, glm::Z, glm::Z) -#define wzzz swizzle(glm::W, glm::Z, glm::Z, glm::Z) -#define xwzz swizzle(glm::X, glm::W, glm::Z, glm::Z) -#define ywzz swizzle(glm::Y, glm::W, glm::Z, glm::Z) -#define zwzz swizzle(glm::Z, glm::W, glm::Z, glm::Z) -#define wwzz swizzle(glm::W, glm::W, glm::Z, glm::Z) -#define xxwz swizzle(glm::X, glm::X, glm::W, glm::Z) -#define yxwz swizzle(glm::Y, glm::X, glm::W, glm::Z) -#define zxwz swizzle(glm::Z, glm::X, glm::W, glm::Z) -#define wxwz swizzle(glm::W, glm::X, glm::W, glm::Z) -#define xywz swizzle(glm::X, glm::Y, glm::W, glm::Z) -#define yywz swizzle(glm::Y, glm::Y, glm::W, glm::Z) -#define zywz swizzle(glm::Z, glm::Y, glm::W, glm::Z) -#define wywz swizzle(glm::W, glm::Y, glm::W, glm::Z) -#define xzwz swizzle(glm::X, glm::Z, glm::W, glm::Z) -#define yzwz swizzle(glm::Y, glm::Z, glm::W, glm::Z) -#define zzwz swizzle(glm::Z, glm::Z, glm::W, glm::Z) -#define wzwz swizzle(glm::W, glm::Z, glm::W, glm::Z) -#define xwwz swizzle(glm::X, glm::W, glm::W, glm::Z) -#define ywwz swizzle(glm::Y, glm::W, glm::W, glm::Z) -#define zwwz swizzle(glm::Z, glm::W, glm::W, glm::Z) -#define wwwz swizzle(glm::W, glm::W, glm::W, glm::Z) -#define xxxw swizzle(glm::X, glm::X, glm::X, glm::W) -#define yxxw swizzle(glm::Y, glm::X, glm::X, glm::W) -#define zxxw swizzle(glm::Z, glm::X, glm::X, glm::W) -#define wxxw swizzle(glm::W, glm::X, glm::X, glm::W) -#define xyxw swizzle(glm::X, glm::Y, glm::X, glm::W) -#define yyxw swizzle(glm::Y, glm::Y, glm::X, glm::W) -#define zyxw swizzle(glm::Z, glm::Y, glm::X, glm::W) -#define wyxw swizzle(glm::W, glm::Y, glm::X, glm::W) -#define xzxw swizzle(glm::X, glm::Z, glm::X, glm::W) -#define yzxw swizzle(glm::Y, glm::Z, glm::X, glm::W) -#define zzxw swizzle(glm::Z, glm::Z, glm::X, glm::W) -#define wzxw swizzle(glm::W, glm::Z, glm::X, glm::W) -#define xwxw swizzle(glm::X, glm::W, glm::X, glm::W) -#define ywxw swizzle(glm::Y, glm::W, glm::X, glm::W) -#define zwxw swizzle(glm::Z, glm::W, glm::X, glm::W) -#define wwxw swizzle(glm::W, glm::W, glm::X, glm::W) -#define xxyw swizzle(glm::X, glm::X, glm::Y, glm::W) -#define yxyw swizzle(glm::Y, glm::X, glm::Y, glm::W) -#define zxyw swizzle(glm::Z, glm::X, glm::Y, glm::W) -#define wxyw swizzle(glm::W, glm::X, glm::Y, glm::W) -#define xyyw swizzle(glm::X, glm::Y, glm::Y, glm::W) -#define yyyw swizzle(glm::Y, glm::Y, glm::Y, glm::W) -#define zyyw swizzle(glm::Z, glm::Y, glm::Y, glm::W) -#define wyyw swizzle(glm::W, glm::Y, glm::Y, glm::W) -#define xzyw swizzle(glm::X, glm::Z, glm::Y, glm::W) -#define yzyw swizzle(glm::Y, glm::Z, glm::Y, glm::W) -#define zzyw swizzle(glm::Z, glm::Z, glm::Y, glm::W) -#define wzyw swizzle(glm::W, glm::Z, glm::Y, glm::W) -#define xwyw swizzle(glm::X, glm::W, glm::Y, glm::W) -#define ywyw swizzle(glm::Y, glm::W, glm::Y, glm::W) -#define zwyw swizzle(glm::Z, glm::W, glm::Y, glm::W) -#define wwyw swizzle(glm::W, glm::W, glm::Y, glm::W) -#define xxzw swizzle(glm::X, glm::X, glm::Z, glm::W) -#define yxzw swizzle(glm::Y, glm::X, glm::Z, glm::W) -#define zxzw swizzle(glm::Z, glm::X, glm::Z, glm::W) -#define wxzw swizzle(glm::W, glm::X, glm::Z, glm::W) -#define xyzw swizzle(glm::X, glm::Y, glm::Z, glm::W) -#define yyzw swizzle(glm::Y, glm::Y, glm::Z, glm::W) -#define zyzw swizzle(glm::Z, glm::Y, glm::Z, glm::W) -#define wyzw swizzle(glm::W, glm::Y, glm::Z, glm::W) -#define xzzw swizzle(glm::X, glm::Z, glm::Z, glm::W) -#define yzzw swizzle(glm::Y, glm::Z, glm::Z, glm::W) -#define zzzw swizzle(glm::Z, glm::Z, glm::Z, glm::W) -#define wzzw swizzle(glm::W, glm::Z, glm::Z, glm::W) -#define xwzw swizzle(glm::X, glm::W, glm::Z, glm::W) -#define ywzw swizzle(glm::Y, glm::W, glm::Z, glm::W) -#define zwzw swizzle(glm::Z, glm::W, glm::Z, glm::W) -#define wwzw swizzle(glm::W, glm::W, glm::Z, glm::W) -#define xxww swizzle(glm::X, glm::X, glm::W, glm::W) -#define yxww swizzle(glm::Y, glm::X, glm::W, glm::W) -#define zxww swizzle(glm::Z, glm::X, glm::W, glm::W) -#define wxww swizzle(glm::W, glm::X, glm::W, glm::W) -#define xyww swizzle(glm::X, glm::Y, glm::W, glm::W) -#define yyww swizzle(glm::Y, glm::Y, glm::W, glm::W) -#define zyww swizzle(glm::Z, glm::Y, glm::W, glm::W) -#define wyww swizzle(glm::W, glm::Y, glm::W, glm::W) -#define xzww swizzle(glm::X, glm::Z, glm::W, glm::W) -#define yzww swizzle(glm::Y, glm::Z, glm::W, glm::W) -#define zzww swizzle(glm::Z, glm::Z, glm::W, glm::W) -#define wzww swizzle(glm::W, glm::Z, glm::W, glm::W) -#define xwww swizzle(glm::X, glm::W, glm::W, glm::W) -#define ywww swizzle(glm::Y, glm::W, glm::W, glm::W) -#define zwww swizzle(glm::Z, glm::W, glm::W, glm::W) -#define wwww swizzle(glm::W, glm::W, glm::W, glm::W) - -#endif - -#if(defined(GLM_SWIZZLE_RGBA) || defined(GLM_SWIZZLE)) - -#define rrrr swizzle(glm::X, glm::X, glm::X, glm::X) -#define grrr swizzle(glm::Y, glm::X, glm::X, glm::X) -#define brrr swizzle(glm::Z, glm::X, glm::X, glm::X) -#define arrr swizzle(glm::W, glm::X, glm::X, glm::X) -#define rgrr swizzle(glm::X, glm::Y, glm::X, glm::X) -#define ggrr swizzle(glm::Y, glm::Y, glm::X, glm::X) -#define bgrr swizzle(glm::Z, glm::Y, glm::X, glm::X) -#define agrr swizzle(glm::W, glm::Y, glm::X, glm::X) -#define rbrr swizzle(glm::X, glm::Z, glm::X, glm::X) -#define gbrr swizzle(glm::Y, glm::Z, glm::X, glm::X) -#define bbrr swizzle(glm::Z, glm::Z, glm::X, glm::X) -#define abrr swizzle(glm::W, glm::Z, glm::X, glm::X) -#define rarr swizzle(glm::X, glm::W, glm::X, glm::X) -#define garr swizzle(glm::Y, glm::W, glm::X, glm::X) -#define barr swizzle(glm::Z, glm::W, glm::X, glm::X) -#define aarr swizzle(glm::W, glm::W, glm::X, glm::X) -#define rrgr swizzle(glm::X, glm::X, glm::Y, glm::X) -#define grgr swizzle(glm::Y, glm::X, glm::Y, glm::X) -#define brgr swizzle(glm::Z, glm::X, glm::Y, glm::X) -#define argr swizzle(glm::W, glm::X, glm::Y, glm::X) -#define rggr swizzle(glm::X, glm::Y, glm::Y, glm::X) -#define gggr swizzle(glm::Y, glm::Y, glm::Y, glm::X) -#define bggr swizzle(glm::Z, glm::Y, glm::Y, glm::X) -#define aggr swizzle(glm::W, glm::Y, glm::Y, glm::X) -#define rbgr swizzle(glm::X, glm::Z, glm::Y, glm::X) -#define gbgr swizzle(glm::Y, glm::Z, glm::Y, glm::X) -#define bbgr swizzle(glm::Z, glm::Z, glm::Y, glm::X) -#define abgr swizzle(glm::W, glm::Z, glm::Y, glm::X) -#define ragr swizzle(glm::X, glm::W, glm::Y, glm::X) -#define gagr swizzle(glm::Y, glm::W, glm::Y, glm::X) -#define bagr swizzle(glm::Z, glm::W, glm::Y, glm::X) -#define aagr swizzle(glm::W, glm::W, glm::Y, glm::X) -#define rrbr swizzle(glm::X, glm::X, glm::Z, glm::X) -#define grbr swizzle(glm::Y, glm::X, glm::Z, glm::X) -#define brbr swizzle(glm::Z, glm::X, glm::Z, glm::X) -#define arbr swizzle(glm::W, glm::X, glm::Z, glm::X) -#define rgbr swizzle(glm::X, glm::Y, glm::Z, glm::X) -#define ggbr swizzle(glm::Y, glm::Y, glm::Z, glm::X) -#define bgbr swizzle(glm::Z, glm::Y, glm::Z, glm::X) -#define agbr swizzle(glm::W, glm::Y, glm::Z, glm::X) -#define rbbr swizzle(glm::X, glm::Z, glm::Z, glm::X) -#define gbbr swizzle(glm::Y, glm::Z, glm::Z, glm::X) -#define bbbr swizzle(glm::Z, glm::Z, glm::Z, glm::X) -#define abbr swizzle(glm::W, glm::Z, glm::Z, glm::X) -#define rabr swizzle(glm::X, glm::W, glm::Z, glm::X) -#define gabr swizzle(glm::Y, glm::W, glm::Z, glm::X) -#define babr swizzle(glm::Z, glm::W, glm::Z, glm::X) -#define aabr swizzle(glm::W, glm::W, glm::Z, glm::X) -#define rrar swizzle(glm::X, glm::X, glm::W, glm::X) -#define grar swizzle(glm::Y, glm::X, glm::W, glm::X) -#define brar swizzle(glm::Z, glm::X, glm::W, glm::X) -#define arar swizzle(glm::W, glm::X, glm::W, glm::X) -#define rgar swizzle(glm::X, glm::Y, glm::W, glm::X) -#define ggar swizzle(glm::Y, glm::Y, glm::W, glm::X) -#define bgar swizzle(glm::Z, glm::Y, glm::W, glm::X) -#define agar swizzle(glm::W, glm::Y, glm::W, glm::X) -#define rbar swizzle(glm::X, glm::Z, glm::W, glm::X) -#define gbar swizzle(glm::Y, glm::Z, glm::W, glm::X) -#define bbar swizzle(glm::Z, glm::Z, glm::W, glm::X) -#define abar swizzle(glm::W, glm::Z, glm::W, glm::X) -#define raar swizzle(glm::X, glm::W, glm::W, glm::X) -#define gaar swizzle(glm::Y, glm::W, glm::W, glm::X) -#define baar swizzle(glm::Z, glm::W, glm::W, glm::X) -#define aaar swizzle(glm::W, glm::W, glm::W, glm::X) -#define rrrg swizzle(glm::X, glm::X, glm::X, glm::Y) -#define grrg swizzle(glm::Y, glm::X, glm::X, glm::Y) -#define brrg swizzle(glm::Z, glm::X, glm::X, glm::Y) -#define arrg swizzle(glm::W, glm::X, glm::X, glm::Y) -#define rgrg swizzle(glm::X, glm::Y, glm::X, glm::Y) -#define ggrg swizzle(glm::Y, glm::Y, glm::X, glm::Y) -#define bgrg swizzle(glm::Z, glm::Y, glm::X, glm::Y) -#define agrg swizzle(glm::W, glm::Y, glm::X, glm::Y) -#define rbrg swizzle(glm::X, glm::Z, glm::X, glm::Y) -#define gbrg swizzle(glm::Y, glm::Z, glm::X, glm::Y) -#define bbrg swizzle(glm::Z, glm::Z, glm::X, glm::Y) -#define abrg swizzle(glm::W, glm::Z, glm::X, glm::Y) -#define rarg swizzle(glm::X, glm::W, glm::X, glm::Y) -#define garg swizzle(glm::Y, glm::W, glm::X, glm::Y) -#define barg swizzle(glm::Z, glm::W, glm::X, glm::Y) -#define aarg swizzle(glm::W, glm::W, glm::X, glm::Y) -#define rrgg swizzle(glm::X, glm::X, glm::Y, glm::Y) -#define grgg swizzle(glm::Y, glm::X, glm::Y, glm::Y) -#define brgg swizzle(glm::Z, glm::X, glm::Y, glm::Y) -#define argg swizzle(glm::W, glm::X, glm::Y, glm::Y) -#define rggg swizzle(glm::X, glm::Y, glm::Y, glm::Y) -#define gggg swizzle(glm::Y, glm::Y, glm::Y, glm::Y) -#define bggg swizzle(glm::Z, glm::Y, glm::Y, glm::Y) -#define aggg swizzle(glm::W, glm::Y, glm::Y, glm::Y) -#define rbgg swizzle(glm::X, glm::Z, glm::Y, glm::Y) -#define gbgg swizzle(glm::Y, glm::Z, glm::Y, glm::Y) -#define bbgg swizzle(glm::Z, glm::Z, glm::Y, glm::Y) -#define abgg swizzle(glm::W, glm::Z, glm::Y, glm::Y) -#define ragg swizzle(glm::X, glm::W, glm::Y, glm::Y) -#define gagg swizzle(glm::Y, glm::W, glm::Y, glm::Y) -#define bagg swizzle(glm::Z, glm::W, glm::Y, glm::Y) -#define aagg swizzle(glm::W, glm::W, glm::Y, glm::Y) -#define rrbg swizzle(glm::X, glm::X, glm::Z, glm::Y) -#define grbg swizzle(glm::Y, glm::X, glm::Z, glm::Y) -#define brbg swizzle(glm::Z, glm::X, glm::Z, glm::Y) -#define arbg swizzle(glm::W, glm::X, glm::Z, glm::Y) -#define rgbg swizzle(glm::X, glm::Y, glm::Z, glm::Y) -#define ggbg swizzle(glm::Y, glm::Y, glm::Z, glm::Y) -#define bgbg swizzle(glm::Z, glm::Y, glm::Z, glm::Y) -#define agbg swizzle(glm::W, glm::Y, glm::Z, glm::Y) -#define rbbg swizzle(glm::X, glm::Z, glm::Z, glm::Y) -#define gbbg swizzle(glm::Y, glm::Z, glm::Z, glm::Y) -#define bbbg swizzle(glm::Z, glm::Z, glm::Z, glm::Y) -#define abbg swizzle(glm::W, glm::Z, glm::Z, glm::Y) -#define rabg swizzle(glm::X, glm::W, glm::Z, glm::Y) -#define gabg swizzle(glm::Y, glm::W, glm::Z, glm::Y) -#define babg swizzle(glm::Z, glm::W, glm::Z, glm::Y) -#define aabg swizzle(glm::W, glm::W, glm::Z, glm::Y) -#define rrag swizzle(glm::X, glm::X, glm::W, glm::Y) -#define grag swizzle(glm::Y, glm::X, glm::W, glm::Y) -#define brag swizzle(glm::Z, glm::X, glm::W, glm::Y) -#define arag swizzle(glm::W, glm::X, glm::W, glm::Y) -#define rgag swizzle(glm::X, glm::Y, glm::W, glm::Y) -#define ggag swizzle(glm::Y, glm::Y, glm::W, glm::Y) -#define bgag swizzle(glm::Z, glm::Y, glm::W, glm::Y) -#define agag swizzle(glm::W, glm::Y, glm::W, glm::Y) -#define rbag swizzle(glm::X, glm::Z, glm::W, glm::Y) -#define gbag swizzle(glm::Y, glm::Z, glm::W, glm::Y) -#define bbag swizzle(glm::Z, glm::Z, glm::W, glm::Y) -#define abag swizzle(glm::W, glm::Z, glm::W, glm::Y) -#define raag swizzle(glm::X, glm::W, glm::W, glm::Y) -#define gaag swizzle(glm::Y, glm::W, glm::W, glm::Y) -#define baag swizzle(glm::Z, glm::W, glm::W, glm::Y) -#define aaag swizzle(glm::W, glm::W, glm::W, glm::Y) -#define rrrb swizzle(glm::X, glm::X, glm::X, glm::Z) -#define grrb swizzle(glm::Y, glm::X, glm::X, glm::Z) -#define brrb swizzle(glm::Z, glm::X, glm::X, glm::Z) -#define arrb swizzle(glm::W, glm::X, glm::X, glm::Z) -#define rgrb swizzle(glm::X, glm::Y, glm::X, glm::Z) -#define ggrb swizzle(glm::Y, glm::Y, glm::X, glm::Z) -#define bgrb swizzle(glm::Z, glm::Y, glm::X, glm::Z) -#define agrb swizzle(glm::W, glm::Y, glm::X, glm::Z) -#define rbrb swizzle(glm::X, glm::Z, glm::X, glm::Z) -#define gbrb swizzle(glm::Y, glm::Z, glm::X, glm::Z) -#define bbrb swizzle(glm::Z, glm::Z, glm::X, glm::Z) -#define abrb swizzle(glm::W, glm::Z, glm::X, glm::Z) -#define rarb swizzle(glm::X, glm::W, glm::X, glm::Z) -#define garb swizzle(glm::Y, glm::W, glm::X, glm::Z) -#define barb swizzle(glm::Z, glm::W, glm::X, glm::Z) -#define aarb swizzle(glm::W, glm::W, glm::X, glm::Z) -#define rrgb swizzle(glm::X, glm::X, glm::Y, glm::Z) -#define grgb swizzle(glm::Y, glm::X, glm::Y, glm::Z) -#define brgb swizzle(glm::Z, glm::X, glm::Y, glm::Z) -#define argb swizzle(glm::W, glm::X, glm::Y, glm::Z) -#define rggb swizzle(glm::X, glm::Y, glm::Y, glm::Z) -#define gggb swizzle(glm::Y, glm::Y, glm::Y, glm::Z) -#define bggb swizzle(glm::Z, glm::Y, glm::Y, glm::Z) -#define aggb swizzle(glm::W, glm::Y, glm::Y, glm::Z) -#define rbgb swizzle(glm::X, glm::Z, glm::Y, glm::Z) -#define gbgb swizzle(glm::Y, glm::Z, glm::Y, glm::Z) -#define bbgb swizzle(glm::Z, glm::Z, glm::Y, glm::Z) -#define abgb swizzle(glm::W, glm::Z, glm::Y, glm::Z) -#define ragb swizzle(glm::X, glm::W, glm::Y, glm::Z) -#define gagb swizzle(glm::Y, glm::W, glm::Y, glm::Z) -#define bagb swizzle(glm::Z, glm::W, glm::Y, glm::Z) -#define aagb swizzle(glm::W, glm::W, glm::Y, glm::Z) -#define rrbb swizzle(glm::X, glm::X, glm::Z, glm::Z) -#define grbb swizzle(glm::Y, glm::X, glm::Z, glm::Z) -#define brbb swizzle(glm::Z, glm::X, glm::Z, glm::Z) -#define arbb swizzle(glm::W, glm::X, glm::Z, glm::Z) -#define rgbb swizzle(glm::X, glm::Y, glm::Z, glm::Z) -#define ggbb swizzle(glm::Y, glm::Y, glm::Z, glm::Z) -#define bgbb swizzle(glm::Z, glm::Y, glm::Z, glm::Z) -#define agbb swizzle(glm::W, glm::Y, glm::Z, glm::Z) -#define rbbb swizzle(glm::X, glm::Z, glm::Z, glm::Z) -#define gbbb swizzle(glm::Y, glm::Z, glm::Z, glm::Z) -#define bbbb swizzle(glm::Z, glm::Z, glm::Z, glm::Z) -#define abbb swizzle(glm::W, glm::Z, glm::Z, glm::Z) -#define rabb swizzle(glm::X, glm::W, glm::Z, glm::Z) -#define gabb swizzle(glm::Y, glm::W, glm::Z, glm::Z) -#define babb swizzle(glm::Z, glm::W, glm::Z, glm::Z) -#define aabb swizzle(glm::W, glm::W, glm::Z, glm::Z) -#define rrab swizzle(glm::X, glm::X, glm::W, glm::Z) -#define grab swizzle(glm::Y, glm::X, glm::W, glm::Z) -#define brab swizzle(glm::Z, glm::X, glm::W, glm::Z) -#define arab swizzle(glm::W, glm::X, glm::W, glm::Z) -#define rgab swizzle(glm::X, glm::Y, glm::W, glm::Z) -#define ggab swizzle(glm::Y, glm::Y, glm::W, glm::Z) -#define bgab swizzle(glm::Z, glm::Y, glm::W, glm::Z) -#define agab swizzle(glm::W, glm::Y, glm::W, glm::Z) -#define rbab swizzle(glm::X, glm::Z, glm::W, glm::Z) -#define gbab swizzle(glm::Y, glm::Z, glm::W, glm::Z) -#define bbab swizzle(glm::Z, glm::Z, glm::W, glm::Z) -#define abab swizzle(glm::W, glm::Z, glm::W, glm::Z) -#define raab swizzle(glm::X, glm::W, glm::W, glm::Z) -#define gaab swizzle(glm::Y, glm::W, glm::W, glm::Z) -#define baab swizzle(glm::Z, glm::W, glm::W, glm::Z) -#define aaab swizzle(glm::W, glm::W, glm::W, glm::Z) -#define rrra swizzle(glm::X, glm::X, glm::X, glm::W) -#define grra swizzle(glm::Y, glm::X, glm::X, glm::W) -#define brra swizzle(glm::Z, glm::X, glm::X, glm::W) -#define arra swizzle(glm::W, glm::X, glm::X, glm::W) -#define rgra swizzle(glm::X, glm::Y, glm::X, glm::W) -#define ggra swizzle(glm::Y, glm::Y, glm::X, glm::W) -#define bgra swizzle(glm::Z, glm::Y, glm::X, glm::W) -#define agra swizzle(glm::W, glm::Y, glm::X, glm::W) -#define rbra swizzle(glm::X, glm::Z, glm::X, glm::W) -#define gbra swizzle(glm::Y, glm::Z, glm::X, glm::W) -#define bbra swizzle(glm::Z, glm::Z, glm::X, glm::W) -#define abra swizzle(glm::W, glm::Z, glm::X, glm::W) -#define rara swizzle(glm::X, glm::W, glm::X, glm::W) -#define gara swizzle(glm::Y, glm::W, glm::X, glm::W) -#define bara swizzle(glm::Z, glm::W, glm::X, glm::W) -#define aara swizzle(glm::W, glm::W, glm::X, glm::W) -#define rrga swizzle(glm::X, glm::X, glm::Y, glm::W) -#define grga swizzle(glm::Y, glm::X, glm::Y, glm::W) -#define brga swizzle(glm::Z, glm::X, glm::Y, glm::W) -#define arga swizzle(glm::W, glm::X, glm::Y, glm::W) -#define rgga swizzle(glm::X, glm::Y, glm::Y, glm::W) -#define ggga swizzle(glm::Y, glm::Y, glm::Y, glm::W) -#define bgga swizzle(glm::Z, glm::Y, glm::Y, glm::W) -#define agga swizzle(glm::W, glm::Y, glm::Y, glm::W) -#define rbga swizzle(glm::X, glm::Z, glm::Y, glm::W) -#define gbga swizzle(glm::Y, glm::Z, glm::Y, glm::W) -#define bbga swizzle(glm::Z, glm::Z, glm::Y, glm::W) -#define abga swizzle(glm::W, glm::Z, glm::Y, glm::W) -#define raga swizzle(glm::X, glm::W, glm::Y, glm::W) -#define gaga swizzle(glm::Y, glm::W, glm::Y, glm::W) -#define baga swizzle(glm::Z, glm::W, glm::Y, glm::W) -#define aaga swizzle(glm::W, glm::W, glm::Y, glm::W) -#define rrba swizzle(glm::X, glm::X, glm::Z, glm::W) -#define grba swizzle(glm::Y, glm::X, glm::Z, glm::W) -#define brba swizzle(glm::Z, glm::X, glm::Z, glm::W) -#define arba swizzle(glm::W, glm::X, glm::Z, glm::W) -#define rgba swizzle(glm::X, glm::Y, glm::Z, glm::W) -#define ggba swizzle(glm::Y, glm::Y, glm::Z, glm::W) -#define bgba swizzle(glm::Z, glm::Y, glm::Z, glm::W) -#define agba swizzle(glm::W, glm::Y, glm::Z, glm::W) -#define rbba swizzle(glm::X, glm::Z, glm::Z, glm::W) -#define gbba swizzle(glm::Y, glm::Z, glm::Z, glm::W) -#define bbba swizzle(glm::Z, glm::Z, glm::Z, glm::W) -#define abba swizzle(glm::W, glm::Z, glm::Z, glm::W) -#define raba swizzle(glm::X, glm::W, glm::Z, glm::W) -#define gaba swizzle(glm::Y, glm::W, glm::Z, glm::W) -#define baba swizzle(glm::Z, glm::W, glm::Z, glm::W) -#define aaba swizzle(glm::W, glm::W, glm::Z, glm::W) -#define rraa swizzle(glm::X, glm::X, glm::W, glm::W) -#define graa swizzle(glm::Y, glm::X, glm::W, glm::W) -#define braa swizzle(glm::Z, glm::X, glm::W, glm::W) -#define araa swizzle(glm::W, glm::X, glm::W, glm::W) -#define rgaa swizzle(glm::X, glm::Y, glm::W, glm::W) -#define ggaa swizzle(glm::Y, glm::Y, glm::W, glm::W) -#define bgaa swizzle(glm::Z, glm::Y, glm::W, glm::W) -#define agaa swizzle(glm::W, glm::Y, glm::W, glm::W) -#define rbaa swizzle(glm::X, glm::Z, glm::W, glm::W) -#define gbaa swizzle(glm::Y, glm::Z, glm::W, glm::W) -#define bbaa swizzle(glm::Z, glm::Z, glm::W, glm::W) -#define abaa swizzle(glm::W, glm::Z, glm::W, glm::W) -#define raaa swizzle(glm::X, glm::W, glm::W, glm::W) -#define gaaa swizzle(glm::Y, glm::W, glm::W, glm::W) -#define baaa swizzle(glm::Z, glm::W, glm::W, glm::W) -#define aaaa swizzle(glm::W, glm::W, glm::W, glm::W) - -#endif - -#if(defined(GLM_FORCE_SWIZZLE_STPQ) || defined(GLM_SWIZZLE)) - -#define ssss swizzle(glm::X, glm::X, glm::X, glm::X) -#define tsss swizzle(glm::Y, glm::X, glm::X, glm::X) -#define psss swizzle(glm::Z, glm::X, glm::X, glm::X) -#define qsss swizzle(glm::W, glm::X, glm::X, glm::X) -#define stss swizzle(glm::X, glm::Y, glm::X, glm::X) -#define ttss swizzle(glm::Y, glm::Y, glm::X, glm::X) -#define ptss swizzle(glm::Z, glm::Y, glm::X, glm::X) -#define qtss swizzle(glm::W, glm::Y, glm::X, glm::X) -#define spss swizzle(glm::X, glm::Z, glm::X, glm::X) -#define tpss swizzle(glm::Y, glm::Z, glm::X, glm::X) -#define ppss swizzle(glm::Z, glm::Z, glm::X, glm::X) -#define qpss swizzle(glm::W, glm::Z, glm::X, glm::X) -#define sqss swizzle(glm::X, glm::W, glm::X, glm::X) -#define tqss swizzle(glm::Y, glm::W, glm::X, glm::X) -#define pqss swizzle(glm::Z, glm::W, glm::X, glm::X) -#define qqss swizzle(glm::W, glm::W, glm::X, glm::X) -#define ssts swizzle(glm::X, glm::X, glm::Y, glm::X) -#define tsts swizzle(glm::Y, glm::X, glm::Y, glm::X) -#define psts swizzle(glm::Z, glm::X, glm::Y, glm::X) -#define qsts swizzle(glm::W, glm::X, glm::Y, glm::X) -#define stts swizzle(glm::X, glm::Y, glm::Y, glm::X) -#define ttts swizzle(glm::Y, glm::Y, glm::Y, glm::X) -#define ptts swizzle(glm::Z, glm::Y, glm::Y, glm::X) -#define qtts swizzle(glm::W, glm::Y, glm::Y, glm::X) -#define spts swizzle(glm::X, glm::Z, glm::Y, glm::X) -#define tpts swizzle(glm::Y, glm::Z, glm::Y, glm::X) -#define ppts swizzle(glm::Z, glm::Z, glm::Y, glm::X) -#define qpts swizzle(glm::W, glm::Z, glm::Y, glm::X) -#define sqts swizzle(glm::X, glm::W, glm::Y, glm::X) -#define tqts swizzle(glm::Y, glm::W, glm::Y, glm::X) -#define pqts swizzle(glm::Z, glm::W, glm::Y, glm::X) -#define qqts swizzle(glm::W, glm::W, glm::Y, glm::X) -#define ssps swizzle(glm::X, glm::X, glm::Z, glm::X) -#define tsps swizzle(glm::Y, glm::X, glm::Z, glm::X) -#define psps swizzle(glm::Z, glm::X, glm::Z, glm::X) -#define qsps swizzle(glm::W, glm::X, glm::Z, glm::X) -#define stps swizzle(glm::X, glm::Y, glm::Z, glm::X) -#define ttps swizzle(glm::Y, glm::Y, glm::Z, glm::X) -#define ptps swizzle(glm::Z, glm::Y, glm::Z, glm::X) -#define qtps swizzle(glm::W, glm::Y, glm::Z, glm::X) -#define spps swizzle(glm::X, glm::Z, glm::Z, glm::X) -#define tpps swizzle(glm::Y, glm::Z, glm::Z, glm::X) -#define ppps swizzle(glm::Z, glm::Z, glm::Z, glm::X) -#define qpps swizzle(glm::W, glm::Z, glm::Z, glm::X) -#define sqps swizzle(glm::X, glm::W, glm::Z, glm::X) -#define tqps swizzle(glm::Y, glm::W, glm::Z, glm::X) -#define pqps swizzle(glm::Z, glm::W, glm::Z, glm::X) -#define qqps swizzle(glm::W, glm::W, glm::Z, glm::X) -#define ssqs swizzle(glm::X, glm::X, glm::W, glm::X) -#define tsqs swizzle(glm::Y, glm::X, glm::W, glm::X) -#define psqs swizzle(glm::Z, glm::X, glm::W, glm::X) -#define qsqs swizzle(glm::W, glm::X, glm::W, glm::X) -#define stqs swizzle(glm::X, glm::Y, glm::W, glm::X) -#define ttqs swizzle(glm::Y, glm::Y, glm::W, glm::X) -#define ptqs swizzle(glm::Z, glm::Y, glm::W, glm::X) -#define qtqs swizzle(glm::W, glm::Y, glm::W, glm::X) -#define spqs swizzle(glm::X, glm::Z, glm::W, glm::X) -#define tpqs swizzle(glm::Y, glm::Z, glm::W, glm::X) -#define ppqs swizzle(glm::Z, glm::Z, glm::W, glm::X) -#define qpqs swizzle(glm::W, glm::Z, glm::W, glm::X) -#define sqqs swizzle(glm::X, glm::W, glm::W, glm::X) -#define tqqs swizzle(glm::Y, glm::W, glm::W, glm::X) -#define pqqs swizzle(glm::Z, glm::W, glm::W, glm::X) -#define qqqs swizzle(glm::W, glm::W, glm::W, glm::X) -#define ssst swizzle(glm::X, glm::X, glm::X, glm::Y) -#define tsst swizzle(glm::Y, glm::X, glm::X, glm::Y) -#define psst swizzle(glm::Z, glm::X, glm::X, glm::Y) -#define qsst swizzle(glm::W, glm::X, glm::X, glm::Y) -#define stst swizzle(glm::X, glm::Y, glm::X, glm::Y) -#define ttst swizzle(glm::Y, glm::Y, glm::X, glm::Y) -#define ptst swizzle(glm::Z, glm::Y, glm::X, glm::Y) -#define qtst swizzle(glm::W, glm::Y, glm::X, glm::Y) -#define spst swizzle(glm::X, glm::Z, glm::X, glm::Y) -#define tpst swizzle(glm::Y, glm::Z, glm::X, glm::Y) -#define ppst swizzle(glm::Z, glm::Z, glm::X, glm::Y) -#define qpst swizzle(glm::W, glm::Z, glm::X, glm::Y) -#define sqst swizzle(glm::X, glm::W, glm::X, glm::Y) -#define tqst swizzle(glm::Y, glm::W, glm::X, glm::Y) -#define pqst swizzle(glm::Z, glm::W, glm::X, glm::Y) -#define qqst swizzle(glm::W, glm::W, glm::X, glm::Y) -#define sstt swizzle(glm::X, glm::X, glm::Y, glm::Y) -#define tstt swizzle(glm::Y, glm::X, glm::Y, glm::Y) -#define pstt swizzle(glm::Z, glm::X, glm::Y, glm::Y) -#define qstt swizzle(glm::W, glm::X, glm::Y, glm::Y) -#define sttt swizzle(glm::X, glm::Y, glm::Y, glm::Y) -#define tttt swizzle(glm::Y, glm::Y, glm::Y, glm::Y) -#define pttt swizzle(glm::Z, glm::Y, glm::Y, glm::Y) -#define qttt swizzle(glm::W, glm::Y, glm::Y, glm::Y) -#define sptt swizzle(glm::X, glm::Z, glm::Y, glm::Y) -#define tptt swizzle(glm::Y, glm::Z, glm::Y, glm::Y) -#define pptt swizzle(glm::Z, glm::Z, glm::Y, glm::Y) -#define qptt swizzle(glm::W, glm::Z, glm::Y, glm::Y) -#define sqtt swizzle(glm::X, glm::W, glm::Y, glm::Y) -#define tqtt swizzle(glm::Y, glm::W, glm::Y, glm::Y) -#define pqtt swizzle(glm::Z, glm::W, glm::Y, glm::Y) -#define qqtt swizzle(glm::W, glm::W, glm::Y, glm::Y) -#define sspt swizzle(glm::X, glm::X, glm::Z, glm::Y) -#define tspt swizzle(glm::Y, glm::X, glm::Z, glm::Y) -#define pspt swizzle(glm::Z, glm::X, glm::Z, glm::Y) -#define qspt swizzle(glm::W, glm::X, glm::Z, glm::Y) -#define stpt swizzle(glm::X, glm::Y, glm::Z, glm::Y) -#define ttpt swizzle(glm::Y, glm::Y, glm::Z, glm::Y) -#define ptpt swizzle(glm::Z, glm::Y, glm::Z, glm::Y) -#define qtpt swizzle(glm::W, glm::Y, glm::Z, glm::Y) -#define sppt swizzle(glm::X, glm::Z, glm::Z, glm::Y) -#define tppt swizzle(glm::Y, glm::Z, glm::Z, glm::Y) -#define pppt swizzle(glm::Z, glm::Z, glm::Z, glm::Y) -#define qppt swizzle(glm::W, glm::Z, glm::Z, glm::Y) -#define sqpt swizzle(glm::X, glm::W, glm::Z, glm::Y) -#define tqpt swizzle(glm::Y, glm::W, glm::Z, glm::Y) -#define pqpt swizzle(glm::Z, glm::W, glm::Z, glm::Y) -#define qqpt swizzle(glm::W, glm::W, glm::Z, glm::Y) -#define ssqt swizzle(glm::X, glm::X, glm::W, glm::Y) -#define tsqt swizzle(glm::Y, glm::X, glm::W, glm::Y) -#define psqt swizzle(glm::Z, glm::X, glm::W, glm::Y) -#define qsqt swizzle(glm::W, glm::X, glm::W, glm::Y) -#define stqt swizzle(glm::X, glm::Y, glm::W, glm::Y) -#define ttqt swizzle(glm::Y, glm::Y, glm::W, glm::Y) -#define ptqt swizzle(glm::Z, glm::Y, glm::W, glm::Y) -#define qtqt swizzle(glm::W, glm::Y, glm::W, glm::Y) -#define spqt swizzle(glm::X, glm::Z, glm::W, glm::Y) -#define tpqt swizzle(glm::Y, glm::Z, glm::W, glm::Y) -#define ppqt swizzle(glm::Z, glm::Z, glm::W, glm::Y) -#define qpqt swizzle(glm::W, glm::Z, glm::W, glm::Y) -#define sqqt swizzle(glm::X, glm::W, glm::W, glm::Y) -#define tqqt swizzle(glm::Y, glm::W, glm::W, glm::Y) -#define pqqt swizzle(glm::Z, glm::W, glm::W, glm::Y) -#define qqqt swizzle(glm::W, glm::W, glm::W, glm::Y) -#define sssp swizzle(glm::X, glm::X, glm::X, glm::Z) -#define tssp swizzle(glm::Y, glm::X, glm::X, glm::Z) -#define pssp swizzle(glm::Z, glm::X, glm::X, glm::Z) -#define qssp swizzle(glm::W, glm::X, glm::X, glm::Z) -#define stsp swizzle(glm::X, glm::Y, glm::X, glm::Z) -#define ttsp swizzle(glm::Y, glm::Y, glm::X, glm::Z) -#define ptsp swizzle(glm::Z, glm::Y, glm::X, glm::Z) -#define qtsp swizzle(glm::W, glm::Y, glm::X, glm::Z) -#define spsp swizzle(glm::X, glm::Z, glm::X, glm::Z) -#define tpsp swizzle(glm::Y, glm::Z, glm::X, glm::Z) -#define ppsp swizzle(glm::Z, glm::Z, glm::X, glm::Z) -#define qpsp swizzle(glm::W, glm::Z, glm::X, glm::Z) -#define sqsp swizzle(glm::X, glm::W, glm::X, glm::Z) -#define tqsp swizzle(glm::Y, glm::W, glm::X, glm::Z) -#define pqsp swizzle(glm::Z, glm::W, glm::X, glm::Z) -#define qqsp swizzle(glm::W, glm::W, glm::X, glm::Z) -#define sstp swizzle(glm::X, glm::X, glm::Y, glm::Z) -#define tstp swizzle(glm::Y, glm::X, glm::Y, glm::Z) -#define pstp swizzle(glm::Z, glm::X, glm::Y, glm::Z) -#define qstp swizzle(glm::W, glm::X, glm::Y, glm::Z) -#define sttp swizzle(glm::X, glm::Y, glm::Y, glm::Z) -#define tttp swizzle(glm::Y, glm::Y, glm::Y, glm::Z) -#define pttp swizzle(glm::Z, glm::Y, glm::Y, glm::Z) -#define qttp swizzle(glm::W, glm::Y, glm::Y, glm::Z) -#define sptp swizzle(glm::X, glm::Z, glm::Y, glm::Z) -#define tptp swizzle(glm::Y, glm::Z, glm::Y, glm::Z) -#define pptp swizzle(glm::Z, glm::Z, glm::Y, glm::Z) -#define qptp swizzle(glm::W, glm::Z, glm::Y, glm::Z) -#define sqtp swizzle(glm::X, glm::W, glm::Y, glm::Z) -#define tqtp swizzle(glm::Y, glm::W, glm::Y, glm::Z) -#define pqtp swizzle(glm::Z, glm::W, glm::Y, glm::Z) -#define qqtp swizzle(glm::W, glm::W, glm::Y, glm::Z) -#define sspp swizzle(glm::X, glm::X, glm::Z, glm::Z) -#define tspp swizzle(glm::Y, glm::X, glm::Z, glm::Z) -#define pspp swizzle(glm::Z, glm::X, glm::Z, glm::Z) -#define qspp swizzle(glm::W, glm::X, glm::Z, glm::Z) -#define stpp swizzle(glm::X, glm::Y, glm::Z, glm::Z) -#define ttpp swizzle(glm::Y, glm::Y, glm::Z, glm::Z) -#define ptpp swizzle(glm::Z, glm::Y, glm::Z, glm::Z) -#define qtpp swizzle(glm::W, glm::Y, glm::Z, glm::Z) -#define sppp swizzle(glm::X, glm::Z, glm::Z, glm::Z) -#define tppp swizzle(glm::Y, glm::Z, glm::Z, glm::Z) -#define pppp swizzle(glm::Z, glm::Z, glm::Z, glm::Z) -#define qppp swizzle(glm::W, glm::Z, glm::Z, glm::Z) -#define sqpp swizzle(glm::X, glm::W, glm::Z, glm::Z) -#define tqpp swizzle(glm::Y, glm::W, glm::Z, glm::Z) -#define pqpp swizzle(glm::Z, glm::W, glm::Z, glm::Z) -#define qqpp swizzle(glm::W, glm::W, glm::Z, glm::Z) -#define ssqp swizzle(glm::X, glm::X, glm::W, glm::Z) -#define tsqp swizzle(glm::Y, glm::X, glm::W, glm::Z) -#define psqp swizzle(glm::Z, glm::X, glm::W, glm::Z) -#define qsqp swizzle(glm::W, glm::X, glm::W, glm::Z) -#define stqp swizzle(glm::X, glm::Y, glm::W, glm::Z) -#define ttqp swizzle(glm::Y, glm::Y, glm::W, glm::Z) -#define ptqp swizzle(glm::Z, glm::Y, glm::W, glm::Z) -#define qtqp swizzle(glm::W, glm::Y, glm::W, glm::Z) -#define spqp swizzle(glm::X, glm::Z, glm::W, glm::Z) -#define tpqp swizzle(glm::Y, glm::Z, glm::W, glm::Z) -#define ppqp swizzle(glm::Z, glm::Z, glm::W, glm::Z) -#define qpqp swizzle(glm::W, glm::Z, glm::W, glm::Z) -#define sqqp swizzle(glm::X, glm::W, glm::W, glm::Z) -#define tqqp swizzle(glm::Y, glm::W, glm::W, glm::Z) -#define pqqp swizzle(glm::Z, glm::W, glm::W, glm::Z) -#define qqqp swizzle(glm::W, glm::W, glm::W, glm::Z) -#define sssq swizzle(glm::X, glm::X, glm::X, glm::W) -#define tssq swizzle(glm::Y, glm::X, glm::X, glm::W) -#define pssq swizzle(glm::Z, glm::X, glm::X, glm::W) -#define qssq swizzle(glm::W, glm::X, glm::X, glm::W) -#define stsq swizzle(glm::X, glm::Y, glm::X, glm::W) -#define ttsq swizzle(glm::Y, glm::Y, glm::X, glm::W) -#define ptsq swizzle(glm::Z, glm::Y, glm::X, glm::W) -#define qtsq swizzle(glm::W, glm::Y, glm::X, glm::W) -#define spsq swizzle(glm::X, glm::Z, glm::X, glm::W) -#define tpsq swizzle(glm::Y, glm::Z, glm::X, glm::W) -#define ppsq swizzle(glm::Z, glm::Z, glm::X, glm::W) -#define qpsq swizzle(glm::W, glm::Z, glm::X, glm::W) -#define sqsq swizzle(glm::X, glm::W, glm::X, glm::W) -#define tqsq swizzle(glm::Y, glm::W, glm::X, glm::W) -#define pqsq swizzle(glm::Z, glm::W, glm::X, glm::W) -#define qqsq swizzle(glm::W, glm::W, glm::X, glm::W) -#define sstq swizzle(glm::X, glm::X, glm::Y, glm::W) -#define tstq swizzle(glm::Y, glm::X, glm::Y, glm::W) -#define pstq swizzle(glm::Z, glm::X, glm::Y, glm::W) -#define qstq swizzle(glm::W, glm::X, glm::Y, glm::W) -#define sttq swizzle(glm::X, glm::Y, glm::Y, glm::W) -#define tttq swizzle(glm::Y, glm::Y, glm::Y, glm::W) -#define pttq swizzle(glm::Z, glm::Y, glm::Y, glm::W) -#define qttq swizzle(glm::W, glm::Y, glm::Y, glm::W) -#define sptq swizzle(glm::X, glm::Z, glm::Y, glm::W) -#define tptq swizzle(glm::Y, glm::Z, glm::Y, glm::W) -#define pptq swizzle(glm::Z, glm::Z, glm::Y, glm::W) -#define qptq swizzle(glm::W, glm::Z, glm::Y, glm::W) -#define sqtq swizzle(glm::X, glm::W, glm::Y, glm::W) -#define tqtq swizzle(glm::Y, glm::W, glm::Y, glm::W) -#define pqtq swizzle(glm::Z, glm::W, glm::Y, glm::W) -#define qqtq swizzle(glm::W, glm::W, glm::Y, glm::W) -#define sspq swizzle(glm::X, glm::X, glm::Z, glm::W) -#define tspq swizzle(glm::Y, glm::X, glm::Z, glm::W) -#define pspq swizzle(glm::Z, glm::X, glm::Z, glm::W) -#define qspq swizzle(glm::W, glm::X, glm::Z, glm::W) -#define stpq swizzle(glm::X, glm::Y, glm::Z, glm::W) -#define ttpq swizzle(glm::Y, glm::Y, glm::Z, glm::W) -#define ptpq swizzle(glm::Z, glm::Y, glm::Z, glm::W) -#define qtpq swizzle(glm::W, glm::Y, glm::Z, glm::W) -#define sppq swizzle(glm::X, glm::Z, glm::Z, glm::W) -#define tppq swizzle(glm::Y, glm::Z, glm::Z, glm::W) -#define pppq swizzle(glm::Z, glm::Z, glm::Z, glm::W) -#define qppq swizzle(glm::W, glm::Z, glm::Z, glm::W) -#define sqpq swizzle(glm::X, glm::W, glm::Z, glm::W) -#define tqpq swizzle(glm::Y, glm::W, glm::Z, glm::W) -#define pqpq swizzle(glm::Z, glm::W, glm::Z, glm::W) -#define qqpq swizzle(glm::W, glm::W, glm::Z, glm::W) -#define ssqq swizzle(glm::X, glm::X, glm::W, glm::W) -#define tsqq swizzle(glm::Y, glm::X, glm::W, glm::W) -#define psqq swizzle(glm::Z, glm::X, glm::W, glm::W) -#define qsqq swizzle(glm::W, glm::X, glm::W, glm::W) -#define stqq swizzle(glm::X, glm::Y, glm::W, glm::W) -#define ttqq swizzle(glm::Y, glm::Y, glm::W, glm::W) -#define ptqq swizzle(glm::Z, glm::Y, glm::W, glm::W) -#define qtqq swizzle(glm::W, glm::Y, glm::W, glm::W) -#define spqq swizzle(glm::X, glm::Z, glm::W, glm::W) -#define tpqq swizzle(glm::Y, glm::Z, glm::W, glm::W) -#define ppqq swizzle(glm::Z, glm::Z, glm::W, glm::W) -#define qpqq swizzle(glm::W, glm::Z, glm::W, glm::W) -#define sqqq swizzle(glm::X, glm::W, glm::W, glm::W) -#define tqqq swizzle(glm::Y, glm::W, glm::W, glm::W) -#define pqqq swizzle(glm::Z, glm::W, glm::W, glm::W) -#define qqqq swizzle(glm::W, glm::W, glm::W, glm::W) - -#endif - #endif//glm_core_swizzle diff --git a/glm/core/setup.hpp b/glm/core/setup.hpp index 1178371b..b620e425 100644 --- a/glm/core/setup.hpp +++ b/glm/core/setup.hpp @@ -519,6 +519,13 @@ #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Support check macros + +#define GLM_SUPPORT_SWIZZLE_OPERATOR() (defined(GLM_SWIZZLE_OPERATOR) && \ + ((GLM_LANG == GLM_LANG_CXX11) || (GLM_LANG == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X)))) +#define GLM_SUPPORT_SWIZZLE_FUNCTION() defined(GLM_SWIZZLE_OPERATOR) + /////////////////////////////////////////////////////////////////////////////////////////////////// // Swizzle operators @@ -535,10 +542,4 @@ # endif #endif//GLM_MESSAGE -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Support check macros - -#define GLM_SUPPORT_SWIZZLE_OPERATOR() \ - ((GLM_LANG == GLM_LANG_CXX11) || (GLM_LANG == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X))) - #endif//glm_setup diff --git a/glm/core/type_vec2.hpp b/glm/core/type_vec2.hpp index 29a04e9e..b17f0b21 100644 --- a/glm/core/type_vec2.hpp +++ b/glm/core/type_vec2.hpp @@ -65,25 +65,25 @@ namespace detail # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW) value_type x, y; -# ifdef GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_FUNCTION()) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(value_type, detail::tvec2, detail::tref2, x, y) GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(value_type, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4, x, y) -# endif//GLM_SWIZZLE_OPERATOR -# elif(GLM_SUPPORT_SWIZZLE_OPERATOR()) +# endif//GLM_SUPPORT_SWIZZLE_FUNCTION() +# elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT) union { -# ifdef GLM_SWIZZLE_OPERATOR - _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2, x, y) - _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2, r, g) - _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2, s, t) - _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3, x, y) - _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3, r, g) - _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3, s, t) - _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4, x, y) - _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4, r, g) - _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4, s, t) -# endif//GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_OPERATOR()) + _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2, x, y) + _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2, r, g) + _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2, s, t) + _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3, x, y) + _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3, r, g) + _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3, s, t) + _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4, x, y) + _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4, r, g) + _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4, s, t) +# endif//(GLM_SUPPORT_SWIZZLE_OPERATOR()) struct{value_type r, g;}; struct{value_type s, t;}; @@ -93,11 +93,11 @@ namespace detail union {value_type x, r, s;}; union {value_type y, g, t;}; -# ifdef GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_FUNCTION()) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC2(value_type, detail::tvec2, detail::tref2) GLM_SWIZZLE_GEN_VEC_FROM_VEC2(value_type, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4) -# endif//GLM_SWIZZLE_OPERATOR +# endif//GLM_SUPPORT_SWIZZLE_FUNCTION() # endif//GLM_COMPONENT ////////////////////////////////////// diff --git a/glm/core/type_vec3.hpp b/glm/core/type_vec3.hpp index d92d3b8d..1b2fe983 100644 --- a/glm/core/type_vec3.hpp +++ b/glm/core/type_vec3.hpp @@ -61,35 +61,29 @@ namespace detail ////////////////////////////////////// // Data -/* -#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \ - SWIZZLED_TYPE A ## B ## C() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B, this->B); \ - } -*/ + # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW) value_type x, y, z; -# ifdef GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_FUNCTION()) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, detail::tvec3, detail::tref2, detail::tref3, x, y, z) GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4, x, y, z) -# endif//GLM_SWIZZLE_OPERATOR -# elif(GLM_SUPPORT_SWIZZLE_OPERATOR()) +# endif//GLM_SUPPORT_SWIZZLE_FUNCTION() +# elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT) union { -# ifdef GLM_SWIZZLE_OPERATOR - _GLM_SWIZZLE3_2_MEMBERS(value_type,glm::detail::tvec2,x,y,z) - _GLM_SWIZZLE3_2_MEMBERS(value_type,glm::detail::tvec2,r,g,b) - _GLM_SWIZZLE3_2_MEMBERS(value_type,glm::detail::tvec2,s,t,p) - _GLM_SWIZZLE3_3_MEMBERS(value_type,glm::detail::tvec3,x,y,z) - _GLM_SWIZZLE3_3_MEMBERS(value_type,glm::detail::tvec3,r,g,b) - _GLM_SWIZZLE3_3_MEMBERS(value_type,glm::detail::tvec3,s,t,p) - _GLM_SWIZZLE3_4_MEMBERS(value_type,glm::detail::tvec4,x,y,z) - _GLM_SWIZZLE3_4_MEMBERS(value_type,glm::detail::tvec4,r,g,b) - _GLM_SWIZZLE3_4_MEMBERS(value_type,glm::detail::tvec4,s,t,p) -# endif//GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_OPERATOR()) + _GLM_SWIZZLE3_2_MEMBERS(value_type, glm::detail::tvec2, x, y, z) + _GLM_SWIZZLE3_2_MEMBERS(value_type, glm::detail::tvec2, r, g, b) + _GLM_SWIZZLE3_2_MEMBERS(value_type, glm::detail::tvec2, s, t, p) + _GLM_SWIZZLE3_3_MEMBERS(value_type, glm::detail::tvec3, x, y, z) + _GLM_SWIZZLE3_3_MEMBERS(value_type, glm::detail::tvec3, r, g, b) + _GLM_SWIZZLE3_3_MEMBERS(value_type, glm::detail::tvec3, s, t, p) + _GLM_SWIZZLE3_4_MEMBERS(value_type, glm::detail::tvec4, x, y, z) + _GLM_SWIZZLE3_4_MEMBERS(value_type, glm::detail::tvec4, r, g, b) + _GLM_SWIZZLE3_4_MEMBERS(value_type, glm::detail::tvec4, s, t, p) +# endif//(GLM_SUPPORT_SWIZZLE_OPERATOR()) struct{value_type r, g, b;}; struct{value_type s, t, p;}; @@ -100,12 +94,11 @@ namespace detail union {value_type y, g, t;}; union {value_type z, b, p;}; -# ifdef GLM_SWIZZLE_OPERATOR - //GLM_SWIZZLE_GEN_VEC3_ENTRY(T, detail::tvec3, detail::tvec3, const, x, y, z) +# if(GLM_SUPPORT_SWIZZLE_FUNCTION()) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, detail::tvec3, detail::tref2, detail::tref3) GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4) -# endif//GLM_SWIZZLE_OPERATOR +# endif//GLM_SUPPORT_SWIZZLE_FUNCTION() # endif//GLM_COMPONENT ////////////////////////////////////// diff --git a/glm/core/type_vec4.hpp b/glm/core/type_vec4.hpp index 1bcc8a24..f8cdc2dc 100644 --- a/glm/core/type_vec4.hpp +++ b/glm/core/type_vec4.hpp @@ -65,25 +65,25 @@ namespace detail # if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW) value_type x, y, z, w; -# ifdef GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_FUNCTION()) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, detail::tvec4, detail::tref2, detail::tref3, detail::tref4, x, y, z, w) GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4, x, y, z, w) -# endif//GLM_SWIZZLE_OPERATOR -# elif(GLM_SUPPORT_SWIZZLE_OPERATOR()) +# endif//GLM_SUPPORT_SWIZZLE_FUNCTION() +# elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT) union { -# ifdef GLM_SWIZZLE_OPERATOR - _GLM_SWIZZLE4_2_MEMBERS(value_type,glm::detail::tvec2,x,y,z,w) - _GLM_SWIZZLE4_2_MEMBERS(value_type,glm::detail::tvec2,r,g,b,a) - _GLM_SWIZZLE4_2_MEMBERS(value_type,glm::detail::tvec2,s,t,p,q) - _GLM_SWIZZLE4_3_MEMBERS(value_type,glm::detail::tvec3,x,y,z,w) - _GLM_SWIZZLE4_3_MEMBERS(value_type,glm::detail::tvec3,r,g,b,a) - _GLM_SWIZZLE4_3_MEMBERS(value_type,glm::detail::tvec3,s,t,p,q) - _GLM_SWIZZLE4_4_MEMBERS(value_type,glm::detail::tvec4,x,y,z,w) - _GLM_SWIZZLE4_4_MEMBERS(value_type,glm::detail::tvec4,r,g,b,a) - _GLM_SWIZZLE4_4_MEMBERS(value_type,glm::detail::tvec4,s,t,p,q) -# endif//GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_OPERATOR()) + _GLM_SWIZZLE4_2_MEMBERS(value_type, glm::detail::tvec2, x, y, z, w) + _GLM_SWIZZLE4_2_MEMBERS(value_type, glm::detail::tvec2, r, g, b, a) + _GLM_SWIZZLE4_2_MEMBERS(value_type, glm::detail::tvec2, s, t, p, q) + _GLM_SWIZZLE4_3_MEMBERS(value_type, glm::detail::tvec3, x, y, z, w) + _GLM_SWIZZLE4_3_MEMBERS(value_type, glm::detail::tvec3, r, g, b, a) + _GLM_SWIZZLE4_3_MEMBERS(value_type, glm::detail::tvec3, s, t, p, q) + _GLM_SWIZZLE4_4_MEMBERS(value_type, glm::detail::tvec4, x, y, z, w) + _GLM_SWIZZLE4_4_MEMBERS(value_type, glm::detail::tvec4, r, g, b, a) + _GLM_SWIZZLE4_4_MEMBERS(value_type, glm::detail::tvec4, s, t, p, q) +# endif//(GLM_SUPPORT_SWIZZLE_OPERATOR()) struct{value_type r, g, b, a;}; struct{value_type s, t, p, q;}; @@ -95,11 +95,11 @@ namespace detail union {value_type z, b, p;}; union {value_type w, a, q;}; -# ifdef GLM_SWIZZLE_OPERATOR +# if(GLM_SUPPORT_SWIZZLE_FUNCTION()) // Defines all he swizzle operator as functions GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, detail::tvec4, detail::tref2, detail::tref3, detail::tref4) GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4) -# endif//GLM_SWIZZLE_OPERATOR +# endif//GLM_SUPPORT_SWIZZLE_FUNCTION() # endif//GLM_COMPONENT //////////////////////////////////////