1use crate::{DVec2, DVec3, DVec4, Vec3Swizzles};
4
5impl Vec3Swizzles for DVec3 {
6 type Vec2 = DVec2;
7
8 type Vec4 = DVec4;
9
10 #[inline]
11 fn xx(self) -> DVec2 {
12 DVec2 {
13 x: self.x,
14 y: self.x,
15 }
16 }
17
18 #[inline]
19 fn xy(self) -> DVec2 {
20 DVec2 {
21 x: self.x,
22 y: self.y,
23 }
24 }
25
26 #[inline]
27 fn xz(self) -> DVec2 {
28 DVec2 {
29 x: self.x,
30 y: self.z,
31 }
32 }
33
34 #[inline]
35 fn yx(self) -> DVec2 {
36 DVec2 {
37 x: self.y,
38 y: self.x,
39 }
40 }
41
42 #[inline]
43 fn yy(self) -> DVec2 {
44 DVec2 {
45 x: self.y,
46 y: self.y,
47 }
48 }
49
50 #[inline]
51 fn yz(self) -> DVec2 {
52 DVec2 {
53 x: self.y,
54 y: self.z,
55 }
56 }
57
58 #[inline]
59 fn zx(self) -> DVec2 {
60 DVec2 {
61 x: self.z,
62 y: self.x,
63 }
64 }
65
66 #[inline]
67 fn zy(self) -> DVec2 {
68 DVec2 {
69 x: self.z,
70 y: self.y,
71 }
72 }
73
74 #[inline]
75 fn zz(self) -> DVec2 {
76 DVec2 {
77 x: self.z,
78 y: self.z,
79 }
80 }
81
82 #[inline]
83 fn xxx(self) -> DVec3 {
84 DVec3 {
85 x: self.x,
86 y: self.x,
87 z: self.x,
88 }
89 }
90
91 #[inline]
92 fn xxy(self) -> DVec3 {
93 DVec3 {
94 x: self.x,
95 y: self.x,
96 z: self.y,
97 }
98 }
99
100 #[inline]
101 fn xxz(self) -> DVec3 {
102 DVec3 {
103 x: self.x,
104 y: self.x,
105 z: self.z,
106 }
107 }
108
109 #[inline]
110 fn xyx(self) -> DVec3 {
111 DVec3 {
112 x: self.x,
113 y: self.y,
114 z: self.x,
115 }
116 }
117
118 #[inline]
119 fn xyy(self) -> DVec3 {
120 DVec3 {
121 x: self.x,
122 y: self.y,
123 z: self.y,
124 }
125 }
126
127 #[inline]
128 fn xyz(self) -> DVec3 {
129 DVec3 {
130 x: self.x,
131 y: self.y,
132 z: self.z,
133 }
134 }
135
136 #[inline]
137 fn xzx(self) -> DVec3 {
138 DVec3 {
139 x: self.x,
140 y: self.z,
141 z: self.x,
142 }
143 }
144
145 #[inline]
146 fn xzy(self) -> DVec3 {
147 DVec3 {
148 x: self.x,
149 y: self.z,
150 z: self.y,
151 }
152 }
153
154 #[inline]
155 fn xzz(self) -> DVec3 {
156 DVec3 {
157 x: self.x,
158 y: self.z,
159 z: self.z,
160 }
161 }
162
163 #[inline]
164 fn yxx(self) -> DVec3 {
165 DVec3 {
166 x: self.y,
167 y: self.x,
168 z: self.x,
169 }
170 }
171
172 #[inline]
173 fn yxy(self) -> DVec3 {
174 DVec3 {
175 x: self.y,
176 y: self.x,
177 z: self.y,
178 }
179 }
180
181 #[inline]
182 fn yxz(self) -> DVec3 {
183 DVec3 {
184 x: self.y,
185 y: self.x,
186 z: self.z,
187 }
188 }
189
190 #[inline]
191 fn yyx(self) -> DVec3 {
192 DVec3 {
193 x: self.y,
194 y: self.y,
195 z: self.x,
196 }
197 }
198
199 #[inline]
200 fn yyy(self) -> DVec3 {
201 DVec3 {
202 x: self.y,
203 y: self.y,
204 z: self.y,
205 }
206 }
207
208 #[inline]
209 fn yyz(self) -> DVec3 {
210 DVec3 {
211 x: self.y,
212 y: self.y,
213 z: self.z,
214 }
215 }
216
217 #[inline]
218 fn yzx(self) -> DVec3 {
219 DVec3 {
220 x: self.y,
221 y: self.z,
222 z: self.x,
223 }
224 }
225
226 #[inline]
227 fn yzy(self) -> DVec3 {
228 DVec3 {
229 x: self.y,
230 y: self.z,
231 z: self.y,
232 }
233 }
234
235 #[inline]
236 fn yzz(self) -> DVec3 {
237 DVec3 {
238 x: self.y,
239 y: self.z,
240 z: self.z,
241 }
242 }
243
244 #[inline]
245 fn zxx(self) -> DVec3 {
246 DVec3 {
247 x: self.z,
248 y: self.x,
249 z: self.x,
250 }
251 }
252
253 #[inline]
254 fn zxy(self) -> DVec3 {
255 DVec3 {
256 x: self.z,
257 y: self.x,
258 z: self.y,
259 }
260 }
261
262 #[inline]
263 fn zxz(self) -> DVec3 {
264 DVec3 {
265 x: self.z,
266 y: self.x,
267 z: self.z,
268 }
269 }
270
271 #[inline]
272 fn zyx(self) -> DVec3 {
273 DVec3 {
274 x: self.z,
275 y: self.y,
276 z: self.x,
277 }
278 }
279
280 #[inline]
281 fn zyy(self) -> DVec3 {
282 DVec3 {
283 x: self.z,
284 y: self.y,
285 z: self.y,
286 }
287 }
288
289 #[inline]
290 fn zyz(self) -> DVec3 {
291 DVec3 {
292 x: self.z,
293 y: self.y,
294 z: self.z,
295 }
296 }
297
298 #[inline]
299 fn zzx(self) -> DVec3 {
300 DVec3 {
301 x: self.z,
302 y: self.z,
303 z: self.x,
304 }
305 }
306
307 #[inline]
308 fn zzy(self) -> DVec3 {
309 DVec3 {
310 x: self.z,
311 y: self.z,
312 z: self.y,
313 }
314 }
315
316 #[inline]
317 fn zzz(self) -> DVec3 {
318 DVec3 {
319 x: self.z,
320 y: self.z,
321 z: self.z,
322 }
323 }
324
325 #[inline]
326 fn xxxx(self) -> DVec4 {
327 DVec4::new(self.x, self.x, self.x, self.x)
328 }
329
330 #[inline]
331 fn xxxy(self) -> DVec4 {
332 DVec4::new(self.x, self.x, self.x, self.y)
333 }
334
335 #[inline]
336 fn xxxz(self) -> DVec4 {
337 DVec4::new(self.x, self.x, self.x, self.z)
338 }
339
340 #[inline]
341 fn xxyx(self) -> DVec4 {
342 DVec4::new(self.x, self.x, self.y, self.x)
343 }
344
345 #[inline]
346 fn xxyy(self) -> DVec4 {
347 DVec4::new(self.x, self.x, self.y, self.y)
348 }
349
350 #[inline]
351 fn xxyz(self) -> DVec4 {
352 DVec4::new(self.x, self.x, self.y, self.z)
353 }
354
355 #[inline]
356 fn xxzx(self) -> DVec4 {
357 DVec4::new(self.x, self.x, self.z, self.x)
358 }
359
360 #[inline]
361 fn xxzy(self) -> DVec4 {
362 DVec4::new(self.x, self.x, self.z, self.y)
363 }
364
365 #[inline]
366 fn xxzz(self) -> DVec4 {
367 DVec4::new(self.x, self.x, self.z, self.z)
368 }
369
370 #[inline]
371 fn xyxx(self) -> DVec4 {
372 DVec4::new(self.x, self.y, self.x, self.x)
373 }
374
375 #[inline]
376 fn xyxy(self) -> DVec4 {
377 DVec4::new(self.x, self.y, self.x, self.y)
378 }
379
380 #[inline]
381 fn xyxz(self) -> DVec4 {
382 DVec4::new(self.x, self.y, self.x, self.z)
383 }
384
385 #[inline]
386 fn xyyx(self) -> DVec4 {
387 DVec4::new(self.x, self.y, self.y, self.x)
388 }
389
390 #[inline]
391 fn xyyy(self) -> DVec4 {
392 DVec4::new(self.x, self.y, self.y, self.y)
393 }
394
395 #[inline]
396 fn xyyz(self) -> DVec4 {
397 DVec4::new(self.x, self.y, self.y, self.z)
398 }
399
400 #[inline]
401 fn xyzx(self) -> DVec4 {
402 DVec4::new(self.x, self.y, self.z, self.x)
403 }
404
405 #[inline]
406 fn xyzy(self) -> DVec4 {
407 DVec4::new(self.x, self.y, self.z, self.y)
408 }
409
410 #[inline]
411 fn xyzz(self) -> DVec4 {
412 DVec4::new(self.x, self.y, self.z, self.z)
413 }
414
415 #[inline]
416 fn xzxx(self) -> DVec4 {
417 DVec4::new(self.x, self.z, self.x, self.x)
418 }
419
420 #[inline]
421 fn xzxy(self) -> DVec4 {
422 DVec4::new(self.x, self.z, self.x, self.y)
423 }
424
425 #[inline]
426 fn xzxz(self) -> DVec4 {
427 DVec4::new(self.x, self.z, self.x, self.z)
428 }
429
430 #[inline]
431 fn xzyx(self) -> DVec4 {
432 DVec4::new(self.x, self.z, self.y, self.x)
433 }
434
435 #[inline]
436 fn xzyy(self) -> DVec4 {
437 DVec4::new(self.x, self.z, self.y, self.y)
438 }
439
440 #[inline]
441 fn xzyz(self) -> DVec4 {
442 DVec4::new(self.x, self.z, self.y, self.z)
443 }
444
445 #[inline]
446 fn xzzx(self) -> DVec4 {
447 DVec4::new(self.x, self.z, self.z, self.x)
448 }
449
450 #[inline]
451 fn xzzy(self) -> DVec4 {
452 DVec4::new(self.x, self.z, self.z, self.y)
453 }
454
455 #[inline]
456 fn xzzz(self) -> DVec4 {
457 DVec4::new(self.x, self.z, self.z, self.z)
458 }
459
460 #[inline]
461 fn yxxx(self) -> DVec4 {
462 DVec4::new(self.y, self.x, self.x, self.x)
463 }
464
465 #[inline]
466 fn yxxy(self) -> DVec4 {
467 DVec4::new(self.y, self.x, self.x, self.y)
468 }
469
470 #[inline]
471 fn yxxz(self) -> DVec4 {
472 DVec4::new(self.y, self.x, self.x, self.z)
473 }
474
475 #[inline]
476 fn yxyx(self) -> DVec4 {
477 DVec4::new(self.y, self.x, self.y, self.x)
478 }
479
480 #[inline]
481 fn yxyy(self) -> DVec4 {
482 DVec4::new(self.y, self.x, self.y, self.y)
483 }
484
485 #[inline]
486 fn yxyz(self) -> DVec4 {
487 DVec4::new(self.y, self.x, self.y, self.z)
488 }
489
490 #[inline]
491 fn yxzx(self) -> DVec4 {
492 DVec4::new(self.y, self.x, self.z, self.x)
493 }
494
495 #[inline]
496 fn yxzy(self) -> DVec4 {
497 DVec4::new(self.y, self.x, self.z, self.y)
498 }
499
500 #[inline]
501 fn yxzz(self) -> DVec4 {
502 DVec4::new(self.y, self.x, self.z, self.z)
503 }
504
505 #[inline]
506 fn yyxx(self) -> DVec4 {
507 DVec4::new(self.y, self.y, self.x, self.x)
508 }
509
510 #[inline]
511 fn yyxy(self) -> DVec4 {
512 DVec4::new(self.y, self.y, self.x, self.y)
513 }
514
515 #[inline]
516 fn yyxz(self) -> DVec4 {
517 DVec4::new(self.y, self.y, self.x, self.z)
518 }
519
520 #[inline]
521 fn yyyx(self) -> DVec4 {
522 DVec4::new(self.y, self.y, self.y, self.x)
523 }
524
525 #[inline]
526 fn yyyy(self) -> DVec4 {
527 DVec4::new(self.y, self.y, self.y, self.y)
528 }
529
530 #[inline]
531 fn yyyz(self) -> DVec4 {
532 DVec4::new(self.y, self.y, self.y, self.z)
533 }
534
535 #[inline]
536 fn yyzx(self) -> DVec4 {
537 DVec4::new(self.y, self.y, self.z, self.x)
538 }
539
540 #[inline]
541 fn yyzy(self) -> DVec4 {
542 DVec4::new(self.y, self.y, self.z, self.y)
543 }
544
545 #[inline]
546 fn yyzz(self) -> DVec4 {
547 DVec4::new(self.y, self.y, self.z, self.z)
548 }
549
550 #[inline]
551 fn yzxx(self) -> DVec4 {
552 DVec4::new(self.y, self.z, self.x, self.x)
553 }
554
555 #[inline]
556 fn yzxy(self) -> DVec4 {
557 DVec4::new(self.y, self.z, self.x, self.y)
558 }
559
560 #[inline]
561 fn yzxz(self) -> DVec4 {
562 DVec4::new(self.y, self.z, self.x, self.z)
563 }
564
565 #[inline]
566 fn yzyx(self) -> DVec4 {
567 DVec4::new(self.y, self.z, self.y, self.x)
568 }
569
570 #[inline]
571 fn yzyy(self) -> DVec4 {
572 DVec4::new(self.y, self.z, self.y, self.y)
573 }
574
575 #[inline]
576 fn yzyz(self) -> DVec4 {
577 DVec4::new(self.y, self.z, self.y, self.z)
578 }
579
580 #[inline]
581 fn yzzx(self) -> DVec4 {
582 DVec4::new(self.y, self.z, self.z, self.x)
583 }
584
585 #[inline]
586 fn yzzy(self) -> DVec4 {
587 DVec4::new(self.y, self.z, self.z, self.y)
588 }
589
590 #[inline]
591 fn yzzz(self) -> DVec4 {
592 DVec4::new(self.y, self.z, self.z, self.z)
593 }
594
595 #[inline]
596 fn zxxx(self) -> DVec4 {
597 DVec4::new(self.z, self.x, self.x, self.x)
598 }
599
600 #[inline]
601 fn zxxy(self) -> DVec4 {
602 DVec4::new(self.z, self.x, self.x, self.y)
603 }
604
605 #[inline]
606 fn zxxz(self) -> DVec4 {
607 DVec4::new(self.z, self.x, self.x, self.z)
608 }
609
610 #[inline]
611 fn zxyx(self) -> DVec4 {
612 DVec4::new(self.z, self.x, self.y, self.x)
613 }
614
615 #[inline]
616 fn zxyy(self) -> DVec4 {
617 DVec4::new(self.z, self.x, self.y, self.y)
618 }
619
620 #[inline]
621 fn zxyz(self) -> DVec4 {
622 DVec4::new(self.z, self.x, self.y, self.z)
623 }
624
625 #[inline]
626 fn zxzx(self) -> DVec4 {
627 DVec4::new(self.z, self.x, self.z, self.x)
628 }
629
630 #[inline]
631 fn zxzy(self) -> DVec4 {
632 DVec4::new(self.z, self.x, self.z, self.y)
633 }
634
635 #[inline]
636 fn zxzz(self) -> DVec4 {
637 DVec4::new(self.z, self.x, self.z, self.z)
638 }
639
640 #[inline]
641 fn zyxx(self) -> DVec4 {
642 DVec4::new(self.z, self.y, self.x, self.x)
643 }
644
645 #[inline]
646 fn zyxy(self) -> DVec4 {
647 DVec4::new(self.z, self.y, self.x, self.y)
648 }
649
650 #[inline]
651 fn zyxz(self) -> DVec4 {
652 DVec4::new(self.z, self.y, self.x, self.z)
653 }
654
655 #[inline]
656 fn zyyx(self) -> DVec4 {
657 DVec4::new(self.z, self.y, self.y, self.x)
658 }
659
660 #[inline]
661 fn zyyy(self) -> DVec4 {
662 DVec4::new(self.z, self.y, self.y, self.y)
663 }
664
665 #[inline]
666 fn zyyz(self) -> DVec4 {
667 DVec4::new(self.z, self.y, self.y, self.z)
668 }
669
670 #[inline]
671 fn zyzx(self) -> DVec4 {
672 DVec4::new(self.z, self.y, self.z, self.x)
673 }
674
675 #[inline]
676 fn zyzy(self) -> DVec4 {
677 DVec4::new(self.z, self.y, self.z, self.y)
678 }
679
680 #[inline]
681 fn zyzz(self) -> DVec4 {
682 DVec4::new(self.z, self.y, self.z, self.z)
683 }
684
685 #[inline]
686 fn zzxx(self) -> DVec4 {
687 DVec4::new(self.z, self.z, self.x, self.x)
688 }
689
690 #[inline]
691 fn zzxy(self) -> DVec4 {
692 DVec4::new(self.z, self.z, self.x, self.y)
693 }
694
695 #[inline]
696 fn zzxz(self) -> DVec4 {
697 DVec4::new(self.z, self.z, self.x, self.z)
698 }
699
700 #[inline]
701 fn zzyx(self) -> DVec4 {
702 DVec4::new(self.z, self.z, self.y, self.x)
703 }
704
705 #[inline]
706 fn zzyy(self) -> DVec4 {
707 DVec4::new(self.z, self.z, self.y, self.y)
708 }
709
710 #[inline]
711 fn zzyz(self) -> DVec4 {
712 DVec4::new(self.z, self.z, self.y, self.z)
713 }
714
715 #[inline]
716 fn zzzx(self) -> DVec4 {
717 DVec4::new(self.z, self.z, self.z, self.x)
718 }
719
720 #[inline]
721 fn zzzy(self) -> DVec4 {
722 DVec4::new(self.z, self.z, self.z, self.y)
723 }
724
725 #[inline]
726 fn zzzz(self) -> DVec4 {
727 DVec4::new(self.z, self.z, self.z, self.z)
728 }
729}