Skip to content

Commit ca77a51

Browse files
authored
Swizzle Operators (#201)
1 parent d6c9f94 commit ca77a51

File tree

4 files changed

+308
-6
lines changed

4 files changed

+308
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,302 @@
1+
// ReSharper disable InconsistentNaming
2+
namespace Silk.NET.Maths
3+
{
4+
public readonly partial struct Vector2<T>
5+
{
6+
public Vector2<T> XX => new Vector2<T>(X, X);
7+
public Vector2<T> XY => new Vector2<T>(X, Y);
8+
public Vector2<T> YX => new Vector2<T>(Y, X);
9+
public Vector2<T> YY => new Vector2<T>(Y, Y);
10+
}
11+
12+
public readonly partial struct Vector3<T>
13+
{
14+
public Vector3<T> XXX => new Vector3<T>(X, X, X);
15+
public Vector3<T> XXY => new Vector3<T>(X, X, Y);
16+
public Vector3<T> XXZ => new Vector3<T>(X, X, Z);
17+
public Vector3<T> XYX => new Vector3<T>(X, Y, X);
18+
public Vector3<T> XYY => new Vector3<T>(X, Y, Y);
19+
public Vector3<T> XYZ => new Vector3<T>(X, Y, Z);
20+
public Vector3<T> XZX => new Vector3<T>(X, Z, X);
21+
public Vector3<T> XZY => new Vector3<T>(X, Z, Y);
22+
public Vector3<T> XZZ => new Vector3<T>(X, Z, Z);
23+
public Vector3<T> YXX => new Vector3<T>(Y, X, X);
24+
public Vector3<T> YXY => new Vector3<T>(Y, X, Y);
25+
public Vector3<T> YXZ => new Vector3<T>(Y, X, Z);
26+
public Vector3<T> YYX => new Vector3<T>(Y, Y, X);
27+
public Vector3<T> YYY => new Vector3<T>(Y, Y, Y);
28+
public Vector3<T> YYZ => new Vector3<T>(Y, Y, Z);
29+
public Vector3<T> YZX => new Vector3<T>(Y, Z, X);
30+
public Vector3<T> YZY => new Vector3<T>(Y, Z, Y);
31+
public Vector3<T> YZZ => new Vector3<T>(Y, Z, Z);
32+
public Vector3<T> ZXX => new Vector3<T>(Z, X, X);
33+
public Vector3<T> ZXY => new Vector3<T>(Z, X, Y);
34+
public Vector3<T> ZXZ => new Vector3<T>(Z, X, Z);
35+
public Vector3<T> ZYX => new Vector3<T>(Z, Y, X);
36+
public Vector3<T> ZYY => new Vector3<T>(Z, Y, Y);
37+
public Vector3<T> ZYZ => new Vector3<T>(Z, Y, Z);
38+
public Vector3<T> ZZX => new Vector3<T>(Z, Z, X);
39+
public Vector3<T> ZZY => new Vector3<T>(Z, Z, Y);
40+
public Vector3<T> ZZZ => new Vector3<T>(Z, Z, Z);
41+
}
42+
43+
public readonly partial struct Vector4<T>
44+
{
45+
public Vector4<T> XXXX => new Vector4<T>(X, X, X, X);
46+
public Vector4<T> XXXY => new Vector4<T>(X, X, X, Y);
47+
public Vector4<T> XXXZ => new Vector4<T>(X, X, X, Z);
48+
public Vector4<T> XXXW => new Vector4<T>(X, X, X, W);
49+
public Vector4<T> XXYX => new Vector4<T>(X, X, Y, X);
50+
public Vector4<T> XXYY => new Vector4<T>(X, X, Y, Y);
51+
public Vector4<T> XXYZ => new Vector4<T>(X, X, Y, Z);
52+
public Vector4<T> XXYW => new Vector4<T>(X, X, Y, W);
53+
public Vector4<T> XXZX => new Vector4<T>(X, X, Z, X);
54+
public Vector4<T> XXZY => new Vector4<T>(X, X, Z, Y);
55+
public Vector4<T> XXZZ => new Vector4<T>(X, X, Z, Z);
56+
public Vector4<T> XXZW => new Vector4<T>(X, X, Z, W);
57+
public Vector4<T> XXWX => new Vector4<T>(X, X, W, X);
58+
public Vector4<T> XXWY => new Vector4<T>(X, X, W, Y);
59+
public Vector4<T> XXWZ => new Vector4<T>(X, X, W, Z);
60+
public Vector4<T> XXWW => new Vector4<T>(X, X, W, W);
61+
public Vector4<T> XYXX => new Vector4<T>(X, Y, X, X);
62+
public Vector4<T> XYXY => new Vector4<T>(X, Y, X, Y);
63+
public Vector4<T> XYXZ => new Vector4<T>(X, Y, X, Z);
64+
public Vector4<T> XYXW => new Vector4<T>(X, Y, X, W);
65+
public Vector4<T> XYYX => new Vector4<T>(X, Y, Y, X);
66+
public Vector4<T> XYYY => new Vector4<T>(X, Y, Y, Y);
67+
public Vector4<T> XYYZ => new Vector4<T>(X, Y, Y, Z);
68+
public Vector4<T> XYYW => new Vector4<T>(X, Y, Y, W);
69+
public Vector4<T> XYZX => new Vector4<T>(X, Y, Z, X);
70+
public Vector4<T> XYZY => new Vector4<T>(X, Y, Z, Y);
71+
public Vector4<T> XYZZ => new Vector4<T>(X, Y, Z, Z);
72+
public Vector4<T> XYZW => new Vector4<T>(X, Y, Z, W);
73+
public Vector4<T> XYWX => new Vector4<T>(X, Y, W, X);
74+
public Vector4<T> XYWY => new Vector4<T>(X, Y, W, Y);
75+
public Vector4<T> XYWZ => new Vector4<T>(X, Y, W, Z);
76+
public Vector4<T> XYWW => new Vector4<T>(X, Y, W, W);
77+
public Vector4<T> XZXX => new Vector4<T>(X, Z, X, X);
78+
public Vector4<T> XZXY => new Vector4<T>(X, Z, X, Y);
79+
public Vector4<T> XZXZ => new Vector4<T>(X, Z, X, Z);
80+
public Vector4<T> XZXW => new Vector4<T>(X, Z, X, W);
81+
public Vector4<T> XZYX => new Vector4<T>(X, Z, Y, X);
82+
public Vector4<T> XZYY => new Vector4<T>(X, Z, Y, Y);
83+
public Vector4<T> XZYZ => new Vector4<T>(X, Z, Y, Z);
84+
public Vector4<T> XZYW => new Vector4<T>(X, Z, Y, W);
85+
public Vector4<T> XZZX => new Vector4<T>(X, Z, Z, X);
86+
public Vector4<T> XZZY => new Vector4<T>(X, Z, Z, Y);
87+
public Vector4<T> XZZZ => new Vector4<T>(X, Z, Z, Z);
88+
public Vector4<T> XZZW => new Vector4<T>(X, Z, Z, W);
89+
public Vector4<T> XZWX => new Vector4<T>(X, Z, W, X);
90+
public Vector4<T> XZWY => new Vector4<T>(X, Z, W, Y);
91+
public Vector4<T> XZWZ => new Vector4<T>(X, Z, W, Z);
92+
public Vector4<T> XZWW => new Vector4<T>(X, Z, W, W);
93+
public Vector4<T> XWXX => new Vector4<T>(X, W, X, X);
94+
public Vector4<T> XWXY => new Vector4<T>(X, W, X, Y);
95+
public Vector4<T> XWXZ => new Vector4<T>(X, W, X, Z);
96+
public Vector4<T> XWXW => new Vector4<T>(X, W, X, W);
97+
public Vector4<T> XWYX => new Vector4<T>(X, W, Y, X);
98+
public Vector4<T> XWYY => new Vector4<T>(X, W, Y, Y);
99+
public Vector4<T> XWYZ => new Vector4<T>(X, W, Y, Z);
100+
public Vector4<T> XWYW => new Vector4<T>(X, W, Y, W);
101+
public Vector4<T> XWZX => new Vector4<T>(X, W, Z, X);
102+
public Vector4<T> XWZY => new Vector4<T>(X, W, Z, Y);
103+
public Vector4<T> XWZZ => new Vector4<T>(X, W, Z, Z);
104+
public Vector4<T> XWZW => new Vector4<T>(X, W, Z, W);
105+
public Vector4<T> XWWX => new Vector4<T>(X, W, W, X);
106+
public Vector4<T> XWWY => new Vector4<T>(X, W, W, Y);
107+
public Vector4<T> XWWZ => new Vector4<T>(X, W, W, Z);
108+
public Vector4<T> XWWW => new Vector4<T>(X, W, W, W);
109+
public Vector4<T> YXXX => new Vector4<T>(Y, X, X, X);
110+
public Vector4<T> YXXY => new Vector4<T>(Y, X, X, Y);
111+
public Vector4<T> YXXZ => new Vector4<T>(Y, X, X, Z);
112+
public Vector4<T> YXXW => new Vector4<T>(Y, X, X, W);
113+
public Vector4<T> YXYX => new Vector4<T>(Y, X, Y, X);
114+
public Vector4<T> YXYY => new Vector4<T>(Y, X, Y, Y);
115+
public Vector4<T> YXYZ => new Vector4<T>(Y, X, Y, Z);
116+
public Vector4<T> YXYW => new Vector4<T>(Y, X, Y, W);
117+
public Vector4<T> YXZX => new Vector4<T>(Y, X, Z, X);
118+
public Vector4<T> YXZY => new Vector4<T>(Y, X, Z, Y);
119+
public Vector4<T> YXZZ => new Vector4<T>(Y, X, Z, Z);
120+
public Vector4<T> YXZW => new Vector4<T>(Y, X, Z, W);
121+
public Vector4<T> YXWX => new Vector4<T>(Y, X, W, X);
122+
public Vector4<T> YXWY => new Vector4<T>(Y, X, W, Y);
123+
public Vector4<T> YXWZ => new Vector4<T>(Y, X, W, Z);
124+
public Vector4<T> YXWW => new Vector4<T>(Y, X, W, W);
125+
public Vector4<T> YYXX => new Vector4<T>(Y, Y, X, X);
126+
public Vector4<T> YYXY => new Vector4<T>(Y, Y, X, Y);
127+
public Vector4<T> YYXZ => new Vector4<T>(Y, Y, X, Z);
128+
public Vector4<T> YYXW => new Vector4<T>(Y, Y, X, W);
129+
public Vector4<T> YYYX => new Vector4<T>(Y, Y, Y, X);
130+
public Vector4<T> YYYY => new Vector4<T>(Y, Y, Y, Y);
131+
public Vector4<T> YYYZ => new Vector4<T>(Y, Y, Y, Z);
132+
public Vector4<T> YYYW => new Vector4<T>(Y, Y, Y, W);
133+
public Vector4<T> YYZX => new Vector4<T>(Y, Y, Z, X);
134+
public Vector4<T> YYZY => new Vector4<T>(Y, Y, Z, Y);
135+
public Vector4<T> YYZZ => new Vector4<T>(Y, Y, Z, Z);
136+
public Vector4<T> YYZW => new Vector4<T>(Y, Y, Z, W);
137+
public Vector4<T> YYWX => new Vector4<T>(Y, Y, W, X);
138+
public Vector4<T> YYWY => new Vector4<T>(Y, Y, W, Y);
139+
public Vector4<T> YYWZ => new Vector4<T>(Y, Y, W, Z);
140+
public Vector4<T> YYWW => new Vector4<T>(Y, Y, W, W);
141+
public Vector4<T> YZXX => new Vector4<T>(Y, Z, X, X);
142+
public Vector4<T> YZXY => new Vector4<T>(Y, Z, X, Y);
143+
public Vector4<T> YZXZ => new Vector4<T>(Y, Z, X, Z);
144+
public Vector4<T> YZXW => new Vector4<T>(Y, Z, X, W);
145+
public Vector4<T> YZYX => new Vector4<T>(Y, Z, Y, X);
146+
public Vector4<T> YZYY => new Vector4<T>(Y, Z, Y, Y);
147+
public Vector4<T> YZYZ => new Vector4<T>(Y, Z, Y, Z);
148+
public Vector4<T> YZYW => new Vector4<T>(Y, Z, Y, W);
149+
public Vector4<T> YZZX => new Vector4<T>(Y, Z, Z, X);
150+
public Vector4<T> YZZY => new Vector4<T>(Y, Z, Z, Y);
151+
public Vector4<T> YZZZ => new Vector4<T>(Y, Z, Z, Z);
152+
public Vector4<T> YZZW => new Vector4<T>(Y, Z, Z, W);
153+
public Vector4<T> YZWX => new Vector4<T>(Y, Z, W, X);
154+
public Vector4<T> YZWY => new Vector4<T>(Y, Z, W, Y);
155+
public Vector4<T> YZWZ => new Vector4<T>(Y, Z, W, Z);
156+
public Vector4<T> YZWW => new Vector4<T>(Y, Z, W, W);
157+
public Vector4<T> YWXX => new Vector4<T>(Y, W, X, X);
158+
public Vector4<T> YWXY => new Vector4<T>(Y, W, X, Y);
159+
public Vector4<T> YWXZ => new Vector4<T>(Y, W, X, Z);
160+
public Vector4<T> YWXW => new Vector4<T>(Y, W, X, W);
161+
public Vector4<T> YWYX => new Vector4<T>(Y, W, Y, X);
162+
public Vector4<T> YWYY => new Vector4<T>(Y, W, Y, Y);
163+
public Vector4<T> YWYZ => new Vector4<T>(Y, W, Y, Z);
164+
public Vector4<T> YWYW => new Vector4<T>(Y, W, Y, W);
165+
public Vector4<T> YWZX => new Vector4<T>(Y, W, Z, X);
166+
public Vector4<T> YWZY => new Vector4<T>(Y, W, Z, Y);
167+
public Vector4<T> YWZZ => new Vector4<T>(Y, W, Z, Z);
168+
public Vector4<T> YWZW => new Vector4<T>(Y, W, Z, W);
169+
public Vector4<T> YWWX => new Vector4<T>(Y, W, W, X);
170+
public Vector4<T> YWWY => new Vector4<T>(Y, W, W, Y);
171+
public Vector4<T> YWWZ => new Vector4<T>(Y, W, W, Z);
172+
public Vector4<T> YWWW => new Vector4<T>(Y, W, W, W);
173+
public Vector4<T> ZXXX => new Vector4<T>(Z, X, X, X);
174+
public Vector4<T> ZXXY => new Vector4<T>(Z, X, X, Y);
175+
public Vector4<T> ZXXZ => new Vector4<T>(Z, X, X, Z);
176+
public Vector4<T> ZXXW => new Vector4<T>(Z, X, X, W);
177+
public Vector4<T> ZXYX => new Vector4<T>(Z, X, Y, X);
178+
public Vector4<T> ZXYY => new Vector4<T>(Z, X, Y, Y);
179+
public Vector4<T> ZXYZ => new Vector4<T>(Z, X, Y, Z);
180+
public Vector4<T> ZXYW => new Vector4<T>(Z, X, Y, W);
181+
public Vector4<T> ZXZX => new Vector4<T>(Z, X, Z, X);
182+
public Vector4<T> ZXZY => new Vector4<T>(Z, X, Z, Y);
183+
public Vector4<T> ZXZZ => new Vector4<T>(Z, X, Z, Z);
184+
public Vector4<T> ZXZW => new Vector4<T>(Z, X, Z, W);
185+
public Vector4<T> ZXWX => new Vector4<T>(Z, X, W, X);
186+
public Vector4<T> ZXWY => new Vector4<T>(Z, X, W, Y);
187+
public Vector4<T> ZXWZ => new Vector4<T>(Z, X, W, Z);
188+
public Vector4<T> ZXWW => new Vector4<T>(Z, X, W, W);
189+
public Vector4<T> ZYXX => new Vector4<T>(Z, Y, X, X);
190+
public Vector4<T> ZYXY => new Vector4<T>(Z, Y, X, Y);
191+
public Vector4<T> ZYXZ => new Vector4<T>(Z, Y, X, Z);
192+
public Vector4<T> ZYXW => new Vector4<T>(Z, Y, X, W);
193+
public Vector4<T> ZYYX => new Vector4<T>(Z, Y, Y, X);
194+
public Vector4<T> ZYYY => new Vector4<T>(Z, Y, Y, Y);
195+
public Vector4<T> ZYYZ => new Vector4<T>(Z, Y, Y, Z);
196+
public Vector4<T> ZYYW => new Vector4<T>(Z, Y, Y, W);
197+
public Vector4<T> ZYZX => new Vector4<T>(Z, Y, Z, X);
198+
public Vector4<T> ZYZY => new Vector4<T>(Z, Y, Z, Y);
199+
public Vector4<T> ZYZZ => new Vector4<T>(Z, Y, Z, Z);
200+
public Vector4<T> ZYZW => new Vector4<T>(Z, Y, Z, W);
201+
public Vector4<T> ZYWX => new Vector4<T>(Z, Y, W, X);
202+
public Vector4<T> ZYWY => new Vector4<T>(Z, Y, W, Y);
203+
public Vector4<T> ZYWZ => new Vector4<T>(Z, Y, W, Z);
204+
public Vector4<T> ZYWW => new Vector4<T>(Z, Y, W, W);
205+
public Vector4<T> ZZXX => new Vector4<T>(Z, Z, X, X);
206+
public Vector4<T> ZZXY => new Vector4<T>(Z, Z, X, Y);
207+
public Vector4<T> ZZXZ => new Vector4<T>(Z, Z, X, Z);
208+
public Vector4<T> ZZXW => new Vector4<T>(Z, Z, X, W);
209+
public Vector4<T> ZZYX => new Vector4<T>(Z, Z, Y, X);
210+
public Vector4<T> ZZYY => new Vector4<T>(Z, Z, Y, Y);
211+
public Vector4<T> ZZYZ => new Vector4<T>(Z, Z, Y, Z);
212+
public Vector4<T> ZZYW => new Vector4<T>(Z, Z, Y, W);
213+
public Vector4<T> ZZZX => new Vector4<T>(Z, Z, Z, X);
214+
public Vector4<T> ZZZY => new Vector4<T>(Z, Z, Z, Y);
215+
public Vector4<T> ZZZZ => new Vector4<T>(Z, Z, Z, Z);
216+
public Vector4<T> ZZZW => new Vector4<T>(Z, Z, Z, W);
217+
public Vector4<T> ZZWX => new Vector4<T>(Z, Z, W, X);
218+
public Vector4<T> ZZWY => new Vector4<T>(Z, Z, W, Y);
219+
public Vector4<T> ZZWZ => new Vector4<T>(Z, Z, W, Z);
220+
public Vector4<T> ZZWW => new Vector4<T>(Z, Z, W, W);
221+
public Vector4<T> ZWXX => new Vector4<T>(Z, W, X, X);
222+
public Vector4<T> ZWXY => new Vector4<T>(Z, W, X, Y);
223+
public Vector4<T> ZWXZ => new Vector4<T>(Z, W, X, Z);
224+
public Vector4<T> ZWXW => new Vector4<T>(Z, W, X, W);
225+
public Vector4<T> ZWYX => new Vector4<T>(Z, W, Y, X);
226+
public Vector4<T> ZWYY => new Vector4<T>(Z, W, Y, Y);
227+
public Vector4<T> ZWYZ => new Vector4<T>(Z, W, Y, Z);
228+
public Vector4<T> ZWYW => new Vector4<T>(Z, W, Y, W);
229+
public Vector4<T> ZWZX => new Vector4<T>(Z, W, Z, X);
230+
public Vector4<T> ZWZY => new Vector4<T>(Z, W, Z, Y);
231+
public Vector4<T> ZWZZ => new Vector4<T>(Z, W, Z, Z);
232+
public Vector4<T> ZWZW => new Vector4<T>(Z, W, Z, W);
233+
public Vector4<T> ZWWX => new Vector4<T>(Z, W, W, X);
234+
public Vector4<T> ZWWY => new Vector4<T>(Z, W, W, Y);
235+
public Vector4<T> ZWWZ => new Vector4<T>(Z, W, W, Z);
236+
public Vector4<T> ZWWW => new Vector4<T>(Z, W, W, W);
237+
public Vector4<T> WXXX => new Vector4<T>(W, X, X, X);
238+
public Vector4<T> WXXY => new Vector4<T>(W, X, X, Y);
239+
public Vector4<T> WXXZ => new Vector4<T>(W, X, X, Z);
240+
public Vector4<T> WXXW => new Vector4<T>(W, X, X, W);
241+
public Vector4<T> WXYX => new Vector4<T>(W, X, Y, X);
242+
public Vector4<T> WXYY => new Vector4<T>(W, X, Y, Y);
243+
public Vector4<T> WXYZ => new Vector4<T>(W, X, Y, Z);
244+
public Vector4<T> WXYW => new Vector4<T>(W, X, Y, W);
245+
public Vector4<T> WXZX => new Vector4<T>(W, X, Z, X);
246+
public Vector4<T> WXZY => new Vector4<T>(W, X, Z, Y);
247+
public Vector4<T> WXZZ => new Vector4<T>(W, X, Z, Z);
248+
public Vector4<T> WXZW => new Vector4<T>(W, X, Z, W);
249+
public Vector4<T> WXWX => new Vector4<T>(W, X, W, X);
250+
public Vector4<T> WXWY => new Vector4<T>(W, X, W, Y);
251+
public Vector4<T> WXWZ => new Vector4<T>(W, X, W, Z);
252+
public Vector4<T> WXWW => new Vector4<T>(W, X, W, W);
253+
public Vector4<T> WYXX => new Vector4<T>(W, Y, X, X);
254+
public Vector4<T> WYXY => new Vector4<T>(W, Y, X, Y);
255+
public Vector4<T> WYXZ => new Vector4<T>(W, Y, X, Z);
256+
public Vector4<T> WYXW => new Vector4<T>(W, Y, X, W);
257+
public Vector4<T> WYYX => new Vector4<T>(W, Y, Y, X);
258+
public Vector4<T> WYYY => new Vector4<T>(W, Y, Y, Y);
259+
public Vector4<T> WYYZ => new Vector4<T>(W, Y, Y, Z);
260+
public Vector4<T> WYYW => new Vector4<T>(W, Y, Y, W);
261+
public Vector4<T> WYZX => new Vector4<T>(W, Y, Z, X);
262+
public Vector4<T> WYZY => new Vector4<T>(W, Y, Z, Y);
263+
public Vector4<T> WYZZ => new Vector4<T>(W, Y, Z, Z);
264+
public Vector4<T> WYZW => new Vector4<T>(W, Y, Z, W);
265+
public Vector4<T> WYWX => new Vector4<T>(W, Y, W, X);
266+
public Vector4<T> WYWY => new Vector4<T>(W, Y, W, Y);
267+
public Vector4<T> WYWZ => new Vector4<T>(W, Y, W, Z);
268+
public Vector4<T> WYWW => new Vector4<T>(W, Y, W, W);
269+
public Vector4<T> WZXX => new Vector4<T>(W, Z, X, X);
270+
public Vector4<T> WZXY => new Vector4<T>(W, Z, X, Y);
271+
public Vector4<T> WZXZ => new Vector4<T>(W, Z, X, Z);
272+
public Vector4<T> WZXW => new Vector4<T>(W, Z, X, W);
273+
public Vector4<T> WZYX => new Vector4<T>(W, Z, Y, X);
274+
public Vector4<T> WZYY => new Vector4<T>(W, Z, Y, Y);
275+
public Vector4<T> WZYZ => new Vector4<T>(W, Z, Y, Z);
276+
public Vector4<T> WZYW => new Vector4<T>(W, Z, Y, W);
277+
public Vector4<T> WZZX => new Vector4<T>(W, Z, Z, X);
278+
public Vector4<T> WZZY => new Vector4<T>(W, Z, Z, Y);
279+
public Vector4<T> WZZZ => new Vector4<T>(W, Z, Z, Z);
280+
public Vector4<T> WZZW => new Vector4<T>(W, Z, Z, W);
281+
public Vector4<T> WZWX => new Vector4<T>(W, Z, W, X);
282+
public Vector4<T> WZWY => new Vector4<T>(W, Z, W, Y);
283+
public Vector4<T> WZWZ => new Vector4<T>(W, Z, W, Z);
284+
public Vector4<T> WZWW => new Vector4<T>(W, Z, W, W);
285+
public Vector4<T> WWXX => new Vector4<T>(W, W, X, X);
286+
public Vector4<T> WWXY => new Vector4<T>(W, W, X, Y);
287+
public Vector4<T> WWXZ => new Vector4<T>(W, W, X, Z);
288+
public Vector4<T> WWXW => new Vector4<T>(W, W, X, W);
289+
public Vector4<T> WWYX => new Vector4<T>(W, W, Y, X);
290+
public Vector4<T> WWYY => new Vector4<T>(W, W, Y, Y);
291+
public Vector4<T> WWYZ => new Vector4<T>(W, W, Y, Z);
292+
public Vector4<T> WWYW => new Vector4<T>(W, W, Y, W);
293+
public Vector4<T> WWZX => new Vector4<T>(W, W, Z, X);
294+
public Vector4<T> WWZY => new Vector4<T>(W, W, Z, Y);
295+
public Vector4<T> WWZZ => new Vector4<T>(W, W, Z, Z);
296+
public Vector4<T> WWZW => new Vector4<T>(W, W, Z, W);
297+
public Vector4<T> WWWX => new Vector4<T>(W, W, W, X);
298+
public Vector4<T> WWWY => new Vector4<T>(W, W, W, Y);
299+
public Vector4<T> WWWZ => new Vector4<T>(W, W, W, Z);
300+
public Vector4<T> WWWW => new Vector4<T>(W, W, W, W);
301+
}
302+
}

src/Maths/Silk.NET.Maths/Vector2.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace Silk.NET.Maths
2727
*/
2828

2929
[Serializable]
30-
public readonly struct Vector2<T> : IEquatable<Vector2<T>>, IFormattable where T : unmanaged, IFormattable
30+
public readonly partial struct Vector2<T> : IEquatable<Vector2<T>>, IFormattable where T : unmanaged, IFormattable
3131
{
3232
public static Vector2<T> UnitX => new Vector2<T>(Scalar<T>.One, default);
3333

@@ -531,7 +531,7 @@ public unsafe Vector<T> AsVector()
531531
{
532532
if (Vector<T>.Count >= 2)
533533
{
534-
var span = stackalloc T[] {X, Y};
534+
Span<T> span = stackalloc T[] {X, Y};
535535
var vec = new Vector<T>(span);
536536
return vec;
537537
}

src/Maths/Silk.NET.Maths/Vector3.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
namespace Silk.NET.Maths
1818
{
1919
[Serializable]
20-
public readonly struct Vector3<T> : IEquatable<Vector3<T>>, IFormattable where T : unmanaged, IFormattable
20+
public readonly partial struct Vector3<T> : IEquatable<Vector3<T>>, IFormattable where T : unmanaged, IFormattable
2121
{
2222
public static Vector3<T> UnitX => new Vector3<T>(Scalar<T>.One, default, default);
2323
public static Vector3<T> UnitY => new Vector3<T>(default, Scalar<T>.One, default);
@@ -596,7 +596,7 @@ public unsafe Vector<T> AsVector()
596596
{
597597
if (Vector<T>.Count >= 3)
598598
{
599-
var span = stackalloc T[] {X, Y, Z};
599+
Span<T> span = stackalloc T[] {X, Y, Z};
600600
var vec = new Vector<T>(span);
601601
return vec;
602602
}

0 commit comments

Comments
 (0)