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