glam/swizzles/
vec2_impl.rs
1use crate::{Vec2, Vec2Swizzles, Vec3, Vec4};
4
5impl Vec2Swizzles for Vec2 {
6 type Vec3 = Vec3;
7
8 type Vec4 = Vec4;
9
10 #[inline]
11 #[must_use]
12 fn xx(self) -> Vec2 {
13 Vec2 {
14 x: self.x,
15 y: self.x,
16 }
17 }
18
19 #[inline]
20 #[must_use]
21 fn xy(self) -> Vec2 {
22 Vec2 {
23 x: self.x,
24 y: self.y,
25 }
26 }
27
28 #[inline]
29 #[must_use]
30 fn yx(self) -> Vec2 {
31 Vec2 {
32 x: self.y,
33 y: self.x,
34 }
35 }
36
37 #[inline]
38 #[must_use]
39 fn yy(self) -> Vec2 {
40 Vec2 {
41 x: self.y,
42 y: self.y,
43 }
44 }
45
46 #[inline]
47 #[must_use]
48 fn xxx(self) -> Vec3 {
49 Vec3 {
50 x: self.x,
51 y: self.x,
52 z: self.x,
53 }
54 }
55
56 #[inline]
57 #[must_use]
58 fn xxy(self) -> Vec3 {
59 Vec3 {
60 x: self.x,
61 y: self.x,
62 z: self.y,
63 }
64 }
65
66 #[inline]
67 #[must_use]
68 fn xyx(self) -> Vec3 {
69 Vec3 {
70 x: self.x,
71 y: self.y,
72 z: self.x,
73 }
74 }
75
76 #[inline]
77 #[must_use]
78 fn xyy(self) -> Vec3 {
79 Vec3 {
80 x: self.x,
81 y: self.y,
82 z: self.y,
83 }
84 }
85
86 #[inline]
87 #[must_use]
88 fn yxx(self) -> Vec3 {
89 Vec3 {
90 x: self.y,
91 y: self.x,
92 z: self.x,
93 }
94 }
95
96 #[inline]
97 #[must_use]
98 fn yxy(self) -> Vec3 {
99 Vec3 {
100 x: self.y,
101 y: self.x,
102 z: self.y,
103 }
104 }
105
106 #[inline]
107 #[must_use]
108 fn yyx(self) -> Vec3 {
109 Vec3 {
110 x: self.y,
111 y: self.y,
112 z: self.x,
113 }
114 }
115
116 #[inline]
117 #[must_use]
118 fn yyy(self) -> Vec3 {
119 Vec3 {
120 x: self.y,
121 y: self.y,
122 z: self.y,
123 }
124 }
125
126 #[inline]
127 #[must_use]
128 fn xxxx(self) -> Vec4 {
129 Vec4::new(self.x, self.x, self.x, self.x)
130 }
131
132 #[inline]
133 #[must_use]
134 fn xxxy(self) -> Vec4 {
135 Vec4::new(self.x, self.x, self.x, self.y)
136 }
137
138 #[inline]
139 #[must_use]
140 fn xxyx(self) -> Vec4 {
141 Vec4::new(self.x, self.x, self.y, self.x)
142 }
143
144 #[inline]
145 #[must_use]
146 fn xxyy(self) -> Vec4 {
147 Vec4::new(self.x, self.x, self.y, self.y)
148 }
149
150 #[inline]
151 #[must_use]
152 fn xyxx(self) -> Vec4 {
153 Vec4::new(self.x, self.y, self.x, self.x)
154 }
155
156 #[inline]
157 #[must_use]
158 fn xyxy(self) -> Vec4 {
159 Vec4::new(self.x, self.y, self.x, self.y)
160 }
161
162 #[inline]
163 #[must_use]
164 fn xyyx(self) -> Vec4 {
165 Vec4::new(self.x, self.y, self.y, self.x)
166 }
167
168 #[inline]
169 #[must_use]
170 fn xyyy(self) -> Vec4 {
171 Vec4::new(self.x, self.y, self.y, self.y)
172 }
173
174 #[inline]
175 #[must_use]
176 fn yxxx(self) -> Vec4 {
177 Vec4::new(self.y, self.x, self.x, self.x)
178 }
179
180 #[inline]
181 #[must_use]
182 fn yxxy(self) -> Vec4 {
183 Vec4::new(self.y, self.x, self.x, self.y)
184 }
185
186 #[inline]
187 #[must_use]
188 fn yxyx(self) -> Vec4 {
189 Vec4::new(self.y, self.x, self.y, self.x)
190 }
191
192 #[inline]
193 #[must_use]
194 fn yxyy(self) -> Vec4 {
195 Vec4::new(self.y, self.x, self.y, self.y)
196 }
197
198 #[inline]
199 #[must_use]
200 fn yyxx(self) -> Vec4 {
201 Vec4::new(self.y, self.y, self.x, self.x)
202 }
203
204 #[inline]
205 #[must_use]
206 fn yyxy(self) -> Vec4 {
207 Vec4::new(self.y, self.y, self.x, self.y)
208 }
209
210 #[inline]
211 #[must_use]
212 fn yyyx(self) -> Vec4 {
213 Vec4::new(self.y, self.y, self.y, self.x)
214 }
215
216 #[inline]
217 #[must_use]
218 fn yyyy(self) -> Vec4 {
219 Vec4::new(self.y, self.y, self.y, self.y)
220 }
221}