|  | 0.9.9 API documenation
    | 
 
 
 
    3 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, CONST, A, B)   \     4     vec<2, T, Q> A ## B() CONST                         \     6         return vec<2, T, Q>(this->A, this->B);          \     9 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, CONST, A, B, C)        \    10     vec<3, T, Q> A ## B ## C() CONST                            \    12         return vec<3, T, Q>(this->A, this->B, this->C);         \    15 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, CONST, A, B, C, D)                 \    16     vec<4, T, Q> A ## B ## C ## D() CONST                                   \    18         return vec<4, T, Q>(this->A, this->B, this->C, this->D);            \    21 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(T, P, L, CONST, A, B)    \    22     template<typename T>                                        \    23     vec<L, T, Q> vec<L, T, Q>::A ## B() CONST                   \    25         return vec<2, T, Q>(this->A, this->B);                  \    28 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(T, P, L, CONST, A, B, C)     \    29     template<typename T>                                            \    30     vec<3, T, Q> vec<L, T, Q>::A ## B ## C() CONST                  \    32         return vec<3, T, Q>(this->A, this->B, this->C);             \    35 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(T, P, L, CONST, A, B, C, D)      \    36     template<typename T>                                                \    37     vec<4, T, Q> vec<L, T, Q>::A ## B ## C ## D() CONST                 \    39         return vec<4, T, Q>(this->A, this->B, this->C, this->D);        \    44 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, A, B) \    45     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, A, B) \    46     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, B, A)    48 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(T, P) \    49     GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, x, y) \    50     GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, r, g) \    51     GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, s, t)    53 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \    54     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \    55     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \    56     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \    57     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \    58     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \    59     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B)    61 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \    62     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, B, C) \    63     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, C, B) \    64     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, A, C) \    65     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, C, A) \    66     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, A, B) \    67     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, B, A)    69 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, A, B, C) \    70     GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \    71     GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C)    73 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P) \    74     GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, x, y, z) \    75     GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, r, g, b) \    76     GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, s, t, p)    78 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \    79     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \    80     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \    81     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, D) \    82     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \    83     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \    84     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, D) \    85     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \    86     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B) \    87     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, D) \    88     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, A) \    89     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, B) \    90     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, C)    92 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \    93     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, C) \    94     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, D) \    95     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, B) \    96     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, D) \    97     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, B) \    98     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, C) \    99     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, C) \   100     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, D) \   101     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, A) \   102     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, D) \   103     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, A) \   104     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, C) \   105     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, B) \   106     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, D) \   107     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, A) \   108     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, D) \   109     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, A) \   110     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, B) \   111     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, B) \   112     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, C) \   113     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, A) \   114     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, C) \   115     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, A) \   116     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, B)   118 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   119     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, B, D) \   120     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, D, B) \   121     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, B, C) \   122     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, C, B) \   123     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, D, C) \   124     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, C, D) \   125     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, A, D) \   126     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, D, A) \   127     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, A, C) \   128     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, C, A) \   129     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, D, C) \   130     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, C, D) \   131     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, A, D) \   132     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, D, A) \   133     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, A, B) \   134     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, B, A) \   135     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, D, B) \   136     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, B, D) \   137     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, B, A) \   138     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, A, B) \   139     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, B, C) \   140     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, C, B) \   141     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, A, C) \   142     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, C, A)   144 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, A, B, C, D) \   145     GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   146     GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   147     GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)   149 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P) \   150     GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, x, y, z, w) \   151     GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, r, g, b, a) \   152     GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, s, t, p, q)   154 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \   155     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \   156     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \   157     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \   158     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B)   160 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \   161     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \   162     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \   163     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \   164     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \   165     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \   166     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \   167     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \   168     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B)   170 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B) \   171     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \   172     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \   173     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \   174     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \   175     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \   176     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \   177     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \   178     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \   179     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \   180     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \   181     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \   182     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \   183     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \   184     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \   185     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \   186     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B)   188 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, A, B) \   189     GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \   190     GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \   191     GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B)   193 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P)         \   194     GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, x, y)  \   195     GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, r, g)  \   196     GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, s, t)   198 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \   199     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \   200     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \   201     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \   202     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \   203     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \   204     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \   205     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \   206     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \   207     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C)   209 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \   210     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \   211     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \   212     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \   213     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \   214     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \   215     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \   216     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \   217     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \   218     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \   219     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \   220     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \   221     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \   222     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \   223     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \   224     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \   225     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \   226     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \   227     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \   228     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \   229     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \   230     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \   231     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \   232     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \   233     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \   234     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \   235     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \   236     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C)   238 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C) \   239     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \   240     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \   241     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \   242     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \   243     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \   244     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \   245     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \   246     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \   247     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \   248     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \   249     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \   250     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \   251     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \   252     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \   253     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \   254     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \   255     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \   256     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \   257     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \   258     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \   259     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \   260     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \   261     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \   262     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \   263     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \   264     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \   265     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \   266     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \   267     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \   268     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \   269     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \   270     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \   271     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \   272     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \   273     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \   274     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \   275     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \   276     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \   277     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \   278     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \   279     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \   280     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \   281     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \   282     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \   283     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \   284     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \   285     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \   286     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \   287     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \   288     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \   289     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \   290     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \   291     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \   292     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \   293     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \   294     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \   295     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \   296     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \   297     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \   298     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \   299     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \   300     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \   301     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \   302     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \   303     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \   304     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \   305     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \   306     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \   307     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \   308     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \   309     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \   310     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \   311     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \   312     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \   313     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \   314     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \   315     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \   316     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \   317     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \   318     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \   319     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C)   321 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, A, B, C) \   322     GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \   323     GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \   324     GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C)   326 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P) \   327     GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, x, y, z) \   328     GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, r, g, b) \   329     GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, s, t, p)   331 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   332     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \   333     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \   334     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \   335     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, D) \   336     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \   337     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \   338     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \   339     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, D) \   340     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \   341     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \   342     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C) \   343     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, D) \   344     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, A) \   345     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, B) \   346     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, C) \   347     GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, D)   349 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   350     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \   351     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \   352     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \   353     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, D) \   354     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \   355     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \   356     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \   357     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, D) \   358     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \   359     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \   360     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \   361     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, D) \   362     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, A) \   363     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, B) \   364     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, C) \   365     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, D) \   366     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \   367     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \   368     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \   369     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, D) \   370     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \   371     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \   372     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \   373     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, D) \   374     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \   375     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \   376     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \   377     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, D) \   378     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, A) \   379     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, B) \   380     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, C) \   381     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, D) \   382     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \   383     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \   384     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \   385     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, D) \   386     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \   387     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \   388     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \   389     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, D) \   390     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \   391     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \   392     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C) \   393     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, D) \   394     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, A) \   395     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, B) \   396     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, C) \   397     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, D) \   398     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, A) \   399     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, B) \   400     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, C) \   401     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, D) \   402     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, A) \   403     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, B) \   404     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, C) \   405     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, D) \   406     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, A) \   407     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, B) \   408     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, C) \   409     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, D) \   410     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, A) \   411     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, B) \   412     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, C) \   413     GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, D)   415 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   416     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \   417     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \   418     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \   419     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, D) \   420     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \   421     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \   422     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \   423     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, D) \   424     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \   425     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \   426     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \   427     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, D) \   428     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, A) \   429     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, B) \   430     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, C) \   431     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, D) \   432     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \   433     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \   434     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \   435     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, D) \   436     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \   437     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \   438     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \   439     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, D) \   440     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \   441     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \   442     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \   443     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, D) \   444     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, A) \   445     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, B) \   446     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, C) \   447     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, D) \   448     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \   449     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \   450     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \   451     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, D) \   452     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \   453     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \   454     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \   455     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, D) \   456     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \   457     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \   458     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \   459     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, D) \   460     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, A) \   461     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, B) \   462     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, C) \   463     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, D) \   464     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, A) \   465     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, B) \   466     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, C) \   467     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, D) \   468     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, A) \   469     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, B) \   470     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, C) \   471     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, D) \   472     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, A) \   473     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, B) \   474     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, C) \   475     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, D) \   476     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, A) \   477     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, B) \   478     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, C) \   479     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, D) \   480     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \   481     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \   482     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \   483     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, D) \   484     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \   485     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \   486     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \   487     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, D) \   488     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \   489     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \   490     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \   491     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, D) \   492     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, A) \   493     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, B) \   494     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, C) \   495     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, D) \   496     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \   497     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \   498     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \   499     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, D) \   500     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \   501     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \   502     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \   503     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, D) \   504     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \   505     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \   506     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \   507     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, D) \   508     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, A) \   509     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, B) \   510     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, C) \   511     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, D) \   512     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \   513     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \   514     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \   515     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, D) \   516     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \   517     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \   518     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \   519     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, D) \   520     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \   521     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \   522     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \   523     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, D) \   524     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, A) \   525     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, B) \   526     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, C) \   527     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, D) \   528     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, A) \   529     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, B) \   530     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, C) \   531     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, D) \   532     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, A) \   533     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, B) \   534     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, C) \   535     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, D) \   536     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, A) \   537     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, B) \   538     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, C) \   539     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, D) \   540     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, A) \   541     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, B) \   542     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, C) \   543     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, D) \   544     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \   545     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \   546     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \   547     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, D) \   548     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \   549     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \   550     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \   551     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, D) \   552     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \   553     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \   554     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \   555     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, D) \   556     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, A) \   557     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, B) \   558     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, C) \   559     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, D) \   560     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \   561     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \   562     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \   563     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, D) \   564     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \   565     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \   566     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \   567     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, D) \   568     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \   569     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \   570     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \   571     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, D) \   572     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, A) \   573     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, B) \   574     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, C) \   575     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, D) \   576     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \   577     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \   578     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \   579     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, D) \   580     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \   581     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \   582     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \   583     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, D) \   584     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \   585     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \   586     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C) \   587     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, D) \   588     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, A) \   589     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, B) \   590     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, C) \   591     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, D) \   592     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, A) \   593     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, B) \   594     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, C) \   595     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, D) \   596     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, A) \   597     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, B) \   598     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, C) \   599     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, D) \   600     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, A) \   601     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, B) \   602     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, C) \   603     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, D) \   604     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, A) \   605     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, B) \   606     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, C) \   607     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, D) \   608     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, A) \   609     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, B) \   610     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, C) \   611     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, D) \   612     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, A) \   613     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, B) \   614     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, C) \   615     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, D) \   616     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, A) \   617     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, B) \   618     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, C) \   619     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, D) \   620     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, A) \   621     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, B) \   622     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, C) \   623     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, D) \   624     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, A) \   625     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, B) \   626     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, C) \   627     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, D) \   628     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, A) \   629     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, B) \   630     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, C) \   631     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, D) \   632     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, A) \   633     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, B) \   634     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, C) \   635     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, D) \   636     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, A) \   637     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, B) \   638     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, C) \   639     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, D) \   640     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, A) \   641     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, B) \   642     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, C) \   643     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, D) \   644     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, A) \   645     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, B) \   646     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, C) \   647     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, D) \   648     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, A) \   649     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, B) \   650     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, C) \   651     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, D) \   652     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, A) \   653     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, B) \   654     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, C) \   655     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, D) \   656     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, A) \   657     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, B) \   658     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, C) \   659     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, D) \   660     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, A) \   661     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, B) \   662     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, C) \   663     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, D) \   664     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, A) \   665     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, B) \   666     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, C) \   667     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, D) \   668     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, A) \   669     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, B) \   670     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, C) \   671     GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, D)   673 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, A, B, C, D) \   674     GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   675     GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \   676     GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)   678 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P) \   679     GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, x, y, z, w) \   680     GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, r, g, b, a) \   681     GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, s, t, p, q)