# GLM: _swizzle.hpp Source File

- Main Page
- Namespaces
- Files

- File List

# _swizzle.hpp

    00001
    00002 // OpenGL Mathematics Copyright (c) 2005 - 2009 G-Truc Creation (www.g-truc.net)
    00004 // Created : 2006-04-20
    00005 // Updated : 2008-08-22
    00006 // Licence : This source is under MIT License
    00007 // File    : glm/core/_swizzle.hpp
    00009
    00010 #ifndef glm_core_swizzle
    00011 #define glm_core_swizzle
    00012
    00013 namespace glm
    00014 {
    00015         enum comp
    00016         {
    00017                 X = 0,
    00018                 R = 0,
    00019                 S = 0,
    00020                 Y = 1,
    00021                 G = 1,
    00022                 T = 1,
    00023                 Z = 2,
    00024                 B = 2,
    00025                 P = 2,
    00026                 W = 3,
    00027                 A = 3,
    00028                 Q = 3
    00029         };
    00030 }//namespace glm
    00031
    00032 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_XYZW)
    00033
    00034 #define xx swizzle(glm::X, glm::X)
    00035 #define yx swizzle(glm::Y, glm::X)
    00036 #define zx swizzle(glm::Z, glm::X)
    00037 #define wx swizzle(glm::W, glm::X)
    00038 #define xy swizzle(glm::X, glm::Y)
    00039 #define yy swizzle(glm::Y, glm::Y)
    00040 #define zy swizzle(glm::Z, glm::Y)
    00041 #define wy swizzle(glm::W, glm::Y)
    00042 #define xz swizzle(glm::X, glm::Z)
    00043 #define yz swizzle(glm::Y, glm::Z)
    00044 #define zz swizzle(glm::Z, glm::Z)
    00045 #define wz swizzle(glm::W, glm::Z)
    00046 #define xw swizzle(glm::X, glm::W)
    00047 #define yw swizzle(glm::Y, glm::W)
    00048 #define zw swizzle(glm::Z, glm::W)
    00049 #define ww swizzle(glm::W, glm::W)
    00050
    00051 #endif// defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_XYZW)
    00052
    00053 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_RGBA)
    00054
    00055 #define rr swizzle(glm::X, glm::X)
    00056 #define gr swizzle(glm::Y, glm::X)
    00057 #define br swizzle(glm::Z, glm::X)
    00058 #define ar swizzle(glm::W, glm::X)
    00059 #define rg swizzle(glm::X, glm::Y)
    00060 #define gg swizzle(glm::Y, glm::Y)
    00061 #define bg swizzle(glm::Z, glm::Y)
    00062 #define ag swizzle(glm::W, glm::Y)
    00063 #define rb swizzle(glm::X, glm::Z)
    00064 #define gb swizzle(glm::Y, glm::Z)
    00065 #define bb swizzle(glm::Z, glm::Z)
    00066 #define ab swizzle(glm::W, glm::Z)
    00067 #define ra swizzle(glm::X, glm::W)
    00068 #define ga swizzle(glm::Y, glm::W)
    00069 #define ba swizzle(glm::Z, glm::W)
    00070 #define aa swizzle(glm::W, glm::W)
    00071
    00072 #endif// defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_RGBA)
    00073
    00074 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_STPQ)
    00075
    00076 #define ss swizzle(glm::X, glm::X)
    00077 #define ts swizzle(glm::Y, glm::X)
    00078 #define ps swizzle(glm::Z, glm::X)
    00079 #define qs swizzle(glm::W, glm::X)
    00080 #define st swizzle(glm::X, glm::Y)
    00081 #define tt swizzle(glm::Y, glm::Y)
    00082 #define pt swizzle(glm::Z, glm::Y)
    00083 #define qt swizzle(glm::W, glm::Y)
    00084 #define sp swizzle(glm::X, glm::Z)
    00085 #define tp swizzle(glm::Y, glm::Z)
    00086 #define pp swizzle(glm::Z, glm::Z)
    00087 #define qp swizzle(glm::W, glm::Z)
    00088 #define sq swizzle(glm::X, glm::W)
    00089 #define tq swizzle(glm::Y, glm::W)
    00090 #define pq swizzle(glm::Z, glm::W)
    00091 #define qq swizzle(glm::W, glm::W)
    00092
    00093 #endif// defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_STPQ)
    00094
    00095 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_XYZW)
    00096
    00097 #define xxx swizzle(glm::X, glm::X, glm::X)
    00098 #define yxx swizzle(glm::Y, glm::X, glm::X)
    00099 #define zxx swizzle(glm::Z, glm::X, glm::X)
    00100 #define wxx swizzle(glm::W, glm::X, glm::X)
    00101 #define xyx swizzle(glm::X, glm::Y, glm::X)
    00102 #define yyx swizzle(glm::Y, glm::Y, glm::X)
    00103 #define zyx swizzle(glm::Z, glm::Y, glm::X)
    00104 #define wyx swizzle(glm::W, glm::Y, glm::X)
    00105 #define xzx swizzle(glm::X, glm::Z, glm::X)
    00106 #define yzx swizzle(glm::Y, glm::Z, glm::X)
    00107 #define zzx swizzle(glm::Z, glm::Z, glm::X)
    00108 #define wzx swizzle(glm::W, glm::Z, glm::X)
    00109 #define xwx swizzle(glm::X, glm::W, glm::X)
    00110 #define ywx swizzle(glm::Y, glm::W, glm::X)
    00111 #define zwx swizzle(glm::Z, glm::W, glm::X)
    00112 #define wwx swizzle(glm::W, glm::W, glm::X)
    00113 #define xxy swizzle(glm::X, glm::X, glm::Y)
    00114 #define yxy swizzle(glm::Y, glm::X, glm::Y)
    00115 #define zxy swizzle(glm::Z, glm::X, glm::Y)
    00116 #define wxy swizzle(glm::W, glm::X, glm::Y)
    00117 #define xyy swizzle(glm::X, glm::Y, glm::Y)
    00118 #define yyy swizzle(glm::Y, glm::Y, glm::Y)
    00119 #define zyy swizzle(glm::Z, glm::Y, glm::Y)
    00120 #define wyy swizzle(glm::W, glm::Y, glm::Y)
    00121 #define xzy swizzle(glm::X, glm::Z, glm::Y)
    00122 #define yzy swizzle(glm::Y, glm::Z, glm::Y)
    00123 #define zzy swizzle(glm::Z, glm::Z, glm::Y)
    00124 #define wzy swizzle(glm::W, glm::Z, glm::Y)
    00125 #define xwy swizzle(glm::X, glm::W, glm::Y)
    00126 #define ywy swizzle(glm::Y, glm::W, glm::Y)
    00127 #define zwy swizzle(glm::Z, glm::W, glm::Y)
    00128 #define wwy swizzle(glm::W, glm::W, glm::Y)
    00129 #define xxz swizzle(glm::X, glm::X, glm::Z)
    00130 #define yxz swizzle(glm::Y, glm::X, glm::Z)
    00131 #define zxz swizzle(glm::Z, glm::X, glm::Z)
    00132 #define wxz swizzle(glm::W, glm::X, glm::Z)
    00133 #define xyz swizzle(glm::X, glm::Y, glm::Z)
    00134 #define yyz swizzle(glm::Y, glm::Y, glm::Z)
    00135 #define zyz swizzle(glm::Z, glm::Y, glm::Z)
    00136 #define wyz swizzle(glm::W, glm::Y, glm::Z)
    00137 #define xzz swizzle(glm::X, glm::Z, glm::Z)
    00138 #define yzz swizzle(glm::Y, glm::Z, glm::Z)
    00139 #define zzz swizzle(glm::Z, glm::Z, glm::Z)
    00140 #define wzz swizzle(glm::W, glm::Z, glm::Z)
    00141 #define xwz swizzle(glm::X, glm::W, glm::Z)
    00142 #define ywz swizzle(glm::Y, glm::W, glm::Z)
    00143 #define zwz swizzle(glm::Z, glm::W, glm::Z)
    00144 #define wwz swizzle(glm::W, glm::W, glm::Z)
    00145 #define xxw swizzle(glm::X, glm::X, glm::W)
    00146 #define yxw swizzle(glm::Y, glm::X, glm::W)
    00147 #define zxw swizzle(glm::Z, glm::X, glm::W)
    00148 #define wxw swizzle(glm::W, glm::X, glm::W)
    00149 #define xyw swizzle(glm::X, glm::Y, glm::W)
    00150 #define yyw swizzle(glm::Y, glm::Y, glm::W)
    00151 #define zyw swizzle(glm::Z, glm::Y, glm::W)
    00152 #define wyw swizzle(glm::W, glm::Y, glm::W)
    00153 #define xzw swizzle(glm::X, glm::Z, glm::W)
    00154 #define yzw swizzle(glm::Y, glm::Z, glm::W)
    00155 #define zzw swizzle(glm::Z, glm::Z, glm::W)
    00156 #define wzw swizzle(glm::W, glm::Z, glm::W)
    00157 #define xww swizzle(glm::X, glm::W, glm::W)
    00158 #define yww swizzle(glm::Y, glm::W, glm::W)
    00159 #define zww swizzle(glm::Z, glm::W, glm::W)
    00160 #define www swizzle(glm::W, glm::W, glm::W)
    00161
    00162 #endif// defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_XYZW)
    00163
    00164 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_RGBA)
    00165
    00166 #define rrr swizzle(glm::X, glm::X, glm::X)
    00167 #define grr swizzle(glm::Y, glm::X, glm::X)
    00168 #define brr swizzle(glm::Z, glm::X, glm::X)
    00169 #define arr swizzle(glm::W, glm::X, glm::X)
    00170 #define rgr swizzle(glm::X, glm::Y, glm::X)
    00171 #define ggr swizzle(glm::Y, glm::Y, glm::X)
    00172 #define bgr swizzle(glm::Z, glm::Y, glm::X)
    00173 #define agr swizzle(glm::W, glm::Y, glm::X)
    00174 #define rbr swizzle(glm::X, glm::Z, glm::X)
    00175 #define gbr swizzle(glm::Y, glm::Z, glm::X)
    00176 #define bbr swizzle(glm::Z, glm::Z, glm::X)
    00177 #define abr swizzle(glm::W, glm::Z, glm::X)
    00178 #define rar swizzle(glm::X, glm::W, glm::X)
    00179 #define gar swizzle(glm::Y, glm::W, glm::X)
    00180 #define bar swizzle(glm::Z, glm::W, glm::X)
    00181 #define aar swizzle(glm::W, glm::W, glm::X)
    00182 #define rrg swizzle(glm::X, glm::X, glm::Y)
    00183 #define grg swizzle(glm::Y, glm::X, glm::Y)
    00184 #define brg swizzle(glm::Z, glm::X, glm::Y)
    00185 #define arg swizzle(glm::W, glm::X, glm::Y)
    00186 #define rgg swizzle(glm::X, glm::Y, glm::Y)
    00187 #define ggg swizzle(glm::Y, glm::Y, glm::Y)
    00188 #define bgg swizzle(glm::Z, glm::Y, glm::Y)
    00189 #define agg swizzle(glm::W, glm::Y, glm::Y)
    00190 #define rbg swizzle(glm::X, glm::Z, glm::Y)
    00191 #define gbg swizzle(glm::Y, glm::Z, glm::Y)
    00192 #define bbg swizzle(glm::Z, glm::Z, glm::Y)
    00193 #define abg swizzle(glm::W, glm::Z, glm::Y)
    00194 #define rag swizzle(glm::X, glm::W, glm::Y)
    00195 #define gag swizzle(glm::Y, glm::W, glm::Y)
    00196 #define bag swizzle(glm::Z, glm::W, glm::Y)
    00197 #define aag swizzle(glm::W, glm::W, glm::Y)
    00198 #define rrb swizzle(glm::X, glm::X, glm::Z)
    00199 #define grb swizzle(glm::Y, glm::X, glm::Z)
    00200 #define brb swizzle(glm::Z, glm::X, glm::Z)
    00201 #define arb swizzle(glm::W, glm::X, glm::Z)
    00202 #define rgb swizzle(glm::X, glm::Y, glm::Z)
    00203 #define ggb swizzle(glm::Y, glm::Y, glm::Z)
    00204 #define bgb swizzle(glm::Z, glm::Y, glm::Z)
    00205 #define agb swizzle(glm::W, glm::Y, glm::Z)
    00206 #define rbb swizzle(glm::X, glm::Z, glm::Z)
    00207 #define gbb swizzle(glm::Y, glm::Z, glm::Z)
    00208 #define bbb swizzle(glm::Z, glm::Z, glm::Z)
    00209 #define abb swizzle(glm::W, glm::Z, glm::Z)
    00210 #define rab swizzle(glm::X, glm::W, glm::Z)
    00211 #define gab swizzle(glm::Y, glm::W, glm::Z)
    00212 #define bab swizzle(glm::Z, glm::W, glm::Z)
    00213 #define aab swizzle(glm::W, glm::W, glm::Z)
    00214 #define rra swizzle(glm::X, glm::X, glm::W)
    00215 #define gra swizzle(glm::Y, glm::X, glm::W)
    00216 #define bra swizzle(glm::Z, glm::X, glm::W)
    00217 #define ara swizzle(glm::W, glm::X, glm::W)
    00218 #define rga swizzle(glm::X, glm::Y, glm::W)
    00219 #define gga swizzle(glm::Y, glm::Y, glm::W)
    00220 #define bga swizzle(glm::Z, glm::Y, glm::W)
    00221 #define aga swizzle(glm::W, glm::Y, glm::W)
    00222 #define rba swizzle(glm::X, glm::Z, glm::W)
    00223 #define gba swizzle(glm::Y, glm::Z, glm::W)
    00224 #define bba swizzle(glm::Z, glm::Z, glm::W)
    00225 #define aba swizzle(glm::W, glm::Z, glm::W)
    00226 #define raa swizzle(glm::X, glm::W, glm::W)
    00227 #define gaa swizzle(glm::Y, glm::W, glm::W)
    00228 #define baa swizzle(glm::Z, glm::W, glm::W)
    00229 #define aaa swizzle(glm::W, glm::W, glm::W)
    00230
    00231 #endif//defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_RGBA)
    00232
    00233 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_STPQ)
    00234
    00235 #define sss swizzle(glm::X, glm::X, glm::X)
    00236 #define tss swizzle(glm::Y, glm::X, glm::X)
    00237 #define pss swizzle(glm::Z, glm::X, glm::X)
    00238 #define qss swizzle(glm::W, glm::X, glm::X)
    00239 #define sts swizzle(glm::X, glm::Y, glm::X)
    00240 #define tts swizzle(glm::Y, glm::Y, glm::X)
    00241 #define pts swizzle(glm::Z, glm::Y, glm::X)
    00242 #define qts swizzle(glm::W, glm::Y, glm::X)
    00243 #define sps swizzle(glm::X, glm::Z, glm::X)
    00244 #define tps swizzle(glm::Y, glm::Z, glm::X)
    00245 #define pps swizzle(glm::Z, glm::Z, glm::X)
    00246 #define qps swizzle(glm::W, glm::Z, glm::X)
    00247 #define sqs swizzle(glm::X, glm::W, glm::X)
    00248 #define tqs swizzle(glm::Y, glm::W, glm::X)
    00249 #define pqs swizzle(glm::Z, glm::W, glm::X)
    00250 #define qqs swizzle(glm::W, glm::W, glm::X)
    00251 #define sst swizzle(glm::X, glm::X, glm::Y)
    00252 #define tst swizzle(glm::Y, glm::X, glm::Y)
    00253 #define pst swizzle(glm::Z, glm::X, glm::Y)
    00254 #define qst swizzle(glm::W, glm::X, glm::Y)
    00255 #define stt swizzle(glm::X, glm::Y, glm::Y)
    00256 #define ttt swizzle(glm::Y, glm::Y, glm::Y)
    00257 #define ptt swizzle(glm::Z, glm::Y, glm::Y)
    00258 #define qtt swizzle(glm::W, glm::Y, glm::Y)
    00259 #define spt swizzle(glm::X, glm::Z, glm::Y)
    00260 #define tpt swizzle(glm::Y, glm::Z, glm::Y)
    00261 #define ppt swizzle(glm::Z, glm::Z, glm::Y)
    00262 #define qpt swizzle(glm::W, glm::Z, glm::Y)
    00263 #define sqt swizzle(glm::X, glm::W, glm::Y)
    00264 #define tqt swizzle(glm::Y, glm::W, glm::Y)
    00265 #define pqt swizzle(glm::Z, glm::W, glm::Y)
    00266 #define qqt swizzle(glm::W, glm::W, glm::Y)
    00267 #define ssp swizzle(glm::X, glm::X, glm::Z)
    00268 #define tsp swizzle(glm::Y, glm::X, glm::Z)
    00269 #define psp swizzle(glm::Z, glm::X, glm::Z)
    00270 #define qsp swizzle(glm::W, glm::X, glm::Z)
    00271 #define stp swizzle(glm::X, glm::Y, glm::Z)
    00272 #define ttp swizzle(glm::Y, glm::Y, glm::Z)
    00273 #define ptp swizzle(glm::Z, glm::Y, glm::Z)
    00274 #define qtp swizzle(glm::W, glm::Y, glm::Z)
    00275 #define spp swizzle(glm::X, glm::Z, glm::Z)
    00276 #define tpp swizzle(glm::Y, glm::Z, glm::Z)
    00277 #define ppp swizzle(glm::Z, glm::Z, glm::Z)
    00278 #define qpp swizzle(glm::W, glm::Z, glm::Z)
    00279 #define sqp swizzle(glm::X, glm::W, glm::Z)
    00280 #define tqp swizzle(glm::Y, glm::W, glm::Z)
    00281 #define pqp swizzle(glm::Z, glm::W, glm::Z)
    00282 #define qqp swizzle(glm::W, glm::W, glm::Z)
    00283 #define ssq swizzle(glm::X, glm::X, glm::W)
    00284 #define tsq swizzle(glm::Y, glm::X, glm::W)
    00285 #define psq swizzle(glm::Z, glm::X, glm::W)
    00286 #define qsq swizzle(glm::W, glm::X, glm::W)
    00287 #define stq swizzle(glm::X, glm::Y, glm::W)
    00288 #define ttq swizzle(glm::Y, glm::Y, glm::W)
    00289 #define ptq swizzle(glm::Z, glm::Y, glm::W)
    00290 #define qtq swizzle(glm::W, glm::Y, glm::W)
    00291 #define spq swizzle(glm::X, glm::Z, glm::W)
    00292 #define tpq swizzle(glm::Y, glm::Z, glm::W)
    00293 #define ppq swizzle(glm::Z, glm::Z, glm::W)
    00294 #define qpq swizzle(glm::W, glm::Z, glm::W)
    00295 #define sqq swizzle(glm::X, glm::W, glm::W)
    00296 #define tqq swizzle(glm::Y, glm::W, glm::W)
    00297 #define pqq swizzle(glm::Z, glm::W, glm::W)
    00298 #define qqq swizzle(glm::W, glm::W, glm::W)
    00299
    00300 #endif//defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_STPQ)
    00301
    00302 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_XYZW)
    00303
    00304 #define xxxx swizzle(glm::X, glm::X, glm::X, glm::X)
    00305 #define yxxx swizzle(glm::Y, glm::X, glm::X, glm::X)
    00306 #define zxxx swizzle(glm::Z, glm::X, glm::X, glm::X)
    00307 #define wxxx swizzle(glm::W, glm::X, glm::X, glm::X)
    00308 #define xyxx swizzle(glm::X, glm::Y, glm::X, glm::X)
    00309 #define yyxx swizzle(glm::Y, glm::Y, glm::X, glm::X)
    00310 #define zyxx swizzle(glm::Z, glm::Y, glm::X, glm::X)
    00311 #define wyxx swizzle(glm::W, glm::Y, glm::X, glm::X)
    00312 #define xzxx swizzle(glm::X, glm::Z, glm::X, glm::X)
    00313 #define yzxx swizzle(glm::Y, glm::Z, glm::X, glm::X)
    00314 #define zzxx swizzle(glm::Z, glm::Z, glm::X, glm::X)
    00315 #define wzxx swizzle(glm::W, glm::Z, glm::X, glm::X)
    00316 #define xwxx swizzle(glm::X, glm::W, glm::X, glm::X)
    00317 #define ywxx swizzle(glm::Y, glm::W, glm::X, glm::X)
    00318 #define zwxx swizzle(glm::Z, glm::W, glm::X, glm::X)
    00319 #define wwxx swizzle(glm::W, glm::W, glm::X, glm::X)
    00320 #define xxyx swizzle(glm::X, glm::X, glm::Y, glm::X)
    00321 #define yxyx swizzle(glm::Y, glm::X, glm::Y, glm::X)
    00322 #define zxyx swizzle(glm::Z, glm::X, glm::Y, glm::X)
    00323 #define wxyx swizzle(glm::W, glm::X, glm::Y, glm::X)
    00324 #define xyyx swizzle(glm::X, glm::Y, glm::Y, glm::X)
    00325 #define yyyx swizzle(glm::Y, glm::Y, glm::Y, glm::X)
    00326 #define zyyx swizzle(glm::Z, glm::Y, glm::Y, glm::X)
    00327 #define wyyx swizzle(glm::W, glm::Y, glm::Y, glm::X)
    00328 #define xzyx swizzle(glm::X, glm::Z, glm::Y, glm::X)
    00329 #define yzyx swizzle(glm::Y, glm::Z, glm::Y, glm::X)
    00330 #define zzyx swizzle(glm::Z, glm::Z, glm::Y, glm::X)
    00331 #define wzyx swizzle(glm::W, glm::Z, glm::Y, glm::X)
    00332 #define xwyx swizzle(glm::X, glm::W, glm::Y, glm::X)
    00333 #define ywyx swizzle(glm::Y, glm::W, glm::Y, glm::X)
    00334 #define zwyx swizzle(glm::Z, glm::W, glm::Y, glm::X)
    00335 #define wwyx swizzle(glm::W, glm::W, glm::Y, glm::X)
    00336 #define xxzx swizzle(glm::X, glm::X, glm::Z, glm::X)
    00337 #define yxzx swizzle(glm::Y, glm::X, glm::Z, glm::X)
    00338 #define zxzx swizzle(glm::Z, glm::X, glm::Z, glm::X)
    00339 #define wxzx swizzle(glm::W, glm::X, glm::Z, glm::X)
    00340 #define xyzx swizzle(glm::X, glm::Y, glm::Z, glm::X)
    00341 #define yyzx swizzle(glm::Y, glm::Y, glm::Z, glm::X)
    00342 #define zyzx swizzle(glm::Z, glm::Y, glm::Z, glm::X)
    00343 #define wyzx swizzle(glm::W, glm::Y, glm::Z, glm::X)
    00344 #define xzzx swizzle(glm::X, glm::Z, glm::Z, glm::X)
    00345 #define yzzx swizzle(glm::Y, glm::Z, glm::Z, glm::X)
    00346 #define zzzx swizzle(glm::Z, glm::Z, glm::Z, glm::X)
    00347 #define wzzx swizzle(glm::W, glm::Z, glm::Z, glm::X)
    00348 #define xwzx swizzle(glm::X, glm::W, glm::Z, glm::X)
    00349 #define ywzx swizzle(glm::Y, glm::W, glm::Z, glm::X)
    00350 #define zwzx swizzle(glm::Z, glm::W, glm::Z, glm::X)
    00351 #define wwzx swizzle(glm::W, glm::W, glm::Z, glm::X)
    00352 #define xxwx swizzle(glm::X, glm::X, glm::W, glm::X)
    00353 #define yxwx swizzle(glm::Y, glm::X, glm::W, glm::X)
    00354 #define zxwx swizzle(glm::Z, glm::X, glm::W, glm::X)
    00355 #define wxwx swizzle(glm::W, glm::X, glm::W, glm::X)
    00356 #define xywx swizzle(glm::X, glm::Y, glm::W, glm::X)
    00357 #define yywx swizzle(glm::Y, glm::Y, glm::W, glm::X)
    00358 #define zywx swizzle(glm::Z, glm::Y, glm::W, glm::X)
    00359 #define wywx swizzle(glm::W, glm::Y, glm::W, glm::X)
    00360 #define xzwx swizzle(glm::X, glm::Z, glm::W, glm::X)
    00361 #define yzwx swizzle(glm::Y, glm::Z, glm::W, glm::X)
    00362 #define zzwx swizzle(glm::Z, glm::Z, glm::W, glm::X)
    00363 #define wzwx swizzle(glm::W, glm::Z, glm::W, glm::X)
    00364 #define xwwx swizzle(glm::X, glm::W, glm::W, glm::X)
    00365 #define ywwx swizzle(glm::Y, glm::W, glm::W, glm::X)
    00366 #define zwwx swizzle(glm::Z, glm::W, glm::W, glm::X)
    00367 #define wwwx swizzle(glm::W, glm::W, glm::W, glm::X)
    00368 #define xxxy swizzle(glm::X, glm::X, glm::X, glm::Y)
    00369 #define yxxy swizzle(glm::Y, glm::X, glm::X, glm::Y)
    00370 #define zxxy swizzle(glm::Z, glm::X, glm::X, glm::Y)
    00371 #define wxxy swizzle(glm::W, glm::X, glm::X, glm::Y)
    00372 #define xyxy swizzle(glm::X, glm::Y, glm::X, glm::Y)
    00373 #define yyxy swizzle(glm::Y, glm::Y, glm::X, glm::Y)
    00374 #define zyxy swizzle(glm::Z, glm::Y, glm::X, glm::Y)
    00375 #define wyxy swizzle(glm::W, glm::Y, glm::X, glm::Y)
    00376 #define xzxy swizzle(glm::X, glm::Z, glm::X, glm::Y)
    00377 #define yzxy swizzle(glm::Y, glm::Z, glm::X, glm::Y)
    00378 #define zzxy swizzle(glm::Z, glm::Z, glm::X, glm::Y)
    00379 #define wzxy swizzle(glm::W, glm::Z, glm::X, glm::Y)
    00380 #define xwxy swizzle(glm::X, glm::W, glm::X, glm::Y)
    00381 #define ywxy swizzle(glm::Y, glm::W, glm::X, glm::Y)
    00382 #define zwxy swizzle(glm::Z, glm::W, glm::X, glm::Y)
    00383 #define wwxy swizzle(glm::W, glm::W, glm::X, glm::Y)
    00384 #define xxyy swizzle(glm::X, glm::X, glm::Y, glm::Y)
    00385 #define yxyy swizzle(glm::Y, glm::X, glm::Y, glm::Y)
    00386 #define zxyy swizzle(glm::Z, glm::X, glm::Y, glm::Y)
    00387 #define wxyy swizzle(glm::W, glm::X, glm::Y, glm::Y)
    00388 #define xyyy swizzle(glm::X, glm::Y, glm::Y, glm::Y)
    00389 #define yyyy swizzle(glm::Y, glm::Y, glm::Y, glm::Y)
    00390 #define zyyy swizzle(glm::Z, glm::Y, glm::Y, glm::Y)
    00391 #define wyyy swizzle(glm::W, glm::Y, glm::Y, glm::Y)
    00392 #define xzyy swizzle(glm::X, glm::Z, glm::Y, glm::Y)
    00393 #define yzyy swizzle(glm::Y, glm::Z, glm::Y, glm::Y)
    00394 #define zzyy swizzle(glm::Z, glm::Z, glm::Y, glm::Y)
    00395 #define wzyy swizzle(glm::W, glm::Z, glm::Y, glm::Y)
    00396 #define xwyy swizzle(glm::X, glm::W, glm::Y, glm::Y)
    00397 #define ywyy swizzle(glm::Y, glm::W, glm::Y, glm::Y)
    00398 #define zwyy swizzle(glm::Z, glm::W, glm::Y, glm::Y)
    00399 #define wwyy swizzle(glm::W, glm::W, glm::Y, glm::Y)
    00400 #define xxzy swizzle(glm::X, glm::X, glm::Z, glm::Y)
    00401 #define yxzy swizzle(glm::Y, glm::X, glm::Z, glm::Y)
    00402 #define zxzy swizzle(glm::Z, glm::X, glm::Z, glm::Y)
    00403 #define wxzy swizzle(glm::W, glm::X, glm::Z, glm::Y)
    00404 #define xyzy swizzle(glm::X, glm::Y, glm::Z, glm::Y)
    00405 #define yyzy swizzle(glm::Y, glm::Y, glm::Z, glm::Y)
    00406 #define zyzy swizzle(glm::Z, glm::Y, glm::Z, glm::Y)
    00407 #define wyzy swizzle(glm::W, glm::Y, glm::Z, glm::Y)
    00408 #define xzzy swizzle(glm::X, glm::Z, glm::Z, glm::Y)
    00409 #define yzzy swizzle(glm::Y, glm::Z, glm::Z, glm::Y)
    00410 #define zzzy swizzle(glm::Z, glm::Z, glm::Z, glm::Y)
    00411 #define wzzy swizzle(glm::W, glm::Z, glm::Z, glm::Y)
    00412 #define xwzy swizzle(glm::X, glm::W, glm::Z, glm::Y)
    00413 #define ywzy swizzle(glm::Y, glm::W, glm::Z, glm::Y)
    00414 #define zwzy swizzle(glm::Z, glm::W, glm::Z, glm::Y)
    00415 #define wwzy swizzle(glm::W, glm::W, glm::Z, glm::Y)
    00416 #define xxwy swizzle(glm::X, glm::X, glm::W, glm::Y)
    00417 #define yxwy swizzle(glm::Y, glm::X, glm::W, glm::Y)
    00418 #define zxwy swizzle(glm::Z, glm::X, glm::W, glm::Y)
    00419 #define wxwy swizzle(glm::W, glm::X, glm::W, glm::Y)
    00420 #define xywy swizzle(glm::X, glm::Y, glm::W, glm::Y)
    00421 #define yywy swizzle(glm::Y, glm::Y, glm::W, glm::Y)
    00422 #define zywy swizzle(glm::Z, glm::Y, glm::W, glm::Y)
    00423 #define wywy swizzle(glm::W, glm::Y, glm::W, glm::Y)
    00424 #define xzwy swizzle(glm::X, glm::Z, glm::W, glm::Y)
    00425 #define yzwy swizzle(glm::Y, glm::Z, glm::W, glm::Y)
    00426 #define zzwy swizzle(glm::Z, glm::Z, glm::W, glm::Y)
    00427 #define wzwy swizzle(glm::W, glm::Z, glm::W, glm::Y)
    00428 #define xwwy swizzle(glm::X, glm::W, glm::W, glm::Y)
    00429 #define ywwy swizzle(glm::Y, glm::W, glm::W, glm::Y)
    00430 #define zwwy swizzle(glm::Z, glm::W, glm::W, glm::Y)
    00431 #define wwwy swizzle(glm::W, glm::W, glm::W, glm::Y)
    00432 #define xxxz swizzle(glm::X, glm::X, glm::X, glm::Z)
    00433 #define yxxz swizzle(glm::Y, glm::X, glm::X, glm::Z)
    00434 #define zxxz swizzle(glm::Z, glm::X, glm::X, glm::Z)
    00435 #define wxxz swizzle(glm::W, glm::X, glm::X, glm::Z)
    00436 #define xyxz swizzle(glm::X, glm::Y, glm::X, glm::Z)
    00437 #define yyxz swizzle(glm::Y, glm::Y, glm::X, glm::Z)
    00438 #define zyxz swizzle(glm::Z, glm::Y, glm::X, glm::Z)
    00439 #define wyxz swizzle(glm::W, glm::Y, glm::X, glm::Z)
    00440 #define xzxz swizzle(glm::X, glm::Z, glm::X, glm::Z)
    00441 #define yzxz swizzle(glm::Y, glm::Z, glm::X, glm::Z)
    00442 #define zzxz swizzle(glm::Z, glm::Z, glm::X, glm::Z)
    00443 #define wzxz swizzle(glm::W, glm::Z, glm::X, glm::Z)
    00444 #define xwxz swizzle(glm::X, glm::W, glm::X, glm::Z)
    00445 #define ywxz swizzle(glm::Y, glm::W, glm::X, glm::Z)
    00446 #define zwxz swizzle(glm::Z, glm::W, glm::X, glm::Z)
    00447 #define wwxz swizzle(glm::W, glm::W, glm::X, glm::Z)
    00448 #define xxyz swizzle(glm::X, glm::X, glm::Y, glm::Z)
    00449 #define yxyz swizzle(glm::Y, glm::X, glm::Y, glm::Z)
    00450 #define zxyz swizzle(glm::Z, glm::X, glm::Y, glm::Z)
    00451 #define wxyz swizzle(glm::W, glm::X, glm::Y, glm::Z)
    00452 #define xyyz swizzle(glm::X, glm::Y, glm::Y, glm::Z)
    00453 #define yyyz swizzle(glm::Y, glm::Y, glm::Y, glm::Z)
    00454 #define zyyz swizzle(glm::Z, glm::Y, glm::Y, glm::Z)
    00455 #define wyyz swizzle(glm::W, glm::Y, glm::Y, glm::Z)
    00456 #define xzyz swizzle(glm::X, glm::Z, glm::Y, glm::Z)
    00457 #define yzyz swizzle(glm::Y, glm::Z, glm::Y, glm::Z)
    00458 #define zzyz swizzle(glm::Z, glm::Z, glm::Y, glm::Z)
    00459 #define wzyz swizzle(glm::W, glm::Z, glm::Y, glm::Z)
    00460 #define xwyz swizzle(glm::X, glm::W, glm::Y, glm::Z)
    00461 #define ywyz swizzle(glm::Y, glm::W, glm::Y, glm::Z)
    00462 #define zwyz swizzle(glm::Z, glm::W, glm::Y, glm::Z)
    00463 #define wwyz swizzle(glm::W, glm::W, glm::Y, glm::Z)
    00464 #define xxzz swizzle(glm::X, glm::X, glm::Z, glm::Z)
    00465 #define yxzz swizzle(glm::Y, glm::X, glm::Z, glm::Z)
    00466 #define zxzz swizzle(glm::Z, glm::X, glm::Z, glm::Z)
    00467 #define wxzz swizzle(glm::W, glm::X, glm::Z, glm::Z)
    00468 #define xyzz swizzle(glm::X, glm::Y, glm::Z, glm::Z)
    00469 #define yyzz swizzle(glm::Y, glm::Y, glm::Z, glm::Z)
    00470 #define zyzz swizzle(glm::Z, glm::Y, glm::Z, glm::Z)
    00471 #define wyzz swizzle(glm::W, glm::Y, glm::Z, glm::Z)
    00472 #define xzzz swizzle(glm::X, glm::Z, glm::Z, glm::Z)
    00473 #define yzzz swizzle(glm::Y, glm::Z, glm::Z, glm::Z)
    00474 #define zzzz swizzle(glm::Z, glm::Z, glm::Z, glm::Z)
    00475 #define wzzz swizzle(glm::W, glm::Z, glm::Z, glm::Z)
    00476 #define xwzz swizzle(glm::X, glm::W, glm::Z, glm::Z)
    00477 #define ywzz swizzle(glm::Y, glm::W, glm::Z, glm::Z)
    00478 #define zwzz swizzle(glm::Z, glm::W, glm::Z, glm::Z)
    00479 #define wwzz swizzle(glm::W, glm::W, glm::Z, glm::Z)
    00480 #define xxwz swizzle(glm::X, glm::X, glm::W, glm::Z)
    00481 #define yxwz swizzle(glm::Y, glm::X, glm::W, glm::Z)
    00482 #define zxwz swizzle(glm::Z, glm::X, glm::W, glm::Z)
    00483 #define wxwz swizzle(glm::W, glm::X, glm::W, glm::Z)
    00484 #define xywz swizzle(glm::X, glm::Y, glm::W, glm::Z)
    00485 #define yywz swizzle(glm::Y, glm::Y, glm::W, glm::Z)
    00486 #define zywz swizzle(glm::Z, glm::Y, glm::W, glm::Z)
    00487 #define wywz swizzle(glm::W, glm::Y, glm::W, glm::Z)
    00488 #define xzwz swizzle(glm::X, glm::Z, glm::W, glm::Z)
    00489 #define yzwz swizzle(glm::Y, glm::Z, glm::W, glm::Z)
    00490 #define zzwz swizzle(glm::Z, glm::Z, glm::W, glm::Z)
    00491 #define wzwz swizzle(glm::W, glm::Z, glm::W, glm::Z)
    00492 #define xwwz swizzle(glm::X, glm::W, glm::W, glm::Z)
    00493 #define ywwz swizzle(glm::Y, glm::W, glm::W, glm::Z)
    00494 #define zwwz swizzle(glm::Z, glm::W, glm::W, glm::Z)
    00495 #define wwwz swizzle(glm::W, glm::W, glm::W, glm::Z)
    00496 #define xxxw swizzle(glm::X, glm::X, glm::X, glm::W)
    00497 #define yxxw swizzle(glm::Y, glm::X, glm::X, glm::W)
    00498 #define zxxw swizzle(glm::Z, glm::X, glm::X, glm::W)
    00499 #define wxxw swizzle(glm::W, glm::X, glm::X, glm::W)
    00500 #define xyxw swizzle(glm::X, glm::Y, glm::X, glm::W)
    00501 #define yyxw swizzle(glm::Y, glm::Y, glm::X, glm::W)
    00502 #define zyxw swizzle(glm::Z, glm::Y, glm::X, glm::W)
    00503 #define wyxw swizzle(glm::W, glm::Y, glm::X, glm::W)
    00504 #define xzxw swizzle(glm::X, glm::Z, glm::X, glm::W)
    00505 #define yzxw swizzle(glm::Y, glm::Z, glm::X, glm::W)
    00506 #define zzxw swizzle(glm::Z, glm::Z, glm::X, glm::W)
    00507 #define wzxw swizzle(glm::W, glm::Z, glm::X, glm::W)
    00508 #define xwxw swizzle(glm::X, glm::W, glm::X, glm::W)
    00509 #define ywxw swizzle(glm::Y, glm::W, glm::X, glm::W)
    00510 #define zwxw swizzle(glm::Z, glm::W, glm::X, glm::W)
    00511 #define wwxw swizzle(glm::W, glm::W, glm::X, glm::W)
    00512 #define xxyw swizzle(glm::X, glm::X, glm::Y, glm::W)
    00513 #define yxyw swizzle(glm::Y, glm::X, glm::Y, glm::W)
    00514 #define zxyw swizzle(glm::Z, glm::X, glm::Y, glm::W)
    00515 #define wxyw swizzle(glm::W, glm::X, glm::Y, glm::W)
    00516 #define xyyw swizzle(glm::X, glm::Y, glm::Y, glm::W)
    00517 #define yyyw swizzle(glm::Y, glm::Y, glm::Y, glm::W)
    00518 #define zyyw swizzle(glm::Z, glm::Y, glm::Y, glm::W)
    00519 #define wyyw swizzle(glm::W, glm::Y, glm::Y, glm::W)
    00520 #define xzyw swizzle(glm::X, glm::Z, glm::Y, glm::W)
    00521 #define yzyw swizzle(glm::Y, glm::Z, glm::Y, glm::W)
    00522 #define zzyw swizzle(glm::Z, glm::Z, glm::Y, glm::W)
    00523 #define wzyw swizzle(glm::W, glm::Z, glm::Y, glm::W)
    00524 #define xwyw swizzle(glm::X, glm::W, glm::Y, glm::W)
    00525 #define ywyw swizzle(glm::Y, glm::W, glm::Y, glm::W)
    00526 #define zwyw swizzle(glm::Z, glm::W, glm::Y, glm::W)
    00527 #define wwyw swizzle(glm::W, glm::W, glm::Y, glm::W)
    00528 #define xxzw swizzle(glm::X, glm::X, glm::Z, glm::W)
    00529 #define yxzw swizzle(glm::Y, glm::X, glm::Z, glm::W)
    00530 #define zxzw swizzle(glm::Z, glm::X, glm::Z, glm::W)
    00531 #define wxzw swizzle(glm::W, glm::X, glm::Z, glm::W)
    00532 #define xyzw swizzle(glm::X, glm::Y, glm::Z, glm::W)
    00533 #define yyzw swizzle(glm::Y, glm::Y, glm::Z, glm::W)
    00534 #define zyzw swizzle(glm::Z, glm::Y, glm::Z, glm::W)
    00535 #define wyzw swizzle(glm::W, glm::Y, glm::Z, glm::W)
    00536 #define xzzw swizzle(glm::X, glm::Z, glm::Z, glm::W)
    00537 #define yzzw swizzle(glm::Y, glm::Z, glm::Z, glm::W)
    00538 #define zzzw swizzle(glm::Z, glm::Z, glm::Z, glm::W)
    00539 #define wzzw swizzle(glm::W, glm::Z, glm::Z, glm::W)
    00540 #define xwzw swizzle(glm::X, glm::W, glm::Z, glm::W)
    00541 #define ywzw swizzle(glm::Y, glm::W, glm::Z, glm::W)
    00542 #define zwzw swizzle(glm::Z, glm::W, glm::Z, glm::W)
    00543 #define wwzw swizzle(glm::W, glm::W, glm::Z, glm::W)
    00544 #define xxww swizzle(glm::X, glm::X, glm::W, glm::W)
    00545 #define yxww swizzle(glm::Y, glm::X, glm::W, glm::W)
    00546 #define zxww swizzle(glm::Z, glm::X, glm::W, glm::W)
    00547 #define wxww swizzle(glm::W, glm::X, glm::W, glm::W)
    00548 #define xyww swizzle(glm::X, glm::Y, glm::W, glm::W)
    00549 #define yyww swizzle(glm::Y, glm::Y, glm::W, glm::W)
    00550 #define zyww swizzle(glm::Z, glm::Y, glm::W, glm::W)
    00551 #define wyww swizzle(glm::W, glm::Y, glm::W, glm::W)
    00552 #define xzww swizzle(glm::X, glm::Z, glm::W, glm::W)
    00553 #define yzww swizzle(glm::Y, glm::Z, glm::W, glm::W)
    00554 #define zzww swizzle(glm::Z, glm::Z, glm::W, glm::W)
    00555 #define wzww swizzle(glm::W, glm::Z, glm::W, glm::W)
    00556 #define xwww swizzle(glm::X, glm::W, glm::W, glm::W)
    00557 #define ywww swizzle(glm::Y, glm::W, glm::W, glm::W)
    00558 #define zwww swizzle(glm::Z, glm::W, glm::W, glm::W)
    00559 #define wwww swizzle(glm::W, glm::W, glm::W, glm::W)
    00560
    00561 #endif//defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_XYZW)
    00562
    00563 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_RGBA)
    00564
    00565 #define rrrr swizzle(glm::X, glm::X, glm::X, glm::X)
    00566 #define grrr swizzle(glm::Y, glm::X, glm::X, glm::X)
    00567 #define brrr swizzle(glm::Z, glm::X, glm::X, glm::X)
    00568 #define arrr swizzle(glm::W, glm::X, glm::X, glm::X)
    00569 #define rgrr swizzle(glm::X, glm::Y, glm::X, glm::X)
    00570 #define ggrr swizzle(glm::Y, glm::Y, glm::X, glm::X)
    00571 #define bgrr swizzle(glm::Z, glm::Y, glm::X, glm::X)
    00572 #define agrr swizzle(glm::W, glm::Y, glm::X, glm::X)
    00573 #define rbrr swizzle(glm::X, glm::Z, glm::X, glm::X)
    00574 #define gbrr swizzle(glm::Y, glm::Z, glm::X, glm::X)
    00575 #define bbrr swizzle(glm::Z, glm::Z, glm::X, glm::X)
    00576 #define abrr swizzle(glm::W, glm::Z, glm::X, glm::X)
    00577 #define rarr swizzle(glm::X, glm::W, glm::X, glm::X)
    00578 #define garr swizzle(glm::Y, glm::W, glm::X, glm::X)
    00579 #define barr swizzle(glm::Z, glm::W, glm::X, glm::X)
    00580 #define aarr swizzle(glm::W, glm::W, glm::X, glm::X)
    00581 #define rrgr swizzle(glm::X, glm::X, glm::Y, glm::X)
    00582 #define grgr swizzle(glm::Y, glm::X, glm::Y, glm::X)
    00583 #define brgr swizzle(glm::Z, glm::X, glm::Y, glm::X)
    00584 #define argr swizzle(glm::W, glm::X, glm::Y, glm::X)
    00585 #define rggr swizzle(glm::X, glm::Y, glm::Y, glm::X)
    00586 #define gggr swizzle(glm::Y, glm::Y, glm::Y, glm::X)
    00587 #define bggr swizzle(glm::Z, glm::Y, glm::Y, glm::X)
    00588 #define aggr swizzle(glm::W, glm::Y, glm::Y, glm::X)
    00589 #define rbgr swizzle(glm::X, glm::Z, glm::Y, glm::X)
    00590 #define gbgr swizzle(glm::Y, glm::Z, glm::Y, glm::X)
    00591 #define bbgr swizzle(glm::Z, glm::Z, glm::Y, glm::X)
    00592 #define abgr swizzle(glm::W, glm::Z, glm::Y, glm::X)
    00593 #define ragr swizzle(glm::X, glm::W, glm::Y, glm::X)
    00594 #define gagr swizzle(glm::Y, glm::W, glm::Y, glm::X)
    00595 #define bagr swizzle(glm::Z, glm::W, glm::Y, glm::X)
    00596 #define aagr swizzle(glm::W, glm::W, glm::Y, glm::X)
    00597 #define rrbr swizzle(glm::X, glm::X, glm::Z, glm::X)
    00598 #define grbr swizzle(glm::Y, glm::X, glm::Z, glm::X)
    00599 #define brbr swizzle(glm::Z, glm::X, glm::Z, glm::X)
    00600 #define arbr swizzle(glm::W, glm::X, glm::Z, glm::X)
    00601 #define rgbr swizzle(glm::X, glm::Y, glm::Z, glm::X)
    00602 #define ggbr swizzle(glm::Y, glm::Y, glm::Z, glm::X)
    00603 #define bgbr swizzle(glm::Z, glm::Y, glm::Z, glm::X)
    00604 #define agbr swizzle(glm::W, glm::Y, glm::Z, glm::X)
    00605 #define rbbr swizzle(glm::X, glm::Z, glm::Z, glm::X)
    00606 #define gbbr swizzle(glm::Y, glm::Z, glm::Z, glm::X)
    00607 #define bbbr swizzle(glm::Z, glm::Z, glm::Z, glm::X)
    00608 #define abbr swizzle(glm::W, glm::Z, glm::Z, glm::X)
    00609 #define rabr swizzle(glm::X, glm::W, glm::Z, glm::X)
    00610 #define gabr swizzle(glm::Y, glm::W, glm::Z, glm::X)
    00611 #define babr swizzle(glm::Z, glm::W, glm::Z, glm::X)
    00612 #define aabr swizzle(glm::W, glm::W, glm::Z, glm::X)
    00613 #define rrar swizzle(glm::X, glm::X, glm::W, glm::X)
    00614 #define grar swizzle(glm::Y, glm::X, glm::W, glm::X)
    00615 #define brar swizzle(glm::Z, glm::X, glm::W, glm::X)
    00616 #define arar swizzle(glm::W, glm::X, glm::W, glm::X)
    00617 #define rgar swizzle(glm::X, glm::Y, glm::W, glm::X)
    00618 #define ggar swizzle(glm::Y, glm::Y, glm::W, glm::X)
    00619 #define bgar swizzle(glm::Z, glm::Y, glm::W, glm::X)
    00620 #define agar swizzle(glm::W, glm::Y, glm::W, glm::X)
    00621 #define rbar swizzle(glm::X, glm::Z, glm::W, glm::X)
    00622 #define gbar swizzle(glm::Y, glm::Z, glm::W, glm::X)
    00623 #define bbar swizzle(glm::Z, glm::Z, glm::W, glm::X)
    00624 #define abar swizzle(glm::W, glm::Z, glm::W, glm::X)
    00625 #define raar swizzle(glm::X, glm::W, glm::W, glm::X)
    00626 #define gaar swizzle(glm::Y, glm::W, glm::W, glm::X)
    00627 #define baar swizzle(glm::Z, glm::W, glm::W, glm::X)
    00628 #define aaar swizzle(glm::W, glm::W, glm::W, glm::X)
    00629 #define rrrg swizzle(glm::X, glm::X, glm::X, glm::Y)
    00630 #define grrg swizzle(glm::Y, glm::X, glm::X, glm::Y)
    00631 #define brrg swizzle(glm::Z, glm::X, glm::X, glm::Y)
    00632 #define arrg swizzle(glm::W, glm::X, glm::X, glm::Y)
    00633 #define rgrg swizzle(glm::X, glm::Y, glm::X, glm::Y)
    00634 #define ggrg swizzle(glm::Y, glm::Y, glm::X, glm::Y)
    00635 #define bgrg swizzle(glm::Z, glm::Y, glm::X, glm::Y)
    00636 #define agrg swizzle(glm::W, glm::Y, glm::X, glm::Y)
    00637 #define rbrg swizzle(glm::X, glm::Z, glm::X, glm::Y)
    00638 #define gbrg swizzle(glm::Y, glm::Z, glm::X, glm::Y)
    00639 #define bbrg swizzle(glm::Z, glm::Z, glm::X, glm::Y)
    00640 #define abrg swizzle(glm::W, glm::Z, glm::X, glm::Y)
    00641 #define rarg swizzle(glm::X, glm::W, glm::X, glm::Y)
    00642 #define garg swizzle(glm::Y, glm::W, glm::X, glm::Y)
    00643 #define barg swizzle(glm::Z, glm::W, glm::X, glm::Y)
    00644 #define aarg swizzle(glm::W, glm::W, glm::X, glm::Y)
    00645 #define rrgg swizzle(glm::X, glm::X, glm::Y, glm::Y)
    00646 #define grgg swizzle(glm::Y, glm::X, glm::Y, glm::Y)
    00647 #define brgg swizzle(glm::Z, glm::X, glm::Y, glm::Y)
    00648 #define argg swizzle(glm::W, glm::X, glm::Y, glm::Y)
    00649 #define rggg swizzle(glm::X, glm::Y, glm::Y, glm::Y)
    00650 #define gggg swizzle(glm::Y, glm::Y, glm::Y, glm::Y)
    00651 #define bggg swizzle(glm::Z, glm::Y, glm::Y, glm::Y)
    00652 #define aggg swizzle(glm::W, glm::Y, glm::Y, glm::Y)
    00653 #define rbgg swizzle(glm::X, glm::Z, glm::Y, glm::Y)
    00654 #define gbgg swizzle(glm::Y, glm::Z, glm::Y, glm::Y)
    00655 #define bbgg swizzle(glm::Z, glm::Z, glm::Y, glm::Y)
    00656 #define abgg swizzle(glm::W, glm::Z, glm::Y, glm::Y)
    00657 #define ragg swizzle(glm::X, glm::W, glm::Y, glm::Y)
    00658 #define gagg swizzle(glm::Y, glm::W, glm::Y, glm::Y)
    00659 #define bagg swizzle(glm::Z, glm::W, glm::Y, glm::Y)
    00660 #define aagg swizzle(glm::W, glm::W, glm::Y, glm::Y)
    00661 #define rrbg swizzle(glm::X, glm::X, glm::Z, glm::Y)
    00662 #define grbg swizzle(glm::Y, glm::X, glm::Z, glm::Y)
    00663 #define brbg swizzle(glm::Z, glm::X, glm::Z, glm::Y)
    00664 #define arbg swizzle(glm::W, glm::X, glm::Z, glm::Y)
    00665 #define rgbg swizzle(glm::X, glm::Y, glm::Z, glm::Y)
    00666 #define ggbg swizzle(glm::Y, glm::Y, glm::Z, glm::Y)
    00667 #define bgbg swizzle(glm::Z, glm::Y, glm::Z, glm::Y)
    00668 #define agbg swizzle(glm::W, glm::Y, glm::Z, glm::Y)
    00669 #define rbbg swizzle(glm::X, glm::Z, glm::Z, glm::Y)
    00670 #define gbbg swizzle(glm::Y, glm::Z, glm::Z, glm::Y)
    00671 #define bbbg swizzle(glm::Z, glm::Z, glm::Z, glm::Y)
    00672 #define abbg swizzle(glm::W, glm::Z, glm::Z, glm::Y)
    00673 #define rabg swizzle(glm::X, glm::W, glm::Z, glm::Y)
    00674 #define gabg swizzle(glm::Y, glm::W, glm::Z, glm::Y)
    00675 #define babg swizzle(glm::Z, glm::W, glm::Z, glm::Y)
    00676 #define aabg swizzle(glm::W, glm::W, glm::Z, glm::Y)
    00677 #define rrag swizzle(glm::X, glm::X, glm::W, glm::Y)
    00678 #define grag swizzle(glm::Y, glm::X, glm::W, glm::Y)
    00679 #define brag swizzle(glm::Z, glm::X, glm::W, glm::Y)
    00680 #define arag swizzle(glm::W, glm::X, glm::W, glm::Y)
    00681 #define rgag swizzle(glm::X, glm::Y, glm::W, glm::Y)
    00682 #define ggag swizzle(glm::Y, glm::Y, glm::W, glm::Y)
    00683 #define bgag swizzle(glm::Z, glm::Y, glm::W, glm::Y)
    00684 #define agag swizzle(glm::W, glm::Y, glm::W, glm::Y)
    00685 #define rbag swizzle(glm::X, glm::Z, glm::W, glm::Y)
    00686 #define gbag swizzle(glm::Y, glm::Z, glm::W, glm::Y)
    00687 #define bbag swizzle(glm::Z, glm::Z, glm::W, glm::Y)
    00688 #define abag swizzle(glm::W, glm::Z, glm::W, glm::Y)
    00689 #define raag swizzle(glm::X, glm::W, glm::W, glm::Y)
    00690 #define gaag swizzle(glm::Y, glm::W, glm::W, glm::Y)
    00691 #define baag swizzle(glm::Z, glm::W, glm::W, glm::Y)
    00692 #define aaag swizzle(glm::W, glm::W, glm::W, glm::Y)
    00693 #define rrrb swizzle(glm::X, glm::X, glm::X, glm::Z)
    00694 #define grrb swizzle(glm::Y, glm::X, glm::X, glm::Z)
    00695 #define brrb swizzle(glm::Z, glm::X, glm::X, glm::Z)
    00696 #define arrb swizzle(glm::W, glm::X, glm::X, glm::Z)
    00697 #define rgrb swizzle(glm::X, glm::Y, glm::X, glm::Z)
    00698 #define ggrb swizzle(glm::Y, glm::Y, glm::X, glm::Z)
    00699 #define bgrb swizzle(glm::Z, glm::Y, glm::X, glm::Z)
    00700 #define agrb swizzle(glm::W, glm::Y, glm::X, glm::Z)
    00701 #define rbrb swizzle(glm::X, glm::Z, glm::X, glm::Z)
    00702 #define gbrb swizzle(glm::Y, glm::Z, glm::X, glm::Z)
    00703 #define bbrb swizzle(glm::Z, glm::Z, glm::X, glm::Z)
    00704 #define abrb swizzle(glm::W, glm::Z, glm::X, glm::Z)
    00705 #define rarb swizzle(glm::X, glm::W, glm::X, glm::Z)
    00706 #define garb swizzle(glm::Y, glm::W, glm::X, glm::Z)
    00707 #define barb swizzle(glm::Z, glm::W, glm::X, glm::Z)
    00708 #define aarb swizzle(glm::W, glm::W, glm::X, glm::Z)
    00709 #define rrgb swizzle(glm::X, glm::X, glm::Y, glm::Z)
    00710 #define grgb swizzle(glm::Y, glm::X, glm::Y, glm::Z)
    00711 #define brgb swizzle(glm::Z, glm::X, glm::Y, glm::Z)
    00712 #define argb swizzle(glm::W, glm::X, glm::Y, glm::Z)
    00713 #define rggb swizzle(glm::X, glm::Y, glm::Y, glm::Z)
    00714 #define gggb swizzle(glm::Y, glm::Y, glm::Y, glm::Z)
    00715 #define bggb swizzle(glm::Z, glm::Y, glm::Y, glm::Z)
    00716 #define aggb swizzle(glm::W, glm::Y, glm::Y, glm::Z)
    00717 #define rbgb swizzle(glm::X, glm::Z, glm::Y, glm::Z)
    00718 #define gbgb swizzle(glm::Y, glm::Z, glm::Y, glm::Z)
    00719 #define bbgb swizzle(glm::Z, glm::Z, glm::Y, glm::Z)
    00720 #define abgb swizzle(glm::W, glm::Z, glm::Y, glm::Z)
    00721 #define ragb swizzle(glm::X, glm::W, glm::Y, glm::Z)
    00722 #define gagb swizzle(glm::Y, glm::W, glm::Y, glm::Z)
    00723 #define bagb swizzle(glm::Z, glm::W, glm::Y, glm::Z)
    00724 #define aagb swizzle(glm::W, glm::W, glm::Y, glm::Z)
    00725 #define rrbb swizzle(glm::X, glm::X, glm::Z, glm::Z)
    00726 #define grbb swizzle(glm::Y, glm::X, glm::Z, glm::Z)
    00727 #define brbb swizzle(glm::Z, glm::X, glm::Z, glm::Z)
    00728 #define arbb swizzle(glm::W, glm::X, glm::Z, glm::Z)
    00729 #define rgbb swizzle(glm::X, glm::Y, glm::Z, glm::Z)
    00730 #define ggbb swizzle(glm::Y, glm::Y, glm::Z, glm::Z)
    00731 #define bgbb swizzle(glm::Z, glm::Y, glm::Z, glm::Z)
    00732 #define agbb swizzle(glm::W, glm::Y, glm::Z, glm::Z)
    00733 #define rbbb swizzle(glm::X, glm::Z, glm::Z, glm::Z)
    00734 #define gbbb swizzle(glm::Y, glm::Z, glm::Z, glm::Z)
    00735 #define bbbb swizzle(glm::Z, glm::Z, glm::Z, glm::Z)
    00736 #define abbb swizzle(glm::W, glm::Z, glm::Z, glm::Z)
    00737 #define rabb swizzle(glm::X, glm::W, glm::Z, glm::Z)
    00738 #define gabb swizzle(glm::Y, glm::W, glm::Z, glm::Z)
    00739 #define babb swizzle(glm::Z, glm::W, glm::Z, glm::Z)
    00740 #define aabb swizzle(glm::W, glm::W, glm::Z, glm::Z)
    00741 #define rrab swizzle(glm::X, glm::X, glm::W, glm::Z)
    00742 #define grab swizzle(glm::Y, glm::X, glm::W, glm::Z)
    00743 #define brab swizzle(glm::Z, glm::X, glm::W, glm::Z)
    00744 #define arab swizzle(glm::W, glm::X, glm::W, glm::Z)
    00745 #define rgab swizzle(glm::X, glm::Y, glm::W, glm::Z)
    00746 #define ggab swizzle(glm::Y, glm::Y, glm::W, glm::Z)
    00747 #define bgab swizzle(glm::Z, glm::Y, glm::W, glm::Z)
    00748 #define agab swizzle(glm::W, glm::Y, glm::W, glm::Z)
    00749 #define rbab swizzle(glm::X, glm::Z, glm::W, glm::Z)
    00750 #define gbab swizzle(glm::Y, glm::Z, glm::W, glm::Z)
    00751 #define bbab swizzle(glm::Z, glm::Z, glm::W, glm::Z)
    00752 #define abab swizzle(glm::W, glm::Z, glm::W, glm::Z)
    00753 #define raab swizzle(glm::X, glm::W, glm::W, glm::Z)
    00754 #define gaab swizzle(glm::Y, glm::W, glm::W, glm::Z)
    00755 #define baab swizzle(glm::Z, glm::W, glm::W, glm::Z)
    00756 #define aaab swizzle(glm::W, glm::W, glm::W, glm::Z)
    00757 #define rrra swizzle(glm::X, glm::X, glm::X, glm::W)
    00758 #define grra swizzle(glm::Y, glm::X, glm::X, glm::W)
    00759 #define brra swizzle(glm::Z, glm::X, glm::X, glm::W)
    00760 #define arra swizzle(glm::W, glm::X, glm::X, glm::W)
    00761 #define rgra swizzle(glm::X, glm::Y, glm::X, glm::W)
    00762 #define ggra swizzle(glm::Y, glm::Y, glm::X, glm::W)
    00763 #define bgra swizzle(glm::Z, glm::Y, glm::X, glm::W)
    00764 #define agra swizzle(glm::W, glm::Y, glm::X, glm::W)
    00765 #define rbra swizzle(glm::X, glm::Z, glm::X, glm::W)
    00766 #define gbra swizzle(glm::Y, glm::Z, glm::X, glm::W)
    00767 #define bbra swizzle(glm::Z, glm::Z, glm::X, glm::W)
    00768 #define abra swizzle(glm::W, glm::Z, glm::X, glm::W)
    00769 #define rara swizzle(glm::X, glm::W, glm::X, glm::W)
    00770 #define gara swizzle(glm::Y, glm::W, glm::X, glm::W)
    00771 #define bara swizzle(glm::Z, glm::W, glm::X, glm::W)
    00772 #define aara swizzle(glm::W, glm::W, glm::X, glm::W)
    00773 #define rrga swizzle(glm::X, glm::X, glm::Y, glm::W)
    00774 #define grga swizzle(glm::Y, glm::X, glm::Y, glm::W)
    00775 #define brga swizzle(glm::Z, glm::X, glm::Y, glm::W)
    00776 #define arga swizzle(glm::W, glm::X, glm::Y, glm::W)
    00777 #define rgga swizzle(glm::X, glm::Y, glm::Y, glm::W)
    00778 #define ggga swizzle(glm::Y, glm::Y, glm::Y, glm::W)
    00779 #define bgga swizzle(glm::Z, glm::Y, glm::Y, glm::W)
    00780 #define agga swizzle(glm::W, glm::Y, glm::Y, glm::W)
    00781 #define rbga swizzle(glm::X, glm::Z, glm::Y, glm::W)
    00782 #define gbga swizzle(glm::Y, glm::Z, glm::Y, glm::W)
    00783 #define bbga swizzle(glm::Z, glm::Z, glm::Y, glm::W)
    00784 #define abga swizzle(glm::W, glm::Z, glm::Y, glm::W)
    00785 #define raga swizzle(glm::X, glm::W, glm::Y, glm::W)
    00786 #define gaga swizzle(glm::Y, glm::W, glm::Y, glm::W)
    00787 #define baga swizzle(glm::Z, glm::W, glm::Y, glm::W)
    00788 #define aaga swizzle(glm::W, glm::W, glm::Y, glm::W)
    00789 #define rrba swizzle(glm::X, glm::X, glm::Z, glm::W)
    00790 #define grba swizzle(glm::Y, glm::X, glm::Z, glm::W)
    00791 #define brba swizzle(glm::Z, glm::X, glm::Z, glm::W)
    00792 #define arba swizzle(glm::W, glm::X, glm::Z, glm::W)
    00793 #define rgba swizzle(glm::X, glm::Y, glm::Z, glm::W)
    00794 #define ggba swizzle(glm::Y, glm::Y, glm::Z, glm::W)
    00795 #define bgba swizzle(glm::Z, glm::Y, glm::Z, glm::W)
    00796 #define agba swizzle(glm::W, glm::Y, glm::Z, glm::W)
    00797 #define rbba swizzle(glm::X, glm::Z, glm::Z, glm::W)
    00798 #define gbba swizzle(glm::Y, glm::Z, glm::Z, glm::W)
    00799 #define bbba swizzle(glm::Z, glm::Z, glm::Z, glm::W)
    00800 #define abba swizzle(glm::W, glm::Z, glm::Z, glm::W)
    00801 #define raba swizzle(glm::X, glm::W, glm::Z, glm::W)
    00802 #define gaba swizzle(glm::Y, glm::W, glm::Z, glm::W)
    00803 #define baba swizzle(glm::Z, glm::W, glm::Z, glm::W)
    00804 #define aaba swizzle(glm::W, glm::W, glm::Z, glm::W)
    00805 #define rraa swizzle(glm::X, glm::X, glm::W, glm::W)
    00806 #define graa swizzle(glm::Y, glm::X, glm::W, glm::W)
    00807 #define braa swizzle(glm::Z, glm::X, glm::W, glm::W)
    00808 #define araa swizzle(glm::W, glm::X, glm::W, glm::W)
    00809 #define rgaa swizzle(glm::X, glm::Y, glm::W, glm::W)
    00810 #define ggaa swizzle(glm::Y, glm::Y, glm::W, glm::W)
    00811 #define bgaa swizzle(glm::Z, glm::Y, glm::W, glm::W)
    00812 #define agaa swizzle(glm::W, glm::Y, glm::W, glm::W)
    00813 #define rbaa swizzle(glm::X, glm::Z, glm::W, glm::W)
    00814 #define gbaa swizzle(glm::Y, glm::Z, glm::W, glm::W)
    00815 #define bbaa swizzle(glm::Z, glm::Z, glm::W, glm::W)
    00816 #define abaa swizzle(glm::W, glm::Z, glm::W, glm::W)
    00817 #define raaa swizzle(glm::X, glm::W, glm::W, glm::W)
    00818 #define gaaa swizzle(glm::Y, glm::W, glm::W, glm::W)
    00819 #define baaa swizzle(glm::Z, glm::W, glm::W, glm::W)
    00820 #define aaaa swizzle(glm::W, glm::W, glm::W, glm::W)
    00821
    00822 #endif//defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_RGBA)
    00823
    00824 #if defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_STPQ)
    00825
    00826 #define ssss swizzle(glm::X, glm::X, glm::X, glm::X)
    00827 #define tsss swizzle(glm::Y, glm::X, glm::X, glm::X)
    00828 #define psss swizzle(glm::Z, glm::X, glm::X, glm::X)
    00829 #define qsss swizzle(glm::W, glm::X, glm::X, glm::X)
    00830 #define stss swizzle(glm::X, glm::Y, glm::X, glm::X)
    00831 #define ttss swizzle(glm::Y, glm::Y, glm::X, glm::X)
    00832 #define ptss swizzle(glm::Z, glm::Y, glm::X, glm::X)
    00833 #define qtss swizzle(glm::W, glm::Y, glm::X, glm::X)
    00834 #define spss swizzle(glm::X, glm::Z, glm::X, glm::X)
    00835 #define tpss swizzle(glm::Y, glm::Z, glm::X, glm::X)
    00836 #define ppss swizzle(glm::Z, glm::Z, glm::X, glm::X)
    00837 #define qpss swizzle(glm::W, glm::Z, glm::X, glm::X)
    00838 #define sqss swizzle(glm::X, glm::W, glm::X, glm::X)
    00839 #define tqss swizzle(glm::Y, glm::W, glm::X, glm::X)
    00840 #define pqss swizzle(glm::Z, glm::W, glm::X, glm::X)
    00841 #define qqss swizzle(glm::W, glm::W, glm::X, glm::X)
    00842 #define ssts swizzle(glm::X, glm::X, glm::Y, glm::X)
    00843 #define tsts swizzle(glm::Y, glm::X, glm::Y, glm::X)
    00844 #define psts swizzle(glm::Z, glm::X, glm::Y, glm::X)
    00845 #define qsts swizzle(glm::W, glm::X, glm::Y, glm::X)
    00846 #define stts swizzle(glm::X, glm::Y, glm::Y, glm::X)
    00847 #define ttts swizzle(glm::Y, glm::Y, glm::Y, glm::X)
    00848 #define ptts swizzle(glm::Z, glm::Y, glm::Y, glm::X)
    00849 #define qtts swizzle(glm::W, glm::Y, glm::Y, glm::X)
    00850 #define spts swizzle(glm::X, glm::Z, glm::Y, glm::X)
    00851 #define tpts swizzle(glm::Y, glm::Z, glm::Y, glm::X)
    00852 #define ppts swizzle(glm::Z, glm::Z, glm::Y, glm::X)
    00853 #define qpts swizzle(glm::W, glm::Z, glm::Y, glm::X)
    00854 #define sqts swizzle(glm::X, glm::W, glm::Y, glm::X)
    00855 #define tqts swizzle(glm::Y, glm::W, glm::Y, glm::X)
    00856 #define pqts swizzle(glm::Z, glm::W, glm::Y, glm::X)
    00857 #define qqts swizzle(glm::W, glm::W, glm::Y, glm::X)
    00858 #define ssps swizzle(glm::X, glm::X, glm::Z, glm::X)
    00859 #define tsps swizzle(glm::Y, glm::X, glm::Z, glm::X)
    00860 #define psps swizzle(glm::Z, glm::X, glm::Z, glm::X)
    00861 #define qsps swizzle(glm::W, glm::X, glm::Z, glm::X)
    00862 #define stps swizzle(glm::X, glm::Y, glm::Z, glm::X)
    00863 #define ttps swizzle(glm::Y, glm::Y, glm::Z, glm::X)
    00864 #define ptps swizzle(glm::Z, glm::Y, glm::Z, glm::X)
    00865 #define qtps swizzle(glm::W, glm::Y, glm::Z, glm::X)
    00866 #define spps swizzle(glm::X, glm::Z, glm::Z, glm::X)
    00867 #define tpps swizzle(glm::Y, glm::Z, glm::Z, glm::X)
    00868 #define ppps swizzle(glm::Z, glm::Z, glm::Z, glm::X)
    00869 #define qpps swizzle(glm::W, glm::Z, glm::Z, glm::X)
    00870 #define sqps swizzle(glm::X, glm::W, glm::Z, glm::X)
    00871 #define tqps swizzle(glm::Y, glm::W, glm::Z, glm::X)
    00872 #define pqps swizzle(glm::Z, glm::W, glm::Z, glm::X)
    00873 #define qqps swizzle(glm::W, glm::W, glm::Z, glm::X)
    00874 #define ssqs swizzle(glm::X, glm::X, glm::W, glm::X)
    00875 #define tsqs swizzle(glm::Y, glm::X, glm::W, glm::X)
    00876 #define psqs swizzle(glm::Z, glm::X, glm::W, glm::X)
    00877 #define qsqs swizzle(glm::W, glm::X, glm::W, glm::X)
    00878 #define stqs swizzle(glm::X, glm::Y, glm::W, glm::X)
    00879 #define ttqs swizzle(glm::Y, glm::Y, glm::W, glm::X)
    00880 #define ptqs swizzle(glm::Z, glm::Y, glm::W, glm::X)
    00881 #define qtqs swizzle(glm::W, glm::Y, glm::W, glm::X)
    00882 #define spqs swizzle(glm::X, glm::Z, glm::W, glm::X)
    00883 #define tpqs swizzle(glm::Y, glm::Z, glm::W, glm::X)
    00884 #define ppqs swizzle(glm::Z, glm::Z, glm::W, glm::X)
    00885 #define qpqs swizzle(glm::W, glm::Z, glm::W, glm::X)
    00886 #define sqqs swizzle(glm::X, glm::W, glm::W, glm::X)
    00887 #define tqqs swizzle(glm::Y, glm::W, glm::W, glm::X)
    00888 #define pqqs swizzle(glm::Z, glm::W, glm::W, glm::X)
    00889 #define qqqs swizzle(glm::W, glm::W, glm::W, glm::X)
    00890 #define ssst swizzle(glm::X, glm::X, glm::X, glm::Y)
    00891 #define tsst swizzle(glm::Y, glm::X, glm::X, glm::Y)
    00892 #define psst swizzle(glm::Z, glm::X, glm::X, glm::Y)
    00893 #define qsst swizzle(glm::W, glm::X, glm::X, glm::Y)
    00894 #define stst swizzle(glm::X, glm::Y, glm::X, glm::Y)
    00895 #define ttst swizzle(glm::Y, glm::Y, glm::X, glm::Y)
    00896 #define ptst swizzle(glm::Z, glm::Y, glm::X, glm::Y)
    00897 #define qtst swizzle(glm::W, glm::Y, glm::X, glm::Y)
    00898 #define spst swizzle(glm::X, glm::Z, glm::X, glm::Y)
    00899 #define tpst swizzle(glm::Y, glm::Z, glm::X, glm::Y)
    00900 #define ppst swizzle(glm::Z, glm::Z, glm::X, glm::Y)
    00901 #define qpst swizzle(glm::W, glm::Z, glm::X, glm::Y)
    00902 #define sqst swizzle(glm::X, glm::W, glm::X, glm::Y)
    00903 #define tqst swizzle(glm::Y, glm::W, glm::X, glm::Y)
    00904 #define pqst swizzle(glm::Z, glm::W, glm::X, glm::Y)
    00905 #define qqst swizzle(glm::W, glm::W, glm::X, glm::Y)
    00906 #define sstt swizzle(glm::X, glm::X, glm::Y, glm::Y)
    00907 #define tstt swizzle(glm::Y, glm::X, glm::Y, glm::Y)
    00908 #define pstt swizzle(glm::Z, glm::X, glm::Y, glm::Y)
    00909 #define qstt swizzle(glm::W, glm::X, glm::Y, glm::Y)
    00910 #define sttt swizzle(glm::X, glm::Y, glm::Y, glm::Y)
    00911 #define tttt swizzle(glm::Y, glm::Y, glm::Y, glm::Y)
    00912 #define pttt swizzle(glm::Z, glm::Y, glm::Y, glm::Y)
    00913 #define qttt swizzle(glm::W, glm::Y, glm::Y, glm::Y)
    00914 #define sptt swizzle(glm::X, glm::Z, glm::Y, glm::Y)
    00915 #define tptt swizzle(glm::Y, glm::Z, glm::Y, glm::Y)
    00916 #define pptt swizzle(glm::Z, glm::Z, glm::Y, glm::Y)
    00917 #define qptt swizzle(glm::W, glm::Z, glm::Y, glm::Y)
    00918 #define sqtt swizzle(glm::X, glm::W, glm::Y, glm::Y)
    00919 #define tqtt swizzle(glm::Y, glm::W, glm::Y, glm::Y)
    00920 #define pqtt swizzle(glm::Z, glm::W, glm::Y, glm::Y)
    00921 #define qqtt swizzle(glm::W, glm::W, glm::Y, glm::Y)
    00922 #define sspt swizzle(glm::X, glm::X, glm::Z, glm::Y)
    00923 #define tspt swizzle(glm::Y, glm::X, glm::Z, glm::Y)
    00924 #define pspt swizzle(glm::Z, glm::X, glm::Z, glm::Y)
    00925 #define qspt swizzle(glm::W, glm::X, glm::Z, glm::Y)
    00926 #define stpt swizzle(glm::X, glm::Y, glm::Z, glm::Y)
    00927 #define ttpt swizzle(glm::Y, glm::Y, glm::Z, glm::Y)
    00928 #define ptpt swizzle(glm::Z, glm::Y, glm::Z, glm::Y)
    00929 #define qtpt swizzle(glm::W, glm::Y, glm::Z, glm::Y)
    00930 #define sppt swizzle(glm::X, glm::Z, glm::Z, glm::Y)
    00931 #define tppt swizzle(glm::Y, glm::Z, glm::Z, glm::Y)
    00932 #define pppt swizzle(glm::Z, glm::Z, glm::Z, glm::Y)
    00933 #define qppt swizzle(glm::W, glm::Z, glm::Z, glm::Y)
    00934 #define sqpt swizzle(glm::X, glm::W, glm::Z, glm::Y)
    00935 #define tqpt swizzle(glm::Y, glm::W, glm::Z, glm::Y)
    00936 #define pqpt swizzle(glm::Z, glm::W, glm::Z, glm::Y)
    00937 #define qqpt swizzle(glm::W, glm::W, glm::Z, glm::Y)
    00938 #define ssqt swizzle(glm::X, glm::X, glm::W, glm::Y)
    00939 #define tsqt swizzle(glm::Y, glm::X, glm::W, glm::Y)
    00940 #define psqt swizzle(glm::Z, glm::X, glm::W, glm::Y)
    00941 #define qsqt swizzle(glm::W, glm::X, glm::W, glm::Y)
    00942 #define stqt swizzle(glm::X, glm::Y, glm::W, glm::Y)
    00943 #define ttqt swizzle(glm::Y, glm::Y, glm::W, glm::Y)
    00944 #define ptqt swizzle(glm::Z, glm::Y, glm::W, glm::Y)
    00945 #define qtqt swizzle(glm::W, glm::Y, glm::W, glm::Y)
    00946 #define spqt swizzle(glm::X, glm::Z, glm::W, glm::Y)
    00947 #define tpqt swizzle(glm::Y, glm::Z, glm::W, glm::Y)
    00948 #define ppqt swizzle(glm::Z, glm::Z, glm::W, glm::Y)
    00949 #define qpqt swizzle(glm::W, glm::Z, glm::W, glm::Y)
    00950 #define sqqt swizzle(glm::X, glm::W, glm::W, glm::Y)
    00951 #define tqqt swizzle(glm::Y, glm::W, glm::W, glm::Y)
    00952 #define pqqt swizzle(glm::Z, glm::W, glm::W, glm::Y)
    00953 #define qqqt swizzle(glm::W, glm::W, glm::W, glm::Y)
    00954 #define sssp swizzle(glm::X, glm::X, glm::X, glm::Z)
    00955 #define tssp swizzle(glm::Y, glm::X, glm::X, glm::Z)
    00956 #define pssp swizzle(glm::Z, glm::X, glm::X, glm::Z)
    00957 #define qssp swizzle(glm::W, glm::X, glm::X, glm::Z)
    00958 #define stsp swizzle(glm::X, glm::Y, glm::X, glm::Z)
    00959 #define ttsp swizzle(glm::Y, glm::Y, glm::X, glm::Z)
    00960 #define ptsp swizzle(glm::Z, glm::Y, glm::X, glm::Z)
    00961 #define qtsp swizzle(glm::W, glm::Y, glm::X, glm::Z)
    00962 #define spsp swizzle(glm::X, glm::Z, glm::X, glm::Z)
    00963 #define tpsp swizzle(glm::Y, glm::Z, glm::X, glm::Z)
    00964 #define ppsp swizzle(glm::Z, glm::Z, glm::X, glm::Z)
    00965 #define qpsp swizzle(glm::W, glm::Z, glm::X, glm::Z)
    00966 #define sqsp swizzle(glm::X, glm::W, glm::X, glm::Z)
    00967 #define tqsp swizzle(glm::Y, glm::W, glm::X, glm::Z)
    00968 #define pqsp swizzle(glm::Z, glm::W, glm::X, glm::Z)
    00969 #define qqsp swizzle(glm::W, glm::W, glm::X, glm::Z)
    00970 #define sstp swizzle(glm::X, glm::X, glm::Y, glm::Z)
    00971 #define tstp swizzle(glm::Y, glm::X, glm::Y, glm::Z)
    00972 #define pstp swizzle(glm::Z, glm::X, glm::Y, glm::Z)
    00973 #define qstp swizzle(glm::W, glm::X, glm::Y, glm::Z)
    00974 #define sttp swizzle(glm::X, glm::Y, glm::Y, glm::Z)
    00975 #define tttp swizzle(glm::Y, glm::Y, glm::Y, glm::Z)
    00976 #define pttp swizzle(glm::Z, glm::Y, glm::Y, glm::Z)
    00977 #define qttp swizzle(glm::W, glm::Y, glm::Y, glm::Z)
    00978 #define sptp swizzle(glm::X, glm::Z, glm::Y, glm::Z)
    00979 #define tptp swizzle(glm::Y, glm::Z, glm::Y, glm::Z)
    00980 #define pptp swizzle(glm::Z, glm::Z, glm::Y, glm::Z)
    00981 #define qptp swizzle(glm::W, glm::Z, glm::Y, glm::Z)
    00982 #define sqtp swizzle(glm::X, glm::W, glm::Y, glm::Z)
    00983 #define tqtp swizzle(glm::Y, glm::W, glm::Y, glm::Z)
    00984 #define pqtp swizzle(glm::Z, glm::W, glm::Y, glm::Z)
    00985 #define qqtp swizzle(glm::W, glm::W, glm::Y, glm::Z)
    00986 #define sspp swizzle(glm::X, glm::X, glm::Z, glm::Z)
    00987 #define tspp swizzle(glm::Y, glm::X, glm::Z, glm::Z)
    00988 #define pspp swizzle(glm::Z, glm::X, glm::Z, glm::Z)
    00989 #define qspp swizzle(glm::W, glm::X, glm::Z, glm::Z)
    00990 #define stpp swizzle(glm::X, glm::Y, glm::Z, glm::Z)
    00991 #define ttpp swizzle(glm::Y, glm::Y, glm::Z, glm::Z)
    00992 #define ptpp swizzle(glm::Z, glm::Y, glm::Z, glm::Z)
    00993 #define qtpp swizzle(glm::W, glm::Y, glm::Z, glm::Z)
    00994 #define sppp swizzle(glm::X, glm::Z, glm::Z, glm::Z)
    00995 #define tppp swizzle(glm::Y, glm::Z, glm::Z, glm::Z)
    00996 #define pppp swizzle(glm::Z, glm::Z, glm::Z, glm::Z)
    00997 #define qppp swizzle(glm::W, glm::Z, glm::Z, glm::Z)
    00998 #define sqpp swizzle(glm::X, glm::W, glm::Z, glm::Z)
    00999 #define tqpp swizzle(glm::Y, glm::W, glm::Z, glm::Z)
    01000 #define pqpp swizzle(glm::Z, glm::W, glm::Z, glm::Z)
    01001 #define qqpp swizzle(glm::W, glm::W, glm::Z, glm::Z)
    01002 #define ssqp swizzle(glm::X, glm::X, glm::W, glm::Z)
    01003 #define tsqp swizzle(glm::Y, glm::X, glm::W, glm::Z)
    01004 #define psqp swizzle(glm::Z, glm::X, glm::W, glm::Z)
    01005 #define qsqp swizzle(glm::W, glm::X, glm::W, glm::Z)
    01006 #define stqp swizzle(glm::X, glm::Y, glm::W, glm::Z)
    01007 #define ttqp swizzle(glm::Y, glm::Y, glm::W, glm::Z)
    01008 #define ptqp swizzle(glm::Z, glm::Y, glm::W, glm::Z)
    01009 #define qtqp swizzle(glm::W, glm::Y, glm::W, glm::Z)
    01010 #define spqp swizzle(glm::X, glm::Z, glm::W, glm::Z)
    01011 #define tpqp swizzle(glm::Y, glm::Z, glm::W, glm::Z)
    01012 #define ppqp swizzle(glm::Z, glm::Z, glm::W, glm::Z)
    01013 #define qpqp swizzle(glm::W, glm::Z, glm::W, glm::Z)
    01014 #define sqqp swizzle(glm::X, glm::W, glm::W, glm::Z)
    01015 #define tqqp swizzle(glm::Y, glm::W, glm::W, glm::Z)
    01016 #define pqqp swizzle(glm::Z, glm::W, glm::W, glm::Z)
    01017 #define qqqp swizzle(glm::W, glm::W, glm::W, glm::Z)
    01018 #define sssq swizzle(glm::X, glm::X, glm::X, glm::W)
    01019 #define tssq swizzle(glm::Y, glm::X, glm::X, glm::W)
    01020 #define pssq swizzle(glm::Z, glm::X, glm::X, glm::W)
    01021 #define qssq swizzle(glm::W, glm::X, glm::X, glm::W)
    01022 #define stsq swizzle(glm::X, glm::Y, glm::X, glm::W)
    01023 #define ttsq swizzle(glm::Y, glm::Y, glm::X, glm::W)
    01024 #define ptsq swizzle(glm::Z, glm::Y, glm::X, glm::W)
    01025 #define qtsq swizzle(glm::W, glm::Y, glm::X, glm::W)
    01026 #define spsq swizzle(glm::X, glm::Z, glm::X, glm::W)
    01027 #define tpsq swizzle(glm::Y, glm::Z, glm::X, glm::W)
    01028 #define ppsq swizzle(glm::Z, glm::Z, glm::X, glm::W)
    01029 #define qpsq swizzle(glm::W, glm::Z, glm::X, glm::W)
    01030 #define sqsq swizzle(glm::X, glm::W, glm::X, glm::W)
    01031 #define tqsq swizzle(glm::Y, glm::W, glm::X, glm::W)
    01032 #define pqsq swizzle(glm::Z, glm::W, glm::X, glm::W)
    01033 #define qqsq swizzle(glm::W, glm::W, glm::X, glm::W)
    01034 #define sstq swizzle(glm::X, glm::X, glm::Y, glm::W)
    01035 #define tstq swizzle(glm::Y, glm::X, glm::Y, glm::W)
    01036 #define pstq swizzle(glm::Z, glm::X, glm::Y, glm::W)
    01037 #define qstq swizzle(glm::W, glm::X, glm::Y, glm::W)
    01038 #define sttq swizzle(glm::X, glm::Y, glm::Y, glm::W)
    01039 #define tttq swizzle(glm::Y, glm::Y, glm::Y, glm::W)
    01040 #define pttq swizzle(glm::Z, glm::Y, glm::Y, glm::W)
    01041 #define qttq swizzle(glm::W, glm::Y, glm::Y, glm::W)
    01042 #define sptq swizzle(glm::X, glm::Z, glm::Y, glm::W)
    01043 #define tptq swizzle(glm::Y, glm::Z, glm::Y, glm::W)
    01044 #define pptq swizzle(glm::Z, glm::Z, glm::Y, glm::W)
    01045 #define qptq swizzle(glm::W, glm::Z, glm::Y, glm::W)
    01046 #define sqtq swizzle(glm::X, glm::W, glm::Y, glm::W)
    01047 #define tqtq swizzle(glm::Y, glm::W, glm::Y, glm::W)
    01048 #define pqtq swizzle(glm::Z, glm::W, glm::Y, glm::W)
    01049 #define qqtq swizzle(glm::W, glm::W, glm::Y, glm::W)
    01050 #define sspq swizzle(glm::X, glm::X, glm::Z, glm::W)
    01051 #define tspq swizzle(glm::Y, glm::X, glm::Z, glm::W)
    01052 #define pspq swizzle(glm::Z, glm::X, glm::Z, glm::W)
    01053 #define qspq swizzle(glm::W, glm::X, glm::Z, glm::W)
    01054 #define stpq swizzle(glm::X, glm::Y, glm::Z, glm::W)
    01055 #define ttpq swizzle(glm::Y, glm::Y, glm::Z, glm::W)
    01056 #define ptpq swizzle(glm::Z, glm::Y, glm::Z, glm::W)
    01057 #define qtpq swizzle(glm::W, glm::Y, glm::Z, glm::W)
    01058 #define sppq swizzle(glm::X, glm::Z, glm::Z, glm::W)
    01059 #define tppq swizzle(glm::Y, glm::Z, glm::Z, glm::W)
    01060 #define pppq swizzle(glm::Z, glm::Z, glm::Z, glm::W)
    01061 #define qppq swizzle(glm::W, glm::Z, glm::Z, glm::W)
    01062 #define sqpq swizzle(glm::X, glm::W, glm::Z, glm::W)
    01063 #define tqpq swizzle(glm::Y, glm::W, glm::Z, glm::W)
    01064 #define pqpq swizzle(glm::Z, glm::W, glm::Z, glm::W)
    01065 #define qqpq swizzle(glm::W, glm::W, glm::Z, glm::W)
    01066 #define ssqq swizzle(glm::X, glm::X, glm::W, glm::W)
    01067 #define tsqq swizzle(glm::Y, glm::X, glm::W, glm::W)
    01068 #define psqq swizzle(glm::Z, glm::X, glm::W, glm::W)
    01069 #define qsqq swizzle(glm::W, glm::X, glm::W, glm::W)
    01070 #define stqq swizzle(glm::X, glm::Y, glm::W, glm::W)
    01071 #define ttqq swizzle(glm::Y, glm::Y, glm::W, glm::W)
    01072 #define ptqq swizzle(glm::Z, glm::Y, glm::W, glm::W)
    01073 #define qtqq swizzle(glm::W, glm::Y, glm::W, glm::W)
    01074 #define spqq swizzle(glm::X, glm::Z, glm::W, glm::W)
    01075 #define tpqq swizzle(glm::Y, glm::Z, glm::W, glm::W)
    01076 #define ppqq swizzle(glm::Z, glm::Z, glm::W, glm::W)
    01077 #define qpqq swizzle(glm::W, glm::Z, glm::W, glm::W)
    01078 #define sqqq swizzle(glm::X, glm::W, glm::W, glm::W)
    01079 #define tqqq swizzle(glm::Y, glm::W, glm::W, glm::W)
    01080 #define pqqq swizzle(glm::Z, glm::W, glm::W, glm::W)
    01081 #define qqqq swizzle(glm::W, glm::W, glm::W, glm::W)
    01082
    01083 #endif//defined(GLM_SWIZZLE) && (GLM_SWIZZLE & GLM_SWIZZLE_STPQ)
    01084
    01085 #endif//glm_core_swizzle