From 675391d07f50d0067e7bab983433c6d86f5f8256 Mon Sep 17 00:00:00 2001 From: jjesswan Date: Tue, 7 May 2024 06:03:03 -0400 Subject: remove glm --- glm-master/doc/api/a00187_source.html | 2871 --------------------------------- 1 file changed, 2871 deletions(-) delete mode 100644 glm-master/doc/api/a00187_source.html (limited to 'glm-master/doc/api/a00187_source.html') diff --git a/glm-master/doc/api/a00187_source.html b/glm-master/doc/api/a00187_source.html deleted file mode 100644 index 4760447..0000000 --- a/glm-master/doc/api/a00187_source.html +++ /dev/null @@ -1,2871 +0,0 @@ - - - - - - -0.9.9 API documentation: vec_swizzle.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec_swizzle.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../glm.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # ifndef GLM_ENABLE_EXPERIMENTAL
-
19 # pragma message("GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
20 # else
-
21 # pragma message("GLM: GLM_GTX_vec_swizzle extension included")
-
22 # endif
-
23 #endif
-
24 
-
25 namespace glm {
-
26  // xx
-
27  template<typename T, qualifier Q>
-
28  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<1, T, Q> &v) {
-
29  return glm::vec<2, T, Q>(v.x, v.x);
-
30  }
-
31 
-
32  template<typename T, qualifier Q>
-
33  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<2, T, Q> &v) {
-
34  return glm::vec<2, T, Q>(v.x, v.x);
-
35  }
-
36 
-
37  template<typename T, qualifier Q>
-
38  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<3, T, Q> &v) {
-
39  return glm::vec<2, T, Q>(v.x, v.x);
-
40  }
-
41 
-
42  template<typename T, qualifier Q>
-
43  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<4, T, Q> &v) {
-
44  return glm::vec<2, T, Q>(v.x, v.x);
-
45  }
-
46 
-
47  // xy
-
48  template<typename T, qualifier Q>
-
49  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<2, T, Q> &v) {
-
50  return glm::vec<2, T, Q>(v.x, v.y);
-
51  }
-
52 
-
53  template<typename T, qualifier Q>
-
54  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<3, T, Q> &v) {
-
55  return glm::vec<2, T, Q>(v.x, v.y);
-
56  }
-
57 
-
58  template<typename T, qualifier Q>
-
59  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<4, T, Q> &v) {
-
60  return glm::vec<2, T, Q>(v.x, v.y);
-
61  }
-
62 
-
63  // xz
-
64  template<typename T, qualifier Q>
-
65  GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<3, T, Q> &v) {
-
66  return glm::vec<2, T, Q>(v.x, v.z);
-
67  }
-
68 
-
69  template<typename T, qualifier Q>
-
70  GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<4, T, Q> &v) {
-
71  return glm::vec<2, T, Q>(v.x, v.z);
-
72  }
-
73 
-
74  // xw
-
75  template<typename T, qualifier Q>
-
76  GLM_INLINE glm::vec<2, T, Q> xw(const glm::vec<4, T, Q> &v) {
-
77  return glm::vec<2, T, Q>(v.x, v.w);
-
78  }
-
79 
-
80  // yx
-
81  template<typename T, qualifier Q>
-
82  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<2, T, Q> &v) {
-
83  return glm::vec<2, T, Q>(v.y, v.x);
-
84  }
-
85 
-
86  template<typename T, qualifier Q>
-
87  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<3, T, Q> &v) {
-
88  return glm::vec<2, T, Q>(v.y, v.x);
-
89  }
-
90 
-
91  template<typename T, qualifier Q>
-
92  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<4, T, Q> &v) {
-
93  return glm::vec<2, T, Q>(v.y, v.x);
-
94  }
-
95 
-
96  // yy
-
97  template<typename T, qualifier Q>
-
98  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<2, T, Q> &v) {
-
99  return glm::vec<2, T, Q>(v.y, v.y);
-
100  }
-
101 
-
102  template<typename T, qualifier Q>
-
103  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<3, T, Q> &v) {
-
104  return glm::vec<2, T, Q>(v.y, v.y);
-
105  }
-
106 
-
107  template<typename T, qualifier Q>
-
108  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<4, T, Q> &v) {
-
109  return glm::vec<2, T, Q>(v.y, v.y);
-
110  }
-
111 
-
112  // yz
-
113  template<typename T, qualifier Q>
-
114  GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<3, T, Q> &v) {
-
115  return glm::vec<2, T, Q>(v.y, v.z);
-
116  }
-
117 
-
118  template<typename T, qualifier Q>
-
119  GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<4, T, Q> &v) {
-
120  return glm::vec<2, T, Q>(v.y, v.z);
-
121  }
-
122 
-
123  // yw
-
124  template<typename T, qualifier Q>
-
125  GLM_INLINE glm::vec<2, T, Q> yw(const glm::vec<4, T, Q> &v) {
-
126  return glm::vec<2, T, Q>(v.y, v.w);
-
127  }
-
128 
-
129  // zx
-
130  template<typename T, qualifier Q>
-
131  GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<3, T, Q> &v) {
-
132  return glm::vec<2, T, Q>(v.z, v.x);
-
133  }
-
134 
-
135  template<typename T, qualifier Q>
-
136  GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<4, T, Q> &v) {
-
137  return glm::vec<2, T, Q>(v.z, v.x);
-
138  }
-
139 
-
140  // zy
-
141  template<typename T, qualifier Q>
-
142  GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<3, T, Q> &v) {
-
143  return glm::vec<2, T, Q>(v.z, v.y);
-
144  }
-
145 
-
146  template<typename T, qualifier Q>
-
147  GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<4, T, Q> &v) {
-
148  return glm::vec<2, T, Q>(v.z, v.y);
-
149  }
-
150 
-
151  // zz
-
152  template<typename T, qualifier Q>
-
153  GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<3, T, Q> &v) {
-
154  return glm::vec<2, T, Q>(v.z, v.z);
-
155  }
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<4, T, Q> &v) {
-
159  return glm::vec<2, T, Q>(v.z, v.z);
-
160  }
-
161 
-
162  // zw
-
163  template<typename T, qualifier Q>
-
164  GLM_INLINE glm::vec<2, T, Q> zw(const glm::vec<4, T, Q> &v) {
-
165  return glm::vec<2, T, Q>(v.z, v.w);
-
166  }
-
167 
-
168  // wx
-
169  template<typename T, qualifier Q>
-
170  GLM_INLINE glm::vec<2, T, Q> wx(const glm::vec<4, T, Q> &v) {
-
171  return glm::vec<2, T, Q>(v.w, v.x);
-
172  }
-
173 
-
174  // wy
-
175  template<typename T, qualifier Q>
-
176  GLM_INLINE glm::vec<2, T, Q> wy(const glm::vec<4, T, Q> &v) {
-
177  return glm::vec<2, T, Q>(v.w, v.y);
-
178  }
-
179 
-
180  // wz
-
181  template<typename T, qualifier Q>
-
182  GLM_INLINE glm::vec<2, T, Q> wz(const glm::vec<4, T, Q> &v) {
-
183  return glm::vec<2, T, Q>(v.w, v.z);
-
184  }
-
185 
-
186  // ww
-
187  template<typename T, qualifier Q>
-
188  GLM_INLINE glm::vec<2, T, Q> ww(const glm::vec<4, T, Q> &v) {
-
189  return glm::vec<2, T, Q>(v.w, v.w);
-
190  }
-
191 
-
192  // xxx
-
193  template<typename T, qualifier Q>
-
194  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<1, T, Q> &v) {
-
195  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
196  }
-
197 
-
198  template<typename T, qualifier Q>
-
199  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<2, T, Q> &v) {
-
200  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
201  }
-
202 
-
203  template<typename T, qualifier Q>
-
204  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<3, T, Q> &v) {
-
205  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
206  }
-
207 
-
208  template<typename T, qualifier Q>
-
209  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<4, T, Q> &v) {
-
210  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
211  }
-
212 
-
213  // xxy
-
214  template<typename T, qualifier Q>
-
215  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<2, T, Q> &v) {
-
216  return glm::vec<3, T, Q>(v.x, v.x, v.y);
-
217  }
-
218 
-
219  template<typename T, qualifier Q>
-
220  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<3, T, Q> &v) {
-
221  return glm::vec<3, T, Q>(v.x, v.x, v.y);
-
222  }
-
223 
-
224  template<typename T, qualifier Q>
-
225  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<4, T, Q> &v) {
-
226  return glm::vec<3, T, Q>(v.x, v.x, v.y);
-
227  }
-
228 
-
229  // xxz
-
230  template<typename T, qualifier Q>
-
231  GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<3, T, Q> &v) {
-
232  return glm::vec<3, T, Q>(v.x, v.x, v.z);
-
233  }
-
234 
-
235  template<typename T, qualifier Q>
-
236  GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<4, T, Q> &v) {
-
237  return glm::vec<3, T, Q>(v.x, v.x, v.z);
-
238  }
-
239 
-
240  // xxw
-
241  template<typename T, qualifier Q>
-
242  GLM_INLINE glm::vec<3, T, Q> xxw(const glm::vec<4, T, Q> &v) {
-
243  return glm::vec<3, T, Q>(v.x, v.x, v.w);
-
244  }
-
245 
-
246  // xyx
-
247  template<typename T, qualifier Q>
-
248  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<2, T, Q> &v) {
-
249  return glm::vec<3, T, Q>(v.x, v.y, v.x);
-
250  }
-
251 
-
252  template<typename T, qualifier Q>
-
253  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<3, T, Q> &v) {
-
254  return glm::vec<3, T, Q>(v.x, v.y, v.x);
-
255  }
-
256 
-
257  template<typename T, qualifier Q>
-
258  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<4, T, Q> &v) {
-
259  return glm::vec<3, T, Q>(v.x, v.y, v.x);
-
260  }
-
261 
-
262  // xyy
-
263  template<typename T, qualifier Q>
-
264  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<2, T, Q> &v) {
-
265  return glm::vec<3, T, Q>(v.x, v.y, v.y);
-
266  }
-
267 
-
268  template<typename T, qualifier Q>
-
269  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<3, T, Q> &v) {
-
270  return glm::vec<3, T, Q>(v.x, v.y, v.y);
-
271  }
-
272 
-
273  template<typename T, qualifier Q>
-
274  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<4, T, Q> &v) {
-
275  return glm::vec<3, T, Q>(v.x, v.y, v.y);
-
276  }
-
277 
-
278  // xyz
-
279  template<typename T, qualifier Q>
-
280  GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<3, T, Q> &v) {
-
281  return glm::vec<3, T, Q>(v.x, v.y, v.z);
-
282  }
-
283 
-
284  template<typename T, qualifier Q>
-
285  GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<4, T, Q> &v) {
-
286  return glm::vec<3, T, Q>(v.x, v.y, v.z);
-
287  }
-
288 
-
289  // xyw
-
290  template<typename T, qualifier Q>
-
291  GLM_INLINE glm::vec<3, T, Q> xyw(const glm::vec<4, T, Q> &v) {
-
292  return glm::vec<3, T, Q>(v.x, v.y, v.w);
-
293  }
-
294 
-
295  // xzx
-
296  template<typename T, qualifier Q>
-
297  GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<3, T, Q> &v) {
-
298  return glm::vec<3, T, Q>(v.x, v.z, v.x);
-
299  }
-
300 
-
301  template<typename T, qualifier Q>
-
302  GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<4, T, Q> &v) {
-
303  return glm::vec<3, T, Q>(v.x, v.z, v.x);
-
304  }
-
305 
-
306  // xzy
-
307  template<typename T, qualifier Q>
-
308  GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<3, T, Q> &v) {
-
309  return glm::vec<3, T, Q>(v.x, v.z, v.y);
-
310  }
-
311 
-
312  template<typename T, qualifier Q>
-
313  GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<4, T, Q> &v) {
-
314  return glm::vec<3, T, Q>(v.x, v.z, v.y);
-
315  }
-
316 
-
317  // xzz
-
318  template<typename T, qualifier Q>
-
319  GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<3, T, Q> &v) {
-
320  return glm::vec<3, T, Q>(v.x, v.z, v.z);
-
321  }
-
322 
-
323  template<typename T, qualifier Q>
-
324  GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<4, T, Q> &v) {
-
325  return glm::vec<3, T, Q>(v.x, v.z, v.z);
-
326  }
-
327 
-
328  // xzw
-
329  template<typename T, qualifier Q>
-
330  GLM_INLINE glm::vec<3, T, Q> xzw(const glm::vec<4, T, Q> &v) {
-
331  return glm::vec<3, T, Q>(v.x, v.z, v.w);
-
332  }
-
333 
-
334  // xwx
-
335  template<typename T, qualifier Q>
-
336  GLM_INLINE glm::vec<3, T, Q> xwx(const glm::vec<4, T, Q> &v) {
-
337  return glm::vec<3, T, Q>(v.x, v.w, v.x);
-
338  }
-
339 
-
340  // xwy
-
341  template<typename T, qualifier Q>
-
342  GLM_INLINE glm::vec<3, T, Q> xwy(const glm::vec<4, T, Q> &v) {
-
343  return glm::vec<3, T, Q>(v.x, v.w, v.y);
-
344  }
-
345 
-
346  // xwz
-
347  template<typename T, qualifier Q>
-
348  GLM_INLINE glm::vec<3, T, Q> xwz(const glm::vec<4, T, Q> &v) {
-
349  return glm::vec<3, T, Q>(v.x, v.w, v.z);
-
350  }
-
351 
-
352  // xww
-
353  template<typename T, qualifier Q>
-
354  GLM_INLINE glm::vec<3, T, Q> xww(const glm::vec<4, T, Q> &v) {
-
355  return glm::vec<3, T, Q>(v.x, v.w, v.w);
-
356  }
-
357 
-
358  // yxx
-
359  template<typename T, qualifier Q>
-
360  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<2, T, Q> &v) {
-
361  return glm::vec<3, T, Q>(v.y, v.x, v.x);
-
362  }
-
363 
-
364  template<typename T, qualifier Q>
-
365  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<3, T, Q> &v) {
-
366  return glm::vec<3, T, Q>(v.y, v.x, v.x);
-
367  }
-
368 
-
369  template<typename T, qualifier Q>
-
370  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<4, T, Q> &v) {
-
371  return glm::vec<3, T, Q>(v.y, v.x, v.x);
-
372  }
-
373 
-
374  // yxy
-
375  template<typename T, qualifier Q>
-
376  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<2, T, Q> &v) {
-
377  return glm::vec<3, T, Q>(v.y, v.x, v.y);
-
378  }
-
379 
-
380  template<typename T, qualifier Q>
-
381  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<3, T, Q> &v) {
-
382  return glm::vec<3, T, Q>(v.y, v.x, v.y);
-
383  }
-
384 
-
385  template<typename T, qualifier Q>
-
386  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<4, T, Q> &v) {
-
387  return glm::vec<3, T, Q>(v.y, v.x, v.y);
-
388  }
-
389 
-
390  // yxz
-
391  template<typename T, qualifier Q>
-
392  GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<3, T, Q> &v) {
-
393  return glm::vec<3, T, Q>(v.y, v.x, v.z);
-
394  }
-
395 
-
396  template<typename T, qualifier Q>
-
397  GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<4, T, Q> &v) {
-
398  return glm::vec<3, T, Q>(v.y, v.x, v.z);
-
399  }
-
400 
-
401  // yxw
-
402  template<typename T, qualifier Q>
-
403  GLM_INLINE glm::vec<3, T, Q> yxw(const glm::vec<4, T, Q> &v) {
-
404  return glm::vec<3, T, Q>(v.y, v.x, v.w);
-
405  }
-
406 
-
407  // yyx
-
408  template<typename T, qualifier Q>
-
409  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<2, T, Q> &v) {
-
410  return glm::vec<3, T, Q>(v.y, v.y, v.x);
-
411  }
-
412 
-
413  template<typename T, qualifier Q>
-
414  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<3, T, Q> &v) {
-
415  return glm::vec<3, T, Q>(v.y, v.y, v.x);
-
416  }
-
417 
-
418  template<typename T, qualifier Q>
-
419  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<4, T, Q> &v) {
-
420  return glm::vec<3, T, Q>(v.y, v.y, v.x);
-
421  }
-
422 
-
423  // yyy
-
424  template<typename T, qualifier Q>
-
425  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<2, T, Q> &v) {
-
426  return glm::vec<3, T, Q>(v.y, v.y, v.y);
-
427  }
-
428 
-
429  template<typename T, qualifier Q>
-
430  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<3, T, Q> &v) {
-
431  return glm::vec<3, T, Q>(v.y, v.y, v.y);
-
432  }
-
433 
-
434  template<typename T, qualifier Q>
-
435  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<4, T, Q> &v) {
-
436  return glm::vec<3, T, Q>(v.y, v.y, v.y);
-
437  }
-
438 
-
439  // yyz
-
440  template<typename T, qualifier Q>
-
441  GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<3, T, Q> &v) {
-
442  return glm::vec<3, T, Q>(v.y, v.y, v.z);
-
443  }
-
444 
-
445  template<typename T, qualifier Q>
-
446  GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<4, T, Q> &v) {
-
447  return glm::vec<3, T, Q>(v.y, v.y, v.z);
-
448  }
-
449 
-
450  // yyw
-
451  template<typename T, qualifier Q>
-
452  GLM_INLINE glm::vec<3, T, Q> yyw(const glm::vec<4, T, Q> &v) {
-
453  return glm::vec<3, T, Q>(v.y, v.y, v.w);
-
454  }
-
455 
-
456  // yzx
-
457  template<typename T, qualifier Q>
-
458  GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<3, T, Q> &v) {
-
459  return glm::vec<3, T, Q>(v.y, v.z, v.x);
-
460  }
-
461 
-
462  template<typename T, qualifier Q>
-
463  GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<4, T, Q> &v) {
-
464  return glm::vec<3, T, Q>(v.y, v.z, v.x);
-
465  }
-
466 
-
467  // yzy
-
468  template<typename T, qualifier Q>
-
469  GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<3, T, Q> &v) {
-
470  return glm::vec<3, T, Q>(v.y, v.z, v.y);
-
471  }
-
472 
-
473  template<typename T, qualifier Q>
-
474  GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<4, T, Q> &v) {
-
475  return glm::vec<3, T, Q>(v.y, v.z, v.y);
-
476  }
-
477 
-
478  // yzz
-
479  template<typename T, qualifier Q>
-
480  GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<3, T, Q> &v) {
-
481  return glm::vec<3, T, Q>(v.y, v.z, v.z);
-
482  }
-
483 
-
484  template<typename T, qualifier Q>
-
485  GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<4, T, Q> &v) {
-
486  return glm::vec<3, T, Q>(v.y, v.z, v.z);
-
487  }
-
488 
-
489  // yzw
-
490  template<typename T, qualifier Q>
-
491  GLM_INLINE glm::vec<3, T, Q> yzw(const glm::vec<4, T, Q> &v) {
-
492  return glm::vec<3, T, Q>(v.y, v.z, v.w);
-
493  }
-
494 
-
495  // ywx
-
496  template<typename T, qualifier Q>
-
497  GLM_INLINE glm::vec<3, T, Q> ywx(const glm::vec<4, T, Q> &v) {
-
498  return glm::vec<3, T, Q>(v.y, v.w, v.x);
-
499  }
-
500 
-
501  // ywy
-
502  template<typename T, qualifier Q>
-
503  GLM_INLINE glm::vec<3, T, Q> ywy(const glm::vec<4, T, Q> &v) {
-
504  return glm::vec<3, T, Q>(v.y, v.w, v.y);
-
505  }
-
506 
-
507  // ywz
-
508  template<typename T, qualifier Q>
-
509  GLM_INLINE glm::vec<3, T, Q> ywz(const glm::vec<4, T, Q> &v) {
-
510  return glm::vec<3, T, Q>(v.y, v.w, v.z);
-
511  }
-
512 
-
513  // yww
-
514  template<typename T, qualifier Q>
-
515  GLM_INLINE glm::vec<3, T, Q> yww(const glm::vec<4, T, Q> &v) {
-
516  return glm::vec<3, T, Q>(v.y, v.w, v.w);
-
517  }
-
518 
-
519  // zxx
-
520  template<typename T, qualifier Q>
-
521  GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<3, T, Q> &v) {
-
522  return glm::vec<3, T, Q>(v.z, v.x, v.x);
-
523  }
-
524 
-
525  template<typename T, qualifier Q>
-
526  GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<4, T, Q> &v) {
-
527  return glm::vec<3, T, Q>(v.z, v.x, v.x);
-
528  }
-
529 
-
530  // zxy
-
531  template<typename T, qualifier Q>
-
532  GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<3, T, Q> &v) {
-
533  return glm::vec<3, T, Q>(v.z, v.x, v.y);
-
534  }
-
535 
-
536  template<typename T, qualifier Q>
-
537  GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<4, T, Q> &v) {
-
538  return glm::vec<3, T, Q>(v.z, v.x, v.y);
-
539  }
-
540 
-
541  // zxz
-
542  template<typename T, qualifier Q>
-
543  GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<3, T, Q> &v) {
-
544  return glm::vec<3, T, Q>(v.z, v.x, v.z);
-
545  }
-
546 
-
547  template<typename T, qualifier Q>
-
548  GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<4, T, Q> &v) {
-
549  return glm::vec<3, T, Q>(v.z, v.x, v.z);
-
550  }
-
551 
-
552  // zxw
-
553  template<typename T, qualifier Q>
-
554  GLM_INLINE glm::vec<3, T, Q> zxw(const glm::vec<4, T, Q> &v) {
-
555  return glm::vec<3, T, Q>(v.z, v.x, v.w);
-
556  }
-
557 
-
558  // zyx
-
559  template<typename T, qualifier Q>
-
560  GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<3, T, Q> &v) {
-
561  return glm::vec<3, T, Q>(v.z, v.y, v.x);
-
562  }
-
563 
-
564  template<typename T, qualifier Q>
-
565  GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<4, T, Q> &v) {
-
566  return glm::vec<3, T, Q>(v.z, v.y, v.x);
-
567  }
-
568 
-
569  // zyy
-
570  template<typename T, qualifier Q>
-
571  GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<3, T, Q> &v) {
-
572  return glm::vec<3, T, Q>(v.z, v.y, v.y);
-
573  }
-
574 
-
575  template<typename T, qualifier Q>
-
576  GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<4, T, Q> &v) {
-
577  return glm::vec<3, T, Q>(v.z, v.y, v.y);
-
578  }
-
579 
-
580  // zyz
-
581  template<typename T, qualifier Q>
-
582  GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<3, T, Q> &v) {
-
583  return glm::vec<3, T, Q>(v.z, v.y, v.z);
-
584  }
-
585 
-
586  template<typename T, qualifier Q>
-
587  GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<4, T, Q> &v) {
-
588  return glm::vec<3, T, Q>(v.z, v.y, v.z);
-
589  }
-
590 
-
591  // zyw
-
592  template<typename T, qualifier Q>
-
593  GLM_INLINE glm::vec<3, T, Q> zyw(const glm::vec<4, T, Q> &v) {
-
594  return glm::vec<3, T, Q>(v.z, v.y, v.w);
-
595  }
-
596 
-
597  // zzx
-
598  template<typename T, qualifier Q>
-
599  GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<3, T, Q> &v) {
-
600  return glm::vec<3, T, Q>(v.z, v.z, v.x);
-
601  }
-
602 
-
603  template<typename T, qualifier Q>
-
604  GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<4, T, Q> &v) {
-
605  return glm::vec<3, T, Q>(v.z, v.z, v.x);
-
606  }
-
607 
-
608  // zzy
-
609  template<typename T, qualifier Q>
-
610  GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<3, T, Q> &v) {
-
611  return glm::vec<3, T, Q>(v.z, v.z, v.y);
-
612  }
-
613 
-
614  template<typename T, qualifier Q>
-
615  GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<4, T, Q> &v) {
-
616  return glm::vec<3, T, Q>(v.z, v.z, v.y);
-
617  }
-
618 
-
619  // zzz
-
620  template<typename T, qualifier Q>
-
621  GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<3, T, Q> &v) {
-
622  return glm::vec<3, T, Q>(v.z, v.z, v.z);
-
623  }
-
624 
-
625  template<typename T, qualifier Q>
-
626  GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<4, T, Q> &v) {
-
627  return glm::vec<3, T, Q>(v.z, v.z, v.z);
-
628  }
-
629 
-
630  // zzw
-
631  template<typename T, qualifier Q>
-
632  GLM_INLINE glm::vec<3, T, Q> zzw(const glm::vec<4, T, Q> &v) {
-
633  return glm::vec<3, T, Q>(v.z, v.z, v.w);
-
634  }
-
635 
-
636  // zwx
-
637  template<typename T, qualifier Q>
-
638  GLM_INLINE glm::vec<3, T, Q> zwx(const glm::vec<4, T, Q> &v) {
-
639  return glm::vec<3, T, Q>(v.z, v.w, v.x);
-
640  }
-
641 
-
642  // zwy
-
643  template<typename T, qualifier Q>
-
644  GLM_INLINE glm::vec<3, T, Q> zwy(const glm::vec<4, T, Q> &v) {
-
645  return glm::vec<3, T, Q>(v.z, v.w, v.y);
-
646  }
-
647 
-
648  // zwz
-
649  template<typename T, qualifier Q>
-
650  GLM_INLINE glm::vec<3, T, Q> zwz(const glm::vec<4, T, Q> &v) {
-
651  return glm::vec<3, T, Q>(v.z, v.w, v.z);
-
652  }
-
653 
-
654  // zww
-
655  template<typename T, qualifier Q>
-
656  GLM_INLINE glm::vec<3, T, Q> zww(const glm::vec<4, T, Q> &v) {
-
657  return glm::vec<3, T, Q>(v.z, v.w, v.w);
-
658  }
-
659 
-
660  // wxx
-
661  template<typename T, qualifier Q>
-
662  GLM_INLINE glm::vec<3, T, Q> wxx(const glm::vec<4, T, Q> &v) {
-
663  return glm::vec<3, T, Q>(v.w, v.x, v.x);
-
664  }
-
665 
-
666  // wxy
-
667  template<typename T, qualifier Q>
-
668  GLM_INLINE glm::vec<3, T, Q> wxy(const glm::vec<4, T, Q> &v) {
-
669  return glm::vec<3, T, Q>(v.w, v.x, v.y);
-
670  }
-
671 
-
672  // wxz
-
673  template<typename T, qualifier Q>
-
674  GLM_INLINE glm::vec<3, T, Q> wxz(const glm::vec<4, T, Q> &v) {
-
675  return glm::vec<3, T, Q>(v.w, v.x, v.z);
-
676  }
-
677 
-
678  // wxw
-
679  template<typename T, qualifier Q>
-
680  GLM_INLINE glm::vec<3, T, Q> wxw(const glm::vec<4, T, Q> &v) {
-
681  return glm::vec<3, T, Q>(v.w, v.x, v.w);
-
682  }
-
683 
-
684  // wyx
-
685  template<typename T, qualifier Q>
-
686  GLM_INLINE glm::vec<3, T, Q> wyx(const glm::vec<4, T, Q> &v) {
-
687  return glm::vec<3, T, Q>(v.w, v.y, v.x);
-
688  }
-
689 
-
690  // wyy
-
691  template<typename T, qualifier Q>
-
692  GLM_INLINE glm::vec<3, T, Q> wyy(const glm::vec<4, T, Q> &v) {
-
693  return glm::vec<3, T, Q>(v.w, v.y, v.y);
-
694  }
-
695 
-
696  // wyz
-
697  template<typename T, qualifier Q>
-
698  GLM_INLINE glm::vec<3, T, Q> wyz(const glm::vec<4, T, Q> &v) {
-
699  return glm::vec<3, T, Q>(v.w, v.y, v.z);
-
700  }
-
701 
-
702  // wyw
-
703  template<typename T, qualifier Q>
-
704  GLM_INLINE glm::vec<3, T, Q> wyw(const glm::vec<4, T, Q> &v) {
-
705  return glm::vec<3, T, Q>(v.w, v.y, v.w);
-
706  }
-
707 
-
708  // wzx
-
709  template<typename T, qualifier Q>
-
710  GLM_INLINE glm::vec<3, T, Q> wzx(const glm::vec<4, T, Q> &v) {
-
711  return glm::vec<3, T, Q>(v.w, v.z, v.x);
-
712  }
-
713 
-
714  // wzy
-
715  template<typename T, qualifier Q>
-
716  GLM_INLINE glm::vec<3, T, Q> wzy(const glm::vec<4, T, Q> &v) {
-
717  return glm::vec<3, T, Q>(v.w, v.z, v.y);
-
718  }
-
719 
-
720  // wzz
-
721  template<typename T, qualifier Q>
-
722  GLM_INLINE glm::vec<3, T, Q> wzz(const glm::vec<4, T, Q> &v) {
-
723  return glm::vec<3, T, Q>(v.w, v.z, v.z);
-
724  }
-
725 
-
726  // wzw
-
727  template<typename T, qualifier Q>
-
728  GLM_INLINE glm::vec<3, T, Q> wzw(const glm::vec<4, T, Q> &v) {
-
729  return glm::vec<3, T, Q>(v.w, v.z, v.w);
-
730  }
-
731 
-
732  // wwx
-
733  template<typename T, qualifier Q>
-
734  GLM_INLINE glm::vec<3, T, Q> wwx(const glm::vec<4, T, Q> &v) {
-
735  return glm::vec<3, T, Q>(v.w, v.w, v.x);
-
736  }
-
737 
-
738  // wwy
-
739  template<typename T, qualifier Q>
-
740  GLM_INLINE glm::vec<3, T, Q> wwy(const glm::vec<4, T, Q> &v) {
-
741  return glm::vec<3, T, Q>(v.w, v.w, v.y);
-
742  }
-
743 
-
744  // wwz
-
745  template<typename T, qualifier Q>
-
746  GLM_INLINE glm::vec<3, T, Q> wwz(const glm::vec<4, T, Q> &v) {
-
747  return glm::vec<3, T, Q>(v.w, v.w, v.z);
-
748  }
-
749 
-
750  // www
-
751  template<typename T, qualifier Q>
-
752  GLM_INLINE glm::vec<3, T, Q> www(const glm::vec<4, T, Q> &v) {
-
753  return glm::vec<3, T, Q>(v.w, v.w, v.w);
-
754  }
-
755 
-
756  // xxxx
-
757  template<typename T, qualifier Q>
-
758  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<1, T, Q> &v) {
-
759  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
760  }
-
761 
-
762  template<typename T, qualifier Q>
-
763  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<2, T, Q> &v) {
-
764  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
765  }
-
766 
-
767  template<typename T, qualifier Q>
-
768  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<3, T, Q> &v) {
-
769  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
770  }
-
771 
-
772  template<typename T, qualifier Q>
-
773  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<4, T, Q> &v) {
-
774  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
775  }
-
776 
-
777  // xxxy
-
778  template<typename T, qualifier Q>
-
779  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<2, T, Q> &v) {
-
780  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
-
781  }
-
782 
-
783  template<typename T, qualifier Q>
-
784  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<3, T, Q> &v) {
-
785  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
-
786  }
-
787 
-
788  template<typename T, qualifier Q>
-
789  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<4, T, Q> &v) {
-
790  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
-
791  }
-
792 
-
793  // xxxz
-
794  template<typename T, qualifier Q>
-
795  GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<3, T, Q> &v) {
-
796  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
-
797  }
-
798 
-
799  template<typename T, qualifier Q>
-
800  GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<4, T, Q> &v) {
-
801  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
-
802  }
-
803 
-
804  // xxxw
-
805  template<typename T, qualifier Q>
-
806  GLM_INLINE glm::vec<4, T, Q> xxxw(const glm::vec<4, T, Q> &v) {
-
807  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.w);
-
808  }
-
809 
-
810  // xxyx
-
811  template<typename T, qualifier Q>
-
812  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<2, T, Q> &v) {
-
813  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
-
814  }
-
815 
-
816  template<typename T, qualifier Q>
-
817  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<3, T, Q> &v) {
-
818  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
-
819  }
-
820 
-
821  template<typename T, qualifier Q>
-
822  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<4, T, Q> &v) {
-
823  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
-
824  }
-
825 
-
826  // xxyy
-
827  template<typename T, qualifier Q>
-
828  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<2, T, Q> &v) {
-
829  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
-
830  }
-
831 
-
832  template<typename T, qualifier Q>
-
833  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<3, T, Q> &v) {
-
834  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
-
835  }
-
836 
-
837  template<typename T, qualifier Q>
-
838  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<4, T, Q> &v) {
-
839  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
-
840  }
-
841 
-
842  // xxyz
-
843  template<typename T, qualifier Q>
-
844  GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<3, T, Q> &v) {
-
845  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
-
846  }
-
847 
-
848  template<typename T, qualifier Q>
-
849  GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<4, T, Q> &v) {
-
850  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
-
851  }
-
852 
-
853  // xxyw
-
854  template<typename T, qualifier Q>
-
855  GLM_INLINE glm::vec<4, T, Q> xxyw(const glm::vec<4, T, Q> &v) {
-
856  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.w);
-
857  }
-
858 
-
859  // xxzx
-
860  template<typename T, qualifier Q>
-
861  GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<3, T, Q> &v) {
-
862  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
-
863  }
-
864 
-
865  template<typename T, qualifier Q>
-
866  GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<4, T, Q> &v) {
-
867  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
-
868  }
-
869 
-
870  // xxzy
-
871  template<typename T, qualifier Q>
-
872  GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<3, T, Q> &v) {
-
873  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
-
874  }
-
875 
-
876  template<typename T, qualifier Q>
-
877  GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<4, T, Q> &v) {
-
878  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
-
879  }
-
880 
-
881  // xxzz
-
882  template<typename T, qualifier Q>
-
883  GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<3, T, Q> &v) {
-
884  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
-
885  }
-
886 
-
887  template<typename T, qualifier Q>
-
888  GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<4, T, Q> &v) {
-
889  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
-
890  }
-
891 
-
892  // xxzw
-
893  template<typename T, qualifier Q>
-
894  GLM_INLINE glm::vec<4, T, Q> xxzw(const glm::vec<4, T, Q> &v) {
-
895  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.w);
-
896  }
-
897 
-
898  // xxwx
-
899  template<typename T, qualifier Q>
-
900  GLM_INLINE glm::vec<4, T, Q> xxwx(const glm::vec<4, T, Q> &v) {
-
901  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.x);
-
902  }
-
903 
-
904  // xxwy
-
905  template<typename T, qualifier Q>
-
906  GLM_INLINE glm::vec<4, T, Q> xxwy(const glm::vec<4, T, Q> &v) {
-
907  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.y);
-
908  }
-
909 
-
910  // xxwz
-
911  template<typename T, qualifier Q>
-
912  GLM_INLINE glm::vec<4, T, Q> xxwz(const glm::vec<4, T, Q> &v) {
-
913  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.z);
-
914  }
-
915 
-
916  // xxww
-
917  template<typename T, qualifier Q>
-
918  GLM_INLINE glm::vec<4, T, Q> xxww(const glm::vec<4, T, Q> &v) {
-
919  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.w);
-
920  }
-
921 
-
922  // xyxx
-
923  template<typename T, qualifier Q>
-
924  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<2, T, Q> &v) {
-
925  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
-
926  }
-
927 
-
928  template<typename T, qualifier Q>
-
929  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<3, T, Q> &v) {
-
930  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
-
931  }
-
932 
-
933  template<typename T, qualifier Q>
-
934  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<4, T, Q> &v) {
-
935  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
-
936  }
-
937 
-
938  // xyxy
-
939  template<typename T, qualifier Q>
-
940  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<2, T, Q> &v) {
-
941  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
-
942  }
-
943 
-
944  template<typename T, qualifier Q>
-
945  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<3, T, Q> &v) {
-
946  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
-
947  }
-
948 
-
949  template<typename T, qualifier Q>
-
950  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<4, T, Q> &v) {
-
951  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
-
952  }
-
953 
-
954  // xyxz
-
955  template<typename T, qualifier Q>
-
956  GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<3, T, Q> &v) {
-
957  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
-
958  }
-
959 
-
960  template<typename T, qualifier Q>
-
961  GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<4, T, Q> &v) {
-
962  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
-
963  }
-
964 
-
965  // xyxw
-
966  template<typename T, qualifier Q>
-
967  GLM_INLINE glm::vec<4, T, Q> xyxw(const glm::vec<4, T, Q> &v) {
-
968  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.w);
-
969  }
-
970 
-
971  // xyyx
-
972  template<typename T, qualifier Q>
-
973  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<2, T, Q> &v) {
-
974  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
-
975  }
-
976 
-
977  template<typename T, qualifier Q>
-
978  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<3, T, Q> &v) {
-
979  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
-
980  }
-
981 
-
982  template<typename T, qualifier Q>
-
983  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<4, T, Q> &v) {
-
984  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
-
985  }
-
986 
-
987  // xyyy
-
988  template<typename T, qualifier Q>
-
989  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<2, T, Q> &v) {
-
990  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
-
991  }
-
992 
-
993  template<typename T, qualifier Q>
-
994  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<3, T, Q> &v) {
-
995  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
-
996  }
-
997 
-
998  template<typename T, qualifier Q>
-
999  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<4, T, Q> &v) {
-
1000  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
-
1001  }
-
1002 
-
1003  // xyyz
-
1004  template<typename T, qualifier Q>
-
1005  GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<3, T, Q> &v) {
-
1006  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
-
1007  }
-
1008 
-
1009  template<typename T, qualifier Q>
-
1010  GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<4, T, Q> &v) {
-
1011  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
-
1012  }
-
1013 
-
1014  // xyyw
-
1015  template<typename T, qualifier Q>
-
1016  GLM_INLINE glm::vec<4, T, Q> xyyw(const glm::vec<4, T, Q> &v) {
-
1017  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.w);
-
1018  }
-
1019 
-
1020  // xyzx
-
1021  template<typename T, qualifier Q>
-
1022  GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<3, T, Q> &v) {
-
1023  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
-
1024  }
-
1025 
-
1026  template<typename T, qualifier Q>
-
1027  GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<4, T, Q> &v) {
-
1028  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
-
1029  }
-
1030 
-
1031  // xyzy
-
1032  template<typename T, qualifier Q>
-
1033  GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<3, T, Q> &v) {
-
1034  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
-
1035  }
-
1036 
-
1037  template<typename T, qualifier Q>
-
1038  GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<4, T, Q> &v) {
-
1039  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
-
1040  }
-
1041 
-
1042  // xyzz
-
1043  template<typename T, qualifier Q>
-
1044  GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<3, T, Q> &v) {
-
1045  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
-
1046  }
-
1047 
-
1048  template<typename T, qualifier Q>
-
1049  GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<4, T, Q> &v) {
-
1050  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
-
1051  }
-
1052 
-
1053  // xyzw
-
1054  template<typename T, qualifier Q>
-
1055  GLM_INLINE glm::vec<4, T, Q> xyzw(const glm::vec<4, T, Q> &v) {
-
1056  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.w);
-
1057  }
-
1058 
-
1059  // xywx
-
1060  template<typename T, qualifier Q>
-
1061  GLM_INLINE glm::vec<4, T, Q> xywx(const glm::vec<4, T, Q> &v) {
-
1062  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.x);
-
1063  }
-
1064 
-
1065  // xywy
-
1066  template<typename T, qualifier Q>
-
1067  GLM_INLINE glm::vec<4, T, Q> xywy(const glm::vec<4, T, Q> &v) {
-
1068  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.y);
-
1069  }
-
1070 
-
1071  // xywz
-
1072  template<typename T, qualifier Q>
-
1073  GLM_INLINE glm::vec<4, T, Q> xywz(const glm::vec<4, T, Q> &v) {
-
1074  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.z);
-
1075  }
-
1076 
-
1077  // xyww
-
1078  template<typename T, qualifier Q>
-
1079  GLM_INLINE glm::vec<4, T, Q> xyww(const glm::vec<4, T, Q> &v) {
-
1080  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.w);
-
1081  }
-
1082 
-
1083  // xzxx
-
1084  template<typename T, qualifier Q>
-
1085  GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<3, T, Q> &v) {
-
1086  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
-
1087  }
-
1088 
-
1089  template<typename T, qualifier Q>
-
1090  GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<4, T, Q> &v) {
-
1091  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
-
1092  }
-
1093 
-
1094  // xzxy
-
1095  template<typename T, qualifier Q>
-
1096  GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<3, T, Q> &v) {
-
1097  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
-
1098  }
-
1099 
-
1100  template<typename T, qualifier Q>
-
1101  GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<4, T, Q> &v) {
-
1102  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
-
1103  }
-
1104 
-
1105  // xzxz
-
1106  template<typename T, qualifier Q>
-
1107  GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<3, T, Q> &v) {
-
1108  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
-
1109  }
-
1110 
-
1111  template<typename T, qualifier Q>
-
1112  GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<4, T, Q> &v) {
-
1113  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
-
1114  }
-
1115 
-
1116  // xzxw
-
1117  template<typename T, qualifier Q>
-
1118  GLM_INLINE glm::vec<4, T, Q> xzxw(const glm::vec<4, T, Q> &v) {
-
1119  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.w);
-
1120  }
-
1121 
-
1122  // xzyx
-
1123  template<typename T, qualifier Q>
-
1124  GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<3, T, Q> &v) {
-
1125  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
-
1126  }
-
1127 
-
1128  template<typename T, qualifier Q>
-
1129  GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<4, T, Q> &v) {
-
1130  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
-
1131  }
-
1132 
-
1133  // xzyy
-
1134  template<typename T, qualifier Q>
-
1135  GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<3, T, Q> &v) {
-
1136  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
-
1137  }
-
1138 
-
1139  template<typename T, qualifier Q>
-
1140  GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<4, T, Q> &v) {
-
1141  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
-
1142  }
-
1143 
-
1144  // xzyz
-
1145  template<typename T, qualifier Q>
-
1146  GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<3, T, Q> &v) {
-
1147  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
-
1148  }
-
1149 
-
1150  template<typename T, qualifier Q>
-
1151  GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<4, T, Q> &v) {
-
1152  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
-
1153  }
-
1154 
-
1155  // xzyw
-
1156  template<typename T, qualifier Q>
-
1157  GLM_INLINE glm::vec<4, T, Q> xzyw(const glm::vec<4, T, Q> &v) {
-
1158  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.w);
-
1159  }
-
1160 
-
1161  // xzzx
-
1162  template<typename T, qualifier Q>
-
1163  GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<3, T, Q> &v) {
-
1164  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
-
1165  }
-
1166 
-
1167  template<typename T, qualifier Q>
-
1168  GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<4, T, Q> &v) {
-
1169  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
-
1170  }
-
1171 
-
1172  // xzzy
-
1173  template<typename T, qualifier Q>
-
1174  GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<3, T, Q> &v) {
-
1175  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
-
1176  }
-
1177 
-
1178  template<typename T, qualifier Q>
-
1179  GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<4, T, Q> &v) {
-
1180  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
-
1181  }
-
1182 
-
1183  // xzzz
-
1184  template<typename T, qualifier Q>
-
1185  GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<3, T, Q> &v) {
-
1186  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
-
1187  }
-
1188 
-
1189  template<typename T, qualifier Q>
-
1190  GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<4, T, Q> &v) {
-
1191  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
-
1192  }
-
1193 
-
1194  // xzzw
-
1195  template<typename T, qualifier Q>
-
1196  GLM_INLINE glm::vec<4, T, Q> xzzw(const glm::vec<4, T, Q> &v) {
-
1197  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.w);
-
1198  }
-
1199 
-
1200  // xzwx
-
1201  template<typename T, qualifier Q>
-
1202  GLM_INLINE glm::vec<4, T, Q> xzwx(const glm::vec<4, T, Q> &v) {
-
1203  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.x);
-
1204  }
-
1205 
-
1206  // xzwy
-
1207  template<typename T, qualifier Q>
-
1208  GLM_INLINE glm::vec<4, T, Q> xzwy(const glm::vec<4, T, Q> &v) {
-
1209  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.y);
-
1210  }
-
1211 
-
1212  // xzwz
-
1213  template<typename T, qualifier Q>
-
1214  GLM_INLINE glm::vec<4, T, Q> xzwz(const glm::vec<4, T, Q> &v) {
-
1215  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.z);
-
1216  }
-
1217 
-
1218  // xzww
-
1219  template<typename T, qualifier Q>
-
1220  GLM_INLINE glm::vec<4, T, Q> xzww(const glm::vec<4, T, Q> &v) {
-
1221  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.w);
-
1222  }
-
1223 
-
1224  // xwxx
-
1225  template<typename T, qualifier Q>
-
1226  GLM_INLINE glm::vec<4, T, Q> xwxx(const glm::vec<4, T, Q> &v) {
-
1227  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.x);
-
1228  }
-
1229 
-
1230  // xwxy
-
1231  template<typename T, qualifier Q>
-
1232  GLM_INLINE glm::vec<4, T, Q> xwxy(const glm::vec<4, T, Q> &v) {
-
1233  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.y);
-
1234  }
-
1235 
-
1236  // xwxz
-
1237  template<typename T, qualifier Q>
-
1238  GLM_INLINE glm::vec<4, T, Q> xwxz(const glm::vec<4, T, Q> &v) {
-
1239  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.z);
-
1240  }
-
1241 
-
1242  // xwxw
-
1243  template<typename T, qualifier Q>
-
1244  GLM_INLINE glm::vec<4, T, Q> xwxw(const glm::vec<4, T, Q> &v) {
-
1245  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.w);
-
1246  }
-
1247 
-
1248  // xwyx
-
1249  template<typename T, qualifier Q>
-
1250  GLM_INLINE glm::vec<4, T, Q> xwyx(const glm::vec<4, T, Q> &v) {
-
1251  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.x);
-
1252  }
-
1253 
-
1254  // xwyy
-
1255  template<typename T, qualifier Q>
-
1256  GLM_INLINE glm::vec<4, T, Q> xwyy(const glm::vec<4, T, Q> &v) {
-
1257  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.y);
-
1258  }
-
1259 
-
1260  // xwyz
-
1261  template<typename T, qualifier Q>
-
1262  GLM_INLINE glm::vec<4, T, Q> xwyz(const glm::vec<4, T, Q> &v) {
-
1263  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.z);
-
1264  }
-
1265 
-
1266  // xwyw
-
1267  template<typename T, qualifier Q>
-
1268  GLM_INLINE glm::vec<4, T, Q> xwyw(const glm::vec<4, T, Q> &v) {
-
1269  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.w);
-
1270  }
-
1271 
-
1272  // xwzx
-
1273  template<typename T, qualifier Q>
-
1274  GLM_INLINE glm::vec<4, T, Q> xwzx(const glm::vec<4, T, Q> &v) {
-
1275  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.x);
-
1276  }
-
1277 
-
1278  // xwzy
-
1279  template<typename T, qualifier Q>
-
1280  GLM_INLINE glm::vec<4, T, Q> xwzy(const glm::vec<4, T, Q> &v) {
-
1281  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.y);
-
1282  }
-
1283 
-
1284  // xwzz
-
1285  template<typename T, qualifier Q>
-
1286  GLM_INLINE glm::vec<4, T, Q> xwzz(const glm::vec<4, T, Q> &v) {
-
1287  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.z);
-
1288  }
-
1289 
-
1290  // xwzw
-
1291  template<typename T, qualifier Q>
-
1292  GLM_INLINE glm::vec<4, T, Q> xwzw(const glm::vec<4, T, Q> &v) {
-
1293  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.w);
-
1294  }
-
1295 
-
1296  // xwwx
-
1297  template<typename T, qualifier Q>
-
1298  GLM_INLINE glm::vec<4, T, Q> xwwx(const glm::vec<4, T, Q> &v) {
-
1299  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.x);
-
1300  }
-
1301 
-
1302  // xwwy
-
1303  template<typename T, qualifier Q>
-
1304  GLM_INLINE glm::vec<4, T, Q> xwwy(const glm::vec<4, T, Q> &v) {
-
1305  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.y);
-
1306  }
-
1307 
-
1308  // xwwz
-
1309  template<typename T, qualifier Q>
-
1310  GLM_INLINE glm::vec<4, T, Q> xwwz(const glm::vec<4, T, Q> &v) {
-
1311  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.z);
-
1312  }
-
1313 
-
1314  // xwww
-
1315  template<typename T, qualifier Q>
-
1316  GLM_INLINE glm::vec<4, T, Q> xwww(const glm::vec<4, T, Q> &v) {
-
1317  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.w);
-
1318  }
-
1319 
-
1320  // yxxx
-
1321  template<typename T, qualifier Q>
-
1322  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<2, T, Q> &v) {
-
1323  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
-
1324  }
-
1325 
-
1326  template<typename T, qualifier Q>
-
1327  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<3, T, Q> &v) {
-
1328  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
-
1329  }
-
1330 
-
1331  template<typename T, qualifier Q>
-
1332  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<4, T, Q> &v) {
-
1333  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
-
1334  }
-
1335 
-
1336  // yxxy
-
1337  template<typename T, qualifier Q>
-
1338  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<2, T, Q> &v) {
-
1339  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
-
1340  }
-
1341 
-
1342  template<typename T, qualifier Q>
-
1343  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<3, T, Q> &v) {
-
1344  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
-
1345  }
-
1346 
-
1347  template<typename T, qualifier Q>
-
1348  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<4, T, Q> &v) {
-
1349  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
-
1350  }
-
1351 
-
1352  // yxxz
-
1353  template<typename T, qualifier Q>
-
1354  GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<3, T, Q> &v) {
-
1355  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
-
1356  }
-
1357 
-
1358  template<typename T, qualifier Q>
-
1359  GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<4, T, Q> &v) {
-
1360  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
-
1361  }
-
1362 
-
1363  // yxxw
-
1364  template<typename T, qualifier Q>
-
1365  GLM_INLINE glm::vec<4, T, Q> yxxw(const glm::vec<4, T, Q> &v) {
-
1366  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.w);
-
1367  }
-
1368 
-
1369  // yxyx
-
1370  template<typename T, qualifier Q>
-
1371  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<2, T, Q> &v) {
-
1372  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
-
1373  }
-
1374 
-
1375  template<typename T, qualifier Q>
-
1376  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<3, T, Q> &v) {
-
1377  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
-
1378  }
-
1379 
-
1380  template<typename T, qualifier Q>
-
1381  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<4, T, Q> &v) {
-
1382  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
-
1383  }
-
1384 
-
1385  // yxyy
-
1386  template<typename T, qualifier Q>
-
1387  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<2, T, Q> &v) {
-
1388  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
-
1389  }
-
1390 
-
1391  template<typename T, qualifier Q>
-
1392  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<3, T, Q> &v) {
-
1393  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
-
1394  }
-
1395 
-
1396  template<typename T, qualifier Q>
-
1397  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<4, T, Q> &v) {
-
1398  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
-
1399  }
-
1400 
-
1401  // yxyz
-
1402  template<typename T, qualifier Q>
-
1403  GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<3, T, Q> &v) {
-
1404  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
-
1405  }
-
1406 
-
1407  template<typename T, qualifier Q>
-
1408  GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<4, T, Q> &v) {
-
1409  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
-
1410  }
-
1411 
-
1412  // yxyw
-
1413  template<typename T, qualifier Q>
-
1414  GLM_INLINE glm::vec<4, T, Q> yxyw(const glm::vec<4, T, Q> &v) {
-
1415  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.w);
-
1416  }
-
1417 
-
1418  // yxzx
-
1419  template<typename T, qualifier Q>
-
1420  GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<3, T, Q> &v) {
-
1421  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
-
1422  }
-
1423 
-
1424  template<typename T, qualifier Q>
-
1425  GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<4, T, Q> &v) {
-
1426  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
-
1427  }
-
1428 
-
1429  // yxzy
-
1430  template<typename T, qualifier Q>
-
1431  GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<3, T, Q> &v) {
-
1432  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
-
1433  }
-
1434 
-
1435  template<typename T, qualifier Q>
-
1436  GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<4, T, Q> &v) {
-
1437  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
-
1438  }
-
1439 
-
1440  // yxzz
-
1441  template<typename T, qualifier Q>
-
1442  GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<3, T, Q> &v) {
-
1443  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
-
1444  }
-
1445 
-
1446  template<typename T, qualifier Q>
-
1447  GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<4, T, Q> &v) {
-
1448  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
-
1449  }
-
1450 
-
1451  // yxzw
-
1452  template<typename T, qualifier Q>
-
1453  GLM_INLINE glm::vec<4, T, Q> yxzw(const glm::vec<4, T, Q> &v) {
-
1454  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.w);
-
1455  }
-
1456 
-
1457  // yxwx
-
1458  template<typename T, qualifier Q>
-
1459  GLM_INLINE glm::vec<4, T, Q> yxwx(const glm::vec<4, T, Q> &v) {
-
1460  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.x);
-
1461  }
-
1462 
-
1463  // yxwy
-
1464  template<typename T, qualifier Q>
-
1465  GLM_INLINE glm::vec<4, T, Q> yxwy(const glm::vec<4, T, Q> &v) {
-
1466  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.y);
-
1467  }
-
1468 
-
1469  // yxwz
-
1470  template<typename T, qualifier Q>
-
1471  GLM_INLINE glm::vec<4, T, Q> yxwz(const glm::vec<4, T, Q> &v) {
-
1472  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.z);
-
1473  }
-
1474 
-
1475  // yxww
-
1476  template<typename T, qualifier Q>
-
1477  GLM_INLINE glm::vec<4, T, Q> yxww(const glm::vec<4, T, Q> &v) {
-
1478  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.w);
-
1479  }
-
1480 
-
1481  // yyxx
-
1482  template<typename T, qualifier Q>
-
1483  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<2, T, Q> &v) {
-
1484  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
-
1485  }
-
1486 
-
1487  template<typename T, qualifier Q>
-
1488  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<3, T, Q> &v) {
-
1489  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
-
1490  }
-
1491 
-
1492  template<typename T, qualifier Q>
-
1493  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<4, T, Q> &v) {
-
1494  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
-
1495  }
-
1496 
-
1497  // yyxy
-
1498  template<typename T, qualifier Q>
-
1499  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<2, T, Q> &v) {
-
1500  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
-
1501  }
-
1502 
-
1503  template<typename T, qualifier Q>
-
1504  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<3, T, Q> &v) {
-
1505  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
-
1506  }
-
1507 
-
1508  template<typename T, qualifier Q>
-
1509  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<4, T, Q> &v) {
-
1510  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
-
1511  }
-
1512 
-
1513  // yyxz
-
1514  template<typename T, qualifier Q>
-
1515  GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<3, T, Q> &v) {
-
1516  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
-
1517  }
-
1518 
-
1519  template<typename T, qualifier Q>
-
1520  GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<4, T, Q> &v) {
-
1521  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
-
1522  }
-
1523 
-
1524  // yyxw
-
1525  template<typename T, qualifier Q>
-
1526  GLM_INLINE glm::vec<4, T, Q> yyxw(const glm::vec<4, T, Q> &v) {
-
1527  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.w);
-
1528  }
-
1529 
-
1530  // yyyx
-
1531  template<typename T, qualifier Q>
-
1532  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<2, T, Q> &v) {
-
1533  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
-
1534  }
-
1535 
-
1536  template<typename T, qualifier Q>
-
1537  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<3, T, Q> &v) {
-
1538  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
-
1539  }
-
1540 
-
1541  template<typename T, qualifier Q>
-
1542  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<4, T, Q> &v) {
-
1543  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
-
1544  }
-
1545 
-
1546  // yyyy
-
1547  template<typename T, qualifier Q>
-
1548  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<2, T, Q> &v) {
-
1549  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
-
1550  }
-
1551 
-
1552  template<typename T, qualifier Q>
-
1553  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<3, T, Q> &v) {
-
1554  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
-
1555  }
-
1556 
-
1557  template<typename T, qualifier Q>
-
1558  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<4, T, Q> &v) {
-
1559  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
-
1560  }
-
1561 
-
1562  // yyyz
-
1563  template<typename T, qualifier Q>
-
1564  GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<3, T, Q> &v) {
-
1565  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
-
1566  }
-
1567 
-
1568  template<typename T, qualifier Q>
-
1569  GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<4, T, Q> &v) {
-
1570  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
-
1571  }
-
1572 
-
1573  // yyyw
-
1574  template<typename T, qualifier Q>
-
1575  GLM_INLINE glm::vec<4, T, Q> yyyw(const glm::vec<4, T, Q> &v) {
-
1576  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.w);
-
1577  }
-
1578 
-
1579  // yyzx
-
1580  template<typename T, qualifier Q>
-
1581  GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<3, T, Q> &v) {
-
1582  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
-
1583  }
-
1584 
-
1585  template<typename T, qualifier Q>
-
1586  GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<4, T, Q> &v) {
-
1587  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
-
1588  }
-
1589 
-
1590  // yyzy
-
1591  template<typename T, qualifier Q>
-
1592  GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<3, T, Q> &v) {
-
1593  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
-
1594  }
-
1595 
-
1596  template<typename T, qualifier Q>
-
1597  GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<4, T, Q> &v) {
-
1598  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
-
1599  }
-
1600 
-
1601  // yyzz
-
1602  template<typename T, qualifier Q>
-
1603  GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<3, T, Q> &v) {
-
1604  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
-
1605  }
-
1606 
-
1607  template<typename T, qualifier Q>
-
1608  GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<4, T, Q> &v) {
-
1609  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
-
1610  }
-
1611 
-
1612  // yyzw
-
1613  template<typename T, qualifier Q>
-
1614  GLM_INLINE glm::vec<4, T, Q> yyzw(const glm::vec<4, T, Q> &v) {
-
1615  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.w);
-
1616  }
-
1617 
-
1618  // yywx
-
1619  template<typename T, qualifier Q>
-
1620  GLM_INLINE glm::vec<4, T, Q> yywx(const glm::vec<4, T, Q> &v) {
-
1621  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.x);
-
1622  }
-
1623 
-
1624  // yywy
-
1625  template<typename T, qualifier Q>
-
1626  GLM_INLINE glm::vec<4, T, Q> yywy(const glm::vec<4, T, Q> &v) {
-
1627  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.y);
-
1628  }
-
1629 
-
1630  // yywz
-
1631  template<typename T, qualifier Q>
-
1632  GLM_INLINE glm::vec<4, T, Q> yywz(const glm::vec<4, T, Q> &v) {
-
1633  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.z);
-
1634  }
-
1635 
-
1636  // yyww
-
1637  template<typename T, qualifier Q>
-
1638  GLM_INLINE glm::vec<4, T, Q> yyww(const glm::vec<4, T, Q> &v) {
-
1639  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.w);
-
1640  }
-
1641 
-
1642  // yzxx
-
1643  template<typename T, qualifier Q>
-
1644  GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<3, T, Q> &v) {
-
1645  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
-
1646  }
-
1647 
-
1648  template<typename T, qualifier Q>
-
1649  GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<4, T, Q> &v) {
-
1650  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
-
1651  }
-
1652 
-
1653  // yzxy
-
1654  template<typename T, qualifier Q>
-
1655  GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<3, T, Q> &v) {
-
1656  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
-
1657  }
-
1658 
-
1659  template<typename T, qualifier Q>
-
1660  GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<4, T, Q> &v) {
-
1661  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
-
1662  }
-
1663 
-
1664  // yzxz
-
1665  template<typename T, qualifier Q>
-
1666  GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<3, T, Q> &v) {
-
1667  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
-
1668  }
-
1669 
-
1670  template<typename T, qualifier Q>
-
1671  GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<4, T, Q> &v) {
-
1672  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
-
1673  }
-
1674 
-
1675  // yzxw
-
1676  template<typename T, qualifier Q>
-
1677  GLM_INLINE glm::vec<4, T, Q> yzxw(const glm::vec<4, T, Q> &v) {
-
1678  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.w);
-
1679  }
-
1680 
-
1681  // yzyx
-
1682  template<typename T, qualifier Q>
-
1683  GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<3, T, Q> &v) {
-
1684  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
-
1685  }
-
1686 
-
1687  template<typename T, qualifier Q>
-
1688  GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<4, T, Q> &v) {
-
1689  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
-
1690  }
-
1691 
-
1692  // yzyy
-
1693  template<typename T, qualifier Q>
-
1694  GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<3, T, Q> &v) {
-
1695  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
-
1696  }
-
1697 
-
1698  template<typename T, qualifier Q>
-
1699  GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<4, T, Q> &v) {
-
1700  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
-
1701  }
-
1702 
-
1703  // yzyz
-
1704  template<typename T, qualifier Q>
-
1705  GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<3, T, Q> &v) {
-
1706  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
-
1707  }
-
1708 
-
1709  template<typename T, qualifier Q>
-
1710  GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<4, T, Q> &v) {
-
1711  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
-
1712  }
-
1713 
-
1714  // yzyw
-
1715  template<typename T, qualifier Q>
-
1716  GLM_INLINE glm::vec<4, T, Q> yzyw(const glm::vec<4, T, Q> &v) {
-
1717  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.w);
-
1718  }
-
1719 
-
1720  // yzzx
-
1721  template<typename T, qualifier Q>
-
1722  GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<3, T, Q> &v) {
-
1723  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
-
1724  }
-
1725 
-
1726  template<typename T, qualifier Q>
-
1727  GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<4, T, Q> &v) {
-
1728  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
-
1729  }
-
1730 
-
1731  // yzzy
-
1732  template<typename T, qualifier Q>
-
1733  GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<3, T, Q> &v) {
-
1734  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
-
1735  }
-
1736 
-
1737  template<typename T, qualifier Q>
-
1738  GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<4, T, Q> &v) {
-
1739  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
-
1740  }
-
1741 
-
1742  // yzzz
-
1743  template<typename T, qualifier Q>
-
1744  GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<3, T, Q> &v) {
-
1745  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
-
1746  }
-
1747 
-
1748  template<typename T, qualifier Q>
-
1749  GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<4, T, Q> &v) {
-
1750  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
-
1751  }
-
1752 
-
1753  // yzzw
-
1754  template<typename T, qualifier Q>
-
1755  GLM_INLINE glm::vec<4, T, Q> yzzw(const glm::vec<4, T, Q> &v) {
-
1756  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.w);
-
1757  }
-
1758 
-
1759  // yzwx
-
1760  template<typename T, qualifier Q>
-
1761  GLM_INLINE glm::vec<4, T, Q> yzwx(const glm::vec<4, T, Q> &v) {
-
1762  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.x);
-
1763  }
-
1764 
-
1765  // yzwy
-
1766  template<typename T, qualifier Q>
-
1767  GLM_INLINE glm::vec<4, T, Q> yzwy(const glm::vec<4, T, Q> &v) {
-
1768  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.y);
-
1769  }
-
1770 
-
1771  // yzwz
-
1772  template<typename T, qualifier Q>
-
1773  GLM_INLINE glm::vec<4, T, Q> yzwz(const glm::vec<4, T, Q> &v) {
-
1774  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.z);
-
1775  }
-
1776 
-
1777  // yzww
-
1778  template<typename T, qualifier Q>
-
1779  GLM_INLINE glm::vec<4, T, Q> yzww(const glm::vec<4, T, Q> &v) {
-
1780  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.w);
-
1781  }
-
1782 
-
1783  // ywxx
-
1784  template<typename T, qualifier Q>
-
1785  GLM_INLINE glm::vec<4, T, Q> ywxx(const glm::vec<4, T, Q> &v) {
-
1786  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.x);
-
1787  }
-
1788 
-
1789  // ywxy
-
1790  template<typename T, qualifier Q>
-
1791  GLM_INLINE glm::vec<4, T, Q> ywxy(const glm::vec<4, T, Q> &v) {
-
1792  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.y);
-
1793  }
-
1794 
-
1795  // ywxz
-
1796  template<typename T, qualifier Q>
-
1797  GLM_INLINE glm::vec<4, T, Q> ywxz(const glm::vec<4, T, Q> &v) {
-
1798  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.z);
-
1799  }
-
1800 
-
1801  // ywxw
-
1802  template<typename T, qualifier Q>
-
1803  GLM_INLINE glm::vec<4, T, Q> ywxw(const glm::vec<4, T, Q> &v) {
-
1804  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.w);
-
1805  }
-
1806 
-
1807  // ywyx
-
1808  template<typename T, qualifier Q>
-
1809  GLM_INLINE glm::vec<4, T, Q> ywyx(const glm::vec<4, T, Q> &v) {
-
1810  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.x);
-
1811  }
-
1812 
-
1813  // ywyy
-
1814  template<typename T, qualifier Q>
-
1815  GLM_INLINE glm::vec<4, T, Q> ywyy(const glm::vec<4, T, Q> &v) {
-
1816  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.y);
-
1817  }
-
1818 
-
1819  // ywyz
-
1820  template<typename T, qualifier Q>
-
1821  GLM_INLINE glm::vec<4, T, Q> ywyz(const glm::vec<4, T, Q> &v) {
-
1822  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.z);
-
1823  }
-
1824 
-
1825  // ywyw
-
1826  template<typename T, qualifier Q>
-
1827  GLM_INLINE glm::vec<4, T, Q> ywyw(const glm::vec<4, T, Q> &v) {
-
1828  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.w);
-
1829  }
-
1830 
-
1831  // ywzx
-
1832  template<typename T, qualifier Q>
-
1833  GLM_INLINE glm::vec<4, T, Q> ywzx(const glm::vec<4, T, Q> &v) {
-
1834  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.x);
-
1835  }
-
1836 
-
1837  // ywzy
-
1838  template<typename T, qualifier Q>
-
1839  GLM_INLINE glm::vec<4, T, Q> ywzy(const glm::vec<4, T, Q> &v) {
-
1840  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.y);
-
1841  }
-
1842 
-
1843  // ywzz
-
1844  template<typename T, qualifier Q>
-
1845  GLM_INLINE glm::vec<4, T, Q> ywzz(const glm::vec<4, T, Q> &v) {
-
1846  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.z);
-
1847  }
-
1848 
-
1849  // ywzw
-
1850  template<typename T, qualifier Q>
-
1851  GLM_INLINE glm::vec<4, T, Q> ywzw(const glm::vec<4, T, Q> &v) {
-
1852  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.w);
-
1853  }
-
1854 
-
1855  // ywwx
-
1856  template<typename T, qualifier Q>
-
1857  GLM_INLINE glm::vec<4, T, Q> ywwx(const glm::vec<4, T, Q> &v) {
-
1858  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.x);
-
1859  }
-
1860 
-
1861  // ywwy
-
1862  template<typename T, qualifier Q>
-
1863  GLM_INLINE glm::vec<4, T, Q> ywwy(const glm::vec<4, T, Q> &v) {
-
1864  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.y);
-
1865  }
-
1866 
-
1867  // ywwz
-
1868  template<typename T, qualifier Q>
-
1869  GLM_INLINE glm::vec<4, T, Q> ywwz(const glm::vec<4, T, Q> &v) {
-
1870  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.z);
-
1871  }
-
1872 
-
1873  // ywww
-
1874  template<typename T, qualifier Q>
-
1875  GLM_INLINE glm::vec<4, T, Q> ywww(const glm::vec<4, T, Q> &v) {
-
1876  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.w);
-
1877  }
-
1878 
-
1879  // zxxx
-
1880  template<typename T, qualifier Q>
-
1881  GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<3, T, Q> &v) {
-
1882  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
-
1883  }
-
1884 
-
1885  template<typename T, qualifier Q>
-
1886  GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<4, T, Q> &v) {
-
1887  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
-
1888  }
-
1889 
-
1890  // zxxy
-
1891  template<typename T, qualifier Q>
-
1892  GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<3, T, Q> &v) {
-
1893  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
-
1894  }
-
1895 
-
1896  template<typename T, qualifier Q>
-
1897  GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<4, T, Q> &v) {
-
1898  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
-
1899  }
-
1900 
-
1901  // zxxz
-
1902  template<typename T, qualifier Q>
-
1903  GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<3, T, Q> &v) {
-
1904  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
-
1905  }
-
1906 
-
1907  template<typename T, qualifier Q>
-
1908  GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<4, T, Q> &v) {
-
1909  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
-
1910  }
-
1911 
-
1912  // zxxw
-
1913  template<typename T, qualifier Q>
-
1914  GLM_INLINE glm::vec<4, T, Q> zxxw(const glm::vec<4, T, Q> &v) {
-
1915  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.w);
-
1916  }
-
1917 
-
1918  // zxyx
-
1919  template<typename T, qualifier Q>
-
1920  GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<3, T, Q> &v) {
-
1921  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
-
1922  }
-
1923 
-
1924  template<typename T, qualifier Q>
-
1925  GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<4, T, Q> &v) {
-
1926  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
-
1927  }
-
1928 
-
1929  // zxyy
-
1930  template<typename T, qualifier Q>
-
1931  GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<3, T, Q> &v) {
-
1932  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
-
1933  }
-
1934 
-
1935  template<typename T, qualifier Q>
-
1936  GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<4, T, Q> &v) {
-
1937  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
-
1938  }
-
1939 
-
1940  // zxyz
-
1941  template<typename T, qualifier Q>
-
1942  GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<3, T, Q> &v) {
-
1943  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
-
1944  }
-
1945 
-
1946  template<typename T, qualifier Q>
-
1947  GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<4, T, Q> &v) {
-
1948  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
-
1949  }
-
1950 
-
1951  // zxyw
-
1952  template<typename T, qualifier Q>
-
1953  GLM_INLINE glm::vec<4, T, Q> zxyw(const glm::vec<4, T, Q> &v) {
-
1954  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.w);
-
1955  }
-
1956 
-
1957  // zxzx
-
1958  template<typename T, qualifier Q>
-
1959  GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<3, T, Q> &v) {
-
1960  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
-
1961  }
-
1962 
-
1963  template<typename T, qualifier Q>
-
1964  GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<4, T, Q> &v) {
-
1965  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
-
1966  }
-
1967 
-
1968  // zxzy
-
1969  template<typename T, qualifier Q>
-
1970  GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<3, T, Q> &v) {
-
1971  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
-
1972  }
-
1973 
-
1974  template<typename T, qualifier Q>
-
1975  GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<4, T, Q> &v) {
-
1976  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
-
1977  }
-
1978 
-
1979  // zxzz
-
1980  template<typename T, qualifier Q>
-
1981  GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<3, T, Q> &v) {
-
1982  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
-
1983  }
-
1984 
-
1985  template<typename T, qualifier Q>
-
1986  GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<4, T, Q> &v) {
-
1987  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
-
1988  }
-
1989 
-
1990  // zxzw
-
1991  template<typename T, qualifier Q>
-
1992  GLM_INLINE glm::vec<4, T, Q> zxzw(const glm::vec<4, T, Q> &v) {
-
1993  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.w);
-
1994  }
-
1995 
-
1996  // zxwx
-
1997  template<typename T, qualifier Q>
-
1998  GLM_INLINE glm::vec<4, T, Q> zxwx(const glm::vec<4, T, Q> &v) {
-
1999  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.x);
-
2000  }
-
2001 
-
2002  // zxwy
-
2003  template<typename T, qualifier Q>
-
2004  GLM_INLINE glm::vec<4, T, Q> zxwy(const glm::vec<4, T, Q> &v) {
-
2005  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.y);
-
2006  }
-
2007 
-
2008  // zxwz
-
2009  template<typename T, qualifier Q>
-
2010  GLM_INLINE glm::vec<4, T, Q> zxwz(const glm::vec<4, T, Q> &v) {
-
2011  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.z);
-
2012  }
-
2013 
-
2014  // zxww
-
2015  template<typename T, qualifier Q>
-
2016  GLM_INLINE glm::vec<4, T, Q> zxww(const glm::vec<4, T, Q> &v) {
-
2017  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.w);
-
2018  }
-
2019 
-
2020  // zyxx
-
2021  template<typename T, qualifier Q>
-
2022  GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<3, T, Q> &v) {
-
2023  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
-
2024  }
-
2025 
-
2026  template<typename T, qualifier Q>
-
2027  GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<4, T, Q> &v) {
-
2028  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
-
2029  }
-
2030 
-
2031  // zyxy
-
2032  template<typename T, qualifier Q>
-
2033  GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<3, T, Q> &v) {
-
2034  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
-
2035  }
-
2036 
-
2037  template<typename T, qualifier Q>
-
2038  GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<4, T, Q> &v) {
-
2039  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
-
2040  }
-
2041 
-
2042  // zyxz
-
2043  template<typename T, qualifier Q>
-
2044  GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<3, T, Q> &v) {
-
2045  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
-
2046  }
-
2047 
-
2048  template<typename T, qualifier Q>
-
2049  GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<4, T, Q> &v) {
-
2050  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
-
2051  }
-
2052 
-
2053  // zyxw
-
2054  template<typename T, qualifier Q>
-
2055  GLM_INLINE glm::vec<4, T, Q> zyxw(const glm::vec<4, T, Q> &v) {
-
2056  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.w);
-
2057  }
-
2058 
-
2059  // zyyx
-
2060  template<typename T, qualifier Q>
-
2061  GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<3, T, Q> &v) {
-
2062  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
-
2063  }
-
2064 
-
2065  template<typename T, qualifier Q>
-
2066  GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<4, T, Q> &v) {
-
2067  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
-
2068  }
-
2069 
-
2070  // zyyy
-
2071  template<typename T, qualifier Q>
-
2072  GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<3, T, Q> &v) {
-
2073  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
-
2074  }
-
2075 
-
2076  template<typename T, qualifier Q>
-
2077  GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<4, T, Q> &v) {
-
2078  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
-
2079  }
-
2080 
-
2081  // zyyz
-
2082  template<typename T, qualifier Q>
-
2083  GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<3, T, Q> &v) {
-
2084  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
-
2085  }
-
2086 
-
2087  template<typename T, qualifier Q>
-
2088  GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<4, T, Q> &v) {
-
2089  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
-
2090  }
-
2091 
-
2092  // zyyw
-
2093  template<typename T, qualifier Q>
-
2094  GLM_INLINE glm::vec<4, T, Q> zyyw(const glm::vec<4, T, Q> &v) {
-
2095  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.w);
-
2096  }
-
2097 
-
2098  // zyzx
-
2099  template<typename T, qualifier Q>
-
2100  GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<3, T, Q> &v) {
-
2101  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
-
2102  }
-
2103 
-
2104  template<typename T, qualifier Q>
-
2105  GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<4, T, Q> &v) {
-
2106  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
-
2107  }
-
2108 
-
2109  // zyzy
-
2110  template<typename T, qualifier Q>
-
2111  GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<3, T, Q> &v) {
-
2112  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
-
2113  }
-
2114 
-
2115  template<typename T, qualifier Q>
-
2116  GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<4, T, Q> &v) {
-
2117  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
-
2118  }
-
2119 
-
2120  // zyzz
-
2121  template<typename T, qualifier Q>
-
2122  GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<3, T, Q> &v) {
-
2123  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
-
2124  }
-
2125 
-
2126  template<typename T, qualifier Q>
-
2127  GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<4, T, Q> &v) {
-
2128  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
-
2129  }
-
2130 
-
2131  // zyzw
-
2132  template<typename T, qualifier Q>
-
2133  GLM_INLINE glm::vec<4, T, Q> zyzw(const glm::vec<4, T, Q> &v) {
-
2134  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.w);
-
2135  }
-
2136 
-
2137  // zywx
-
2138  template<typename T, qualifier Q>
-
2139  GLM_INLINE glm::vec<4, T, Q> zywx(const glm::vec<4, T, Q> &v) {
-
2140  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.x);
-
2141  }
-
2142 
-
2143  // zywy
-
2144  template<typename T, qualifier Q>
-
2145  GLM_INLINE glm::vec<4, T, Q> zywy(const glm::vec<4, T, Q> &v) {
-
2146  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.y);
-
2147  }
-
2148 
-
2149  // zywz
-
2150  template<typename T, qualifier Q>
-
2151  GLM_INLINE glm::vec<4, T, Q> zywz(const glm::vec<4, T, Q> &v) {
-
2152  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.z);
-
2153  }
-
2154 
-
2155  // zyww
-
2156  template<typename T, qualifier Q>
-
2157  GLM_INLINE glm::vec<4, T, Q> zyww(const glm::vec<4, T, Q> &v) {
-
2158  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.w);
-
2159  }
-
2160 
-
2161  // zzxx
-
2162  template<typename T, qualifier Q>
-
2163  GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<3, T, Q> &v) {
-
2164  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
-
2165  }
-
2166 
-
2167  template<typename T, qualifier Q>
-
2168  GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<4, T, Q> &v) {
-
2169  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
-
2170  }
-
2171 
-
2172  // zzxy
-
2173  template<typename T, qualifier Q>
-
2174  GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<3, T, Q> &v) {
-
2175  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
-
2176  }
-
2177 
-
2178  template<typename T, qualifier Q>
-
2179  GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<4, T, Q> &v) {
-
2180  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
-
2181  }
-
2182 
-
2183  // zzxz
-
2184  template<typename T, qualifier Q>
-
2185  GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<3, T, Q> &v) {
-
2186  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
-
2187  }
-
2188 
-
2189  template<typename T, qualifier Q>
-
2190  GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<4, T, Q> &v) {
-
2191  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
-
2192  }
-
2193 
-
2194  // zzxw
-
2195  template<typename T, qualifier Q>
-
2196  GLM_INLINE glm::vec<4, T, Q> zzxw(const glm::vec<4, T, Q> &v) {
-
2197  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.w);
-
2198  }
-
2199 
-
2200  // zzyx
-
2201  template<typename T, qualifier Q>
-
2202  GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<3, T, Q> &v) {
-
2203  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
-
2204  }
-
2205 
-
2206  template<typename T, qualifier Q>
-
2207  GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<4, T, Q> &v) {
-
2208  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
-
2209  }
-
2210 
-
2211  // zzyy
-
2212  template<typename T, qualifier Q>
-
2213  GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<3, T, Q> &v) {
-
2214  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
-
2215  }
-
2216 
-
2217  template<typename T, qualifier Q>
-
2218  GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<4, T, Q> &v) {
-
2219  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
-
2220  }
-
2221 
-
2222  // zzyz
-
2223  template<typename T, qualifier Q>
-
2224  GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<3, T, Q> &v) {
-
2225  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
-
2226  }
-
2227 
-
2228  template<typename T, qualifier Q>
-
2229  GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<4, T, Q> &v) {
-
2230  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
-
2231  }
-
2232 
-
2233  // zzyw
-
2234  template<typename T, qualifier Q>
-
2235  GLM_INLINE glm::vec<4, T, Q> zzyw(const glm::vec<4, T, Q> &v) {
-
2236  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.w);
-
2237  }
-
2238 
-
2239  // zzzx
-
2240  template<typename T, qualifier Q>
-
2241  GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<3, T, Q> &v) {
-
2242  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
-
2243  }
-
2244 
-
2245  template<typename T, qualifier Q>
-
2246  GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<4, T, Q> &v) {
-
2247  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
-
2248  }
-
2249 
-
2250  // zzzy
-
2251  template<typename T, qualifier Q>
-
2252  GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<3, T, Q> &v) {
-
2253  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
-
2254  }
-
2255 
-
2256  template<typename T, qualifier Q>
-
2257  GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<4, T, Q> &v) {
-
2258  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
-
2259  }
-
2260 
-
2261  // zzzz
-
2262  template<typename T, qualifier Q>
-
2263  GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<3, T, Q> &v) {
-
2264  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
-
2265  }
-
2266 
-
2267  template<typename T, qualifier Q>
-
2268  GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<4, T, Q> &v) {
-
2269  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
-
2270  }
-
2271 
-
2272  // zzzw
-
2273  template<typename T, qualifier Q>
-
2274  GLM_INLINE glm::vec<4, T, Q> zzzw(const glm::vec<4, T, Q> &v) {
-
2275  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.w);
-
2276  }
-
2277 
-
2278  // zzwx
-
2279  template<typename T, qualifier Q>
-
2280  GLM_INLINE glm::vec<4, T, Q> zzwx(const glm::vec<4, T, Q> &v) {
-
2281  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.x);
-
2282  }
-
2283 
-
2284  // zzwy
-
2285  template<typename T, qualifier Q>
-
2286  GLM_INLINE glm::vec<4, T, Q> zzwy(const glm::vec<4, T, Q> &v) {
-
2287  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.y);
-
2288  }
-
2289 
-
2290  // zzwz
-
2291  template<typename T, qualifier Q>
-
2292  GLM_INLINE glm::vec<4, T, Q> zzwz(const glm::vec<4, T, Q> &v) {
-
2293  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.z);
-
2294  }
-
2295 
-
2296  // zzww
-
2297  template<typename T, qualifier Q>
-
2298  GLM_INLINE glm::vec<4, T, Q> zzww(const glm::vec<4, T, Q> &v) {
-
2299  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.w);
-
2300  }
-
2301 
-
2302  // zwxx
-
2303  template<typename T, qualifier Q>
-
2304  GLM_INLINE glm::vec<4, T, Q> zwxx(const glm::vec<4, T, Q> &v) {
-
2305  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.x);
-
2306  }
-
2307 
-
2308  // zwxy
-
2309  template<typename T, qualifier Q>
-
2310  GLM_INLINE glm::vec<4, T, Q> zwxy(const glm::vec<4, T, Q> &v) {
-
2311  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.y);
-
2312  }
-
2313 
-
2314  // zwxz
-
2315  template<typename T, qualifier Q>
-
2316  GLM_INLINE glm::vec<4, T, Q> zwxz(const glm::vec<4, T, Q> &v) {
-
2317  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.z);
-
2318  }
-
2319 
-
2320  // zwxw
-
2321  template<typename T, qualifier Q>
-
2322  GLM_INLINE glm::vec<4, T, Q> zwxw(const glm::vec<4, T, Q> &v) {
-
2323  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.w);
-
2324  }
-
2325 
-
2326  // zwyx
-
2327  template<typename T, qualifier Q>
-
2328  GLM_INLINE glm::vec<4, T, Q> zwyx(const glm::vec<4, T, Q> &v) {
-
2329  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.x);
-
2330  }
-
2331 
-
2332  // zwyy
-
2333  template<typename T, qualifier Q>
-
2334  GLM_INLINE glm::vec<4, T, Q> zwyy(const glm::vec<4, T, Q> &v) {
-
2335  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.y);
-
2336  }
-
2337 
-
2338  // zwyz
-
2339  template<typename T, qualifier Q>
-
2340  GLM_INLINE glm::vec<4, T, Q> zwyz(const glm::vec<4, T, Q> &v) {
-
2341  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.z);
-
2342  }
-
2343 
-
2344  // zwyw
-
2345  template<typename T, qualifier Q>
-
2346  GLM_INLINE glm::vec<4, T, Q> zwyw(const glm::vec<4, T, Q> &v) {
-
2347  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.w);
-
2348  }
-
2349 
-
2350  // zwzx
-
2351  template<typename T, qualifier Q>
-
2352  GLM_INLINE glm::vec<4, T, Q> zwzx(const glm::vec<4, T, Q> &v) {
-
2353  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.x);
-
2354  }
-
2355 
-
2356  // zwzy
-
2357  template<typename T, qualifier Q>
-
2358  GLM_INLINE glm::vec<4, T, Q> zwzy(const glm::vec<4, T, Q> &v) {
-
2359  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.y);
-
2360  }
-
2361 
-
2362  // zwzz
-
2363  template<typename T, qualifier Q>
-
2364  GLM_INLINE glm::vec<4, T, Q> zwzz(const glm::vec<4, T, Q> &v) {
-
2365  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.z);
-
2366  }
-
2367 
-
2368  // zwzw
-
2369  template<typename T, qualifier Q>
-
2370  GLM_INLINE glm::vec<4, T, Q> zwzw(const glm::vec<4, T, Q> &v) {
-
2371  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.w);
-
2372  }
-
2373 
-
2374  // zwwx
-
2375  template<typename T, qualifier Q>
-
2376  GLM_INLINE glm::vec<4, T, Q> zwwx(const glm::vec<4, T, Q> &v) {
-
2377  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.x);
-
2378  }
-
2379 
-
2380  // zwwy
-
2381  template<typename T, qualifier Q>
-
2382  GLM_INLINE glm::vec<4, T, Q> zwwy(const glm::vec<4, T, Q> &v) {
-
2383  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.y);
-
2384  }
-
2385 
-
2386  // zwwz
-
2387  template<typename T, qualifier Q>
-
2388  GLM_INLINE glm::vec<4, T, Q> zwwz(const glm::vec<4, T, Q> &v) {
-
2389  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.z);
-
2390  }
-
2391 
-
2392  // zwww
-
2393  template<typename T, qualifier Q>
-
2394  GLM_INLINE glm::vec<4, T, Q> zwww(const glm::vec<4, T, Q> &v) {
-
2395  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.w);
-
2396  }
-
2397 
-
2398  // wxxx
-
2399  template<typename T, qualifier Q>
-
2400  GLM_INLINE glm::vec<4, T, Q> wxxx(const glm::vec<4, T, Q> &v) {
-
2401  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.x);
-
2402  }
-
2403 
-
2404  // wxxy
-
2405  template<typename T, qualifier Q>
-
2406  GLM_INLINE glm::vec<4, T, Q> wxxy(const glm::vec<4, T, Q> &v) {
-
2407  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.y);
-
2408  }
-
2409 
-
2410  // wxxz
-
2411  template<typename T, qualifier Q>
-
2412  GLM_INLINE glm::vec<4, T, Q> wxxz(const glm::vec<4, T, Q> &v) {
-
2413  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.z);
-
2414  }
-
2415 
-
2416  // wxxw
-
2417  template<typename T, qualifier Q>
-
2418  GLM_INLINE glm::vec<4, T, Q> wxxw(const glm::vec<4, T, Q> &v) {
-
2419  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.w);
-
2420  }
-
2421 
-
2422  // wxyx
-
2423  template<typename T, qualifier Q>
-
2424  GLM_INLINE glm::vec<4, T, Q> wxyx(const glm::vec<4, T, Q> &v) {
-
2425  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.x);
-
2426  }
-
2427 
-
2428  // wxyy
-
2429  template<typename T, qualifier Q>
-
2430  GLM_INLINE glm::vec<4, T, Q> wxyy(const glm::vec<4, T, Q> &v) {
-
2431  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.y);
-
2432  }
-
2433 
-
2434  // wxyz
-
2435  template<typename T, qualifier Q>
-
2436  GLM_INLINE glm::vec<4, T, Q> wxyz(const glm::vec<4, T, Q> &v) {
-
2437  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.z);
-
2438  }
-
2439 
-
2440  // wxyw
-
2441  template<typename T, qualifier Q>
-
2442  GLM_INLINE glm::vec<4, T, Q> wxyw(const glm::vec<4, T, Q> &v) {
-
2443  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.w);
-
2444  }
-
2445 
-
2446  // wxzx
-
2447  template<typename T, qualifier Q>
-
2448  GLM_INLINE glm::vec<4, T, Q> wxzx(const glm::vec<4, T, Q> &v) {
-
2449  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.x);
-
2450  }
-
2451 
-
2452  // wxzy
-
2453  template<typename T, qualifier Q>
-
2454  GLM_INLINE glm::vec<4, T, Q> wxzy(const glm::vec<4, T, Q> &v) {
-
2455  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.y);
-
2456  }
-
2457 
-
2458  // wxzz
-
2459  template<typename T, qualifier Q>
-
2460  GLM_INLINE glm::vec<4, T, Q> wxzz(const glm::vec<4, T, Q> &v) {
-
2461  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.z);
-
2462  }
-
2463 
-
2464  // wxzw
-
2465  template<typename T, qualifier Q>
-
2466  GLM_INLINE glm::vec<4, T, Q> wxzw(const glm::vec<4, T, Q> &v) {
-
2467  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.w);
-
2468  }
-
2469 
-
2470  // wxwx
-
2471  template<typename T, qualifier Q>
-
2472  GLM_INLINE glm::vec<4, T, Q> wxwx(const glm::vec<4, T, Q> &v) {
-
2473  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.x);
-
2474  }
-
2475 
-
2476  // wxwy
-
2477  template<typename T, qualifier Q>
-
2478  GLM_INLINE glm::vec<4, T, Q> wxwy(const glm::vec<4, T, Q> &v) {
-
2479  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.y);
-
2480  }
-
2481 
-
2482  // wxwz
-
2483  template<typename T, qualifier Q>
-
2484  GLM_INLINE glm::vec<4, T, Q> wxwz(const glm::vec<4, T, Q> &v) {
-
2485  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.z);
-
2486  }
-
2487 
-
2488  // wxww
-
2489  template<typename T, qualifier Q>
-
2490  GLM_INLINE glm::vec<4, T, Q> wxww(const glm::vec<4, T, Q> &v) {
-
2491  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.w);
-
2492  }
-
2493 
-
2494  // wyxx
-
2495  template<typename T, qualifier Q>
-
2496  GLM_INLINE glm::vec<4, T, Q> wyxx(const glm::vec<4, T, Q> &v) {
-
2497  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.x);
-
2498  }
-
2499 
-
2500  // wyxy
-
2501  template<typename T, qualifier Q>
-
2502  GLM_INLINE glm::vec<4, T, Q> wyxy(const glm::vec<4, T, Q> &v) {
-
2503  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.y);
-
2504  }
-
2505 
-
2506  // wyxz
-
2507  template<typename T, qualifier Q>
-
2508  GLM_INLINE glm::vec<4, T, Q> wyxz(const glm::vec<4, T, Q> &v) {
-
2509  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.z);
-
2510  }
-
2511 
-
2512  // wyxw
-
2513  template<typename T, qualifier Q>
-
2514  GLM_INLINE glm::vec<4, T, Q> wyxw(const glm::vec<4, T, Q> &v) {
-
2515  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.w);
-
2516  }
-
2517 
-
2518  // wyyx
-
2519  template<typename T, qualifier Q>
-
2520  GLM_INLINE glm::vec<4, T, Q> wyyx(const glm::vec<4, T, Q> &v) {
-
2521  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.x);
-
2522  }
-
2523 
-
2524  // wyyy
-
2525  template<typename T, qualifier Q>
-
2526  GLM_INLINE glm::vec<4, T, Q> wyyy(const glm::vec<4, T, Q> &v) {
-
2527  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.y);
-
2528  }
-
2529 
-
2530  // wyyz
-
2531  template<typename T, qualifier Q>
-
2532  GLM_INLINE glm::vec<4, T, Q> wyyz(const glm::vec<4, T, Q> &v) {
-
2533  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.z);
-
2534  }
-
2535 
-
2536  // wyyw
-
2537  template<typename T, qualifier Q>
-
2538  GLM_INLINE glm::vec<4, T, Q> wyyw(const glm::vec<4, T, Q> &v) {
-
2539  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.w);
-
2540  }
-
2541 
-
2542  // wyzx
-
2543  template<typename T, qualifier Q>
-
2544  GLM_INLINE glm::vec<4, T, Q> wyzx(const glm::vec<4, T, Q> &v) {
-
2545  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.x);
-
2546  }
-
2547 
-
2548  // wyzy
-
2549  template<typename T, qualifier Q>
-
2550  GLM_INLINE glm::vec<4, T, Q> wyzy(const glm::vec<4, T, Q> &v) {
-
2551  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.y);
-
2552  }
-
2553 
-
2554  // wyzz
-
2555  template<typename T, qualifier Q>
-
2556  GLM_INLINE glm::vec<4, T, Q> wyzz(const glm::vec<4, T, Q> &v) {
-
2557  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.z);
-
2558  }
-
2559 
-
2560  // wyzw
-
2561  template<typename T, qualifier Q>
-
2562  GLM_INLINE glm::vec<4, T, Q> wyzw(const glm::vec<4, T, Q> &v) {
-
2563  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.w);
-
2564  }
-
2565 
-
2566  // wywx
-
2567  template<typename T, qualifier Q>
-
2568  GLM_INLINE glm::vec<4, T, Q> wywx(const glm::vec<4, T, Q> &v) {
-
2569  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.x);
-
2570  }
-
2571 
-
2572  // wywy
-
2573  template<typename T, qualifier Q>
-
2574  GLM_INLINE glm::vec<4, T, Q> wywy(const glm::vec<4, T, Q> &v) {
-
2575  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.y);
-
2576  }
-
2577 
-
2578  // wywz
-
2579  template<typename T, qualifier Q>
-
2580  GLM_INLINE glm::vec<4, T, Q> wywz(const glm::vec<4, T, Q> &v) {
-
2581  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.z);
-
2582  }
-
2583 
-
2584  // wyww
-
2585  template<typename T, qualifier Q>
-
2586  GLM_INLINE glm::vec<4, T, Q> wyww(const glm::vec<4, T, Q> &v) {
-
2587  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.w);
-
2588  }
-
2589 
-
2590  // wzxx
-
2591  template<typename T, qualifier Q>
-
2592  GLM_INLINE glm::vec<4, T, Q> wzxx(const glm::vec<4, T, Q> &v) {
-
2593  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.x);
-
2594  }
-
2595 
-
2596  // wzxy
-
2597  template<typename T, qualifier Q>
-
2598  GLM_INLINE glm::vec<4, T, Q> wzxy(const glm::vec<4, T, Q> &v) {
-
2599  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.y);
-
2600  }
-
2601 
-
2602  // wzxz
-
2603  template<typename T, qualifier Q>
-
2604  GLM_INLINE glm::vec<4, T, Q> wzxz(const glm::vec<4, T, Q> &v) {
-
2605  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.z);
-
2606  }
-
2607 
-
2608  // wzxw
-
2609  template<typename T, qualifier Q>
-
2610  GLM_INLINE glm::vec<4, T, Q> wzxw(const glm::vec<4, T, Q> &v) {
-
2611  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.w);
-
2612  }
-
2613 
-
2614  // wzyx
-
2615  template<typename T, qualifier Q>
-
2616  GLM_INLINE glm::vec<4, T, Q> wzyx(const glm::vec<4, T, Q> &v) {
-
2617  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.x);
-
2618  }
-
2619 
-
2620  // wzyy
-
2621  template<typename T, qualifier Q>
-
2622  GLM_INLINE glm::vec<4, T, Q> wzyy(const glm::vec<4, T, Q> &v) {
-
2623  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.y);
-
2624  }
-
2625 
-
2626  // wzyz
-
2627  template<typename T, qualifier Q>
-
2628  GLM_INLINE glm::vec<4, T, Q> wzyz(const glm::vec<4, T, Q> &v) {
-
2629  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.z);
-
2630  }
-
2631 
-
2632  // wzyw
-
2633  template<typename T, qualifier Q>
-
2634  GLM_INLINE glm::vec<4, T, Q> wzyw(const glm::vec<4, T, Q> &v) {
-
2635  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.w);
-
2636  }
-
2637 
-
2638  // wzzx
-
2639  template<typename T, qualifier Q>
-
2640  GLM_INLINE glm::vec<4, T, Q> wzzx(const glm::vec<4, T, Q> &v) {
-
2641  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.x);
-
2642  }
-
2643 
-
2644  // wzzy
-
2645  template<typename T, qualifier Q>
-
2646  GLM_INLINE glm::vec<4, T, Q> wzzy(const glm::vec<4, T, Q> &v) {
-
2647  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.y);
-
2648  }
-
2649 
-
2650  // wzzz
-
2651  template<typename T, qualifier Q>
-
2652  GLM_INLINE glm::vec<4, T, Q> wzzz(const glm::vec<4, T, Q> &v) {
-
2653  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.z);
-
2654  }
-
2655 
-
2656  // wzzw
-
2657  template<typename T, qualifier Q>
-
2658  GLM_INLINE glm::vec<4, T, Q> wzzw(const glm::vec<4, T, Q> &v) {
-
2659  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.w);
-
2660  }
-
2661 
-
2662  // wzwx
-
2663  template<typename T, qualifier Q>
-
2664  GLM_INLINE glm::vec<4, T, Q> wzwx(const glm::vec<4, T, Q> &v) {
-
2665  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.x);
-
2666  }
-
2667 
-
2668  // wzwy
-
2669  template<typename T, qualifier Q>
-
2670  GLM_INLINE glm::vec<4, T, Q> wzwy(const glm::vec<4, T, Q> &v) {
-
2671  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.y);
-
2672  }
-
2673 
-
2674  // wzwz
-
2675  template<typename T, qualifier Q>
-
2676  GLM_INLINE glm::vec<4, T, Q> wzwz(const glm::vec<4, T, Q> &v) {
-
2677  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.z);
-
2678  }
-
2679 
-
2680  // wzww
-
2681  template<typename T, qualifier Q>
-
2682  GLM_INLINE glm::vec<4, T, Q> wzww(const glm::vec<4, T, Q> &v) {
-
2683  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.w);
-
2684  }
-
2685 
-
2686  // wwxx
-
2687  template<typename T, qualifier Q>
-
2688  GLM_INLINE glm::vec<4, T, Q> wwxx(const glm::vec<4, T, Q> &v) {
-
2689  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.x);
-
2690  }
-
2691 
-
2692  // wwxy
-
2693  template<typename T, qualifier Q>
-
2694  GLM_INLINE glm::vec<4, T, Q> wwxy(const glm::vec<4, T, Q> &v) {
-
2695  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.y);
-
2696  }
-
2697 
-
2698  // wwxz
-
2699  template<typename T, qualifier Q>
-
2700  GLM_INLINE glm::vec<4, T, Q> wwxz(const glm::vec<4, T, Q> &v) {
-
2701  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.z);
-
2702  }
-
2703 
-
2704  // wwxw
-
2705  template<typename T, qualifier Q>
-
2706  GLM_INLINE glm::vec<4, T, Q> wwxw(const glm::vec<4, T, Q> &v) {
-
2707  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.w);
-
2708  }
-
2709 
-
2710  // wwyx
-
2711  template<typename T, qualifier Q>
-
2712  GLM_INLINE glm::vec<4, T, Q> wwyx(const glm::vec<4, T, Q> &v) {
-
2713  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.x);
-
2714  }
-
2715 
-
2716  // wwyy
-
2717  template<typename T, qualifier Q>
-
2718  GLM_INLINE glm::vec<4, T, Q> wwyy(const glm::vec<4, T, Q> &v) {
-
2719  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.y);
-
2720  }
-
2721 
-
2722  // wwyz
-
2723  template<typename T, qualifier Q>
-
2724  GLM_INLINE glm::vec<4, T, Q> wwyz(const glm::vec<4, T, Q> &v) {
-
2725  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.z);
-
2726  }
-
2727 
-
2728  // wwyw
-
2729  template<typename T, qualifier Q>
-
2730  GLM_INLINE glm::vec<4, T, Q> wwyw(const glm::vec<4, T, Q> &v) {
-
2731  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.w);
-
2732  }
-
2733 
-
2734  // wwzx
-
2735  template<typename T, qualifier Q>
-
2736  GLM_INLINE glm::vec<4, T, Q> wwzx(const glm::vec<4, T, Q> &v) {
-
2737  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.x);
-
2738  }
-
2739 
-
2740  // wwzy
-
2741  template<typename T, qualifier Q>
-
2742  GLM_INLINE glm::vec<4, T, Q> wwzy(const glm::vec<4, T, Q> &v) {
-
2743  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.y);
-
2744  }
-
2745 
-
2746  // wwzz
-
2747  template<typename T, qualifier Q>
-
2748  GLM_INLINE glm::vec<4, T, Q> wwzz(const glm::vec<4, T, Q> &v) {
-
2749  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.z);
-
2750  }
-
2751 
-
2752  // wwzw
-
2753  template<typename T, qualifier Q>
-
2754  GLM_INLINE glm::vec<4, T, Q> wwzw(const glm::vec<4, T, Q> &v) {
-
2755  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.w);
-
2756  }
-
2757 
-
2758  // wwwx
-
2759  template<typename T, qualifier Q>
-
2760  GLM_INLINE glm::vec<4, T, Q> wwwx(const glm::vec<4, T, Q> &v) {
-
2761  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.x);
-
2762  }
-
2763 
-
2764  // wwwy
-
2765  template<typename T, qualifier Q>
-
2766  GLM_INLINE glm::vec<4, T, Q> wwwy(const glm::vec<4, T, Q> &v) {
-
2767  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.y);
-
2768  }
-
2769 
-
2770  // wwwz
-
2771  template<typename T, qualifier Q>
-
2772  GLM_INLINE glm::vec<4, T, Q> wwwz(const glm::vec<4, T, Q> &v) {
-
2773  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.z);
-
2774  }
-
2775 
-
2776  // wwww
-
2777  template<typename T, qualifier Q>
-
2778  GLM_INLINE glm::vec<4, T, Q> wwww(const glm::vec<4, T, Q> &v) {
-
2779  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.w);
-
2780  }
-
2781 
-
2782 }
-
Definition: common.hpp:20
-
- - - - -- cgit v1.2.3-70-g09d2