Clutter Engine
0.0.1
Loading...
Searching...
No Matches
ClutterEngineOpenGL
ClutterEngine
Libraries
include
glm
gtx
vec_swizzle.hpp
Go to the documentation of this file.
1
12
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
}
glm.hpp
glm
Core features
Definition
common.hpp:21
glm::vec
Definition
qualifier.hpp:35
Generated by
1.12.0