30 instantiations of Vector2
Microsoft.Gen.Logging.Generated.Tests (1)
LogPropertiesTests.cs (1)
106
P16 = new
Vector2
(1),
Microsoft.Maui.Graphics (11)
Matrix3x2Extensions.cs (8)
53
var sx = matrix.M12 == 0 ? Math.Abs(matrix.M11) : new
Vector2
(matrix.M11, matrix.M12).Length();
54
var sy = matrix.M21 == 0 ? Math.Abs(matrix.M22) : new
Vector2
(matrix.M21, matrix.M22).Length();
57
return new
Vector2
(sx, sy);
72
var sx = matrix.M12 == 0 ? Math.Abs(matrix.M11) : new
Vector2
(matrix.M11, matrix.M12).Length();
73
var sy = matrix.M21 == 0 ? Math.Abs(matrix.M22) : new
Vector2
(matrix.M21, matrix.M22).Length();
76
scale /= new
Vector2
(sx, sy);
167
scalex = value.M12 == 0 ? MathF.Abs(value.M11) : new
Vector2
(value.M11, value.M12).Length();
168
scaley = value.M21 == 0 ? MathF.Abs(value.M22) : new
Vector2
(value.M21, value.M22).Length();
PathF.cs (1)
1607
return new
Vector2
(point.X, point.Y);
PointF.cs (1)
128
public static explicit operator Vector2(PointF p) => new
Vector2
(p.X, p.Y);
SizeF.cs (1)
83
return new
Vector2
(size.Width, size.Height);
Microsoft.Maui.Graphics.Win2D.WinUI.Desktop (15)
src\Graphics\src\Graphics\Platforms\Windows\GraphicsExtensions.cs (12)
171
new
Vector2
(ox + controlPoint.X * fx, oy + controlPoint.Y * fy),
172
new
Vector2
(ox + endPoint.X * fx, oy + endPoint.Y * fy));
180
new
Vector2
(ox + controlPoint1.X * fx, oy + controlPoint1.Y * fy),
181
new
Vector2
(ox + controlPoint2.X * fx, oy + controlPoint2.Y * fy),
182
new
Vector2
(ox + endPoint.X * fx, oy + endPoint.Y * fy));
226
new
Vector2
(endPoint.X, endPoint.Y),
293
new
Vector2
(controlPoint.X * scale, controlPoint.Y * scale),
294
new
Vector2
(endPoint.X * scale, endPoint.Y * scale));
306
new
Vector2
(controlPoint1.X * scale, controlPoint1.Y * scale),
307
new
Vector2
(controlPoint2.X * scale, controlPoint2.Y * scale),
308
new
Vector2
(endPoint.X * scale, endPoint.Y * scale));
344
new
Vector2
(endPoint.X, endPoint.Y),
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvas.cs (2)
198
new
Vector2
(_point2.X, _point2.Y),
586
new
Vector2
(_point2.X, _point2.Y),
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvasState.cs (1)
405
ShadowOffset = new
Vector2
(offset.Width, offset.Height);
System.Drawing.Common.Tests (1)
System\Drawing\GraphicsTests.Core.cs (1)
11
private static Matrix3x2 s_testMatrix = Matrix3x2.CreateRotation(45) * Matrix3x2.CreateScale(2) * Matrix3x2.CreateTranslation(new
Vector2
(10, 20));
System.Drawing.Primitives (2)
System\Drawing\PointF.cs (1)
47
public Vector2 ToVector2() => new
Vector2
(x, y);
System\Drawing\SizeF.cs (1)
58
public Vector2 ToVector2() => new
Vector2
(width, height);
530 references to Vector2
Microsoft.Gen.Logging.Generated.Tests (1)
test\Generators\Microsoft.Gen.Logging\TestClasses\LogPropertiesSpecialTypesExtensions.cs (1)
33
public
Vector2
P16 { get; set; }
Microsoft.Maui.Graphics (37)
Converters\PointFTypeConverter.cs (2)
12
=> sourceType == typeof(string) || sourceType == typeof(
Vector2
);
28
if (value is
Vector2
vec)
Converters\PointTypeConverter.cs (2)
12
=> sourceType == typeof(string) || sourceType == typeof(
Vector2
);
28
if (value is
Vector2
vec)
Matrix3x2Extensions.cs (11)
51
public static
Vector2
GetScale(this in Matrix3x2 matrix)
65
public static
Vector2
GetTranslation(this in Matrix3x2 matrix)
70
public static Matrix3x2 WithScale(this Matrix3x2 matrix,
Vector2
scale)
91
return matrix.WithScale(
Vector2
.One);
96
var
t = matrix.Translation;
97
var
s = matrix.GetScale();
103
var
t = matrix.Translation;
104
var
s = matrix.GetScale();
108
public static Matrix3x2 WithTranslation(this Matrix3x2 matrix,
Vector2
translation)
129
internal static Matrix3x2 CreateMatrix3x2(
Vector2
scale, float rotation,
Vector2
translation)
PathF.cs (9)
934
_points[i] =
Vector2
.Transform((
Vector2
)_points[i], transform);
1544
var vectors = new
Vector2
[4];
1560
var
vector = GetPointAsVector(curvePoints, index + 3);
1591
private
Vector2
DeCasteljau(List<PointF> curvePoints, int index, float t)
1595
var
vector0 = s * GetPointAsVector(curvePoints, index) + t * GetPointAsVector(curvePoints, index + 1);
1596
var
vector1 = s * GetPointAsVector(curvePoints, index + 1) + t * GetPointAsVector(curvePoints, index + 2);
1597
var
vector2 = s * GetPointAsVector(curvePoints, index + 2) + t * GetPointAsVector(curvePoints, index + 3);
1604
private
Vector2
GetPointAsVector(List<PointF> curvePoints, int index)
Point.cs (2)
42
public Point(
Vector2
v)
128
public static implicit operator Point(
Vector2
v) => new Point(v);
PointF.cs (5)
36
public PointF(
Vector2
v)
74
return
Vector2
.Transform((
Vector2
)this, transform);
126
public static implicit operator PointF(
Vector2
v) => new PointF(v);
128
public static explicit operator
Vector2
(PointF p) => new Vector2(p.X, p.Y);
Size.cs (1)
27
public Size(
Vector2
vector)
SizeF.cs (5)
27
public SizeF(
Vector2
vector)
43
return (SizeF)
Vector2
.TransformNormal((
Vector2
)this, transform);
81
public static explicit operator
Vector2
(SizeF size)
86
public static explicit operator SizeF(
Vector2
size)
Microsoft.Maui.Graphics.Win2D.WinUI.Desktop (12)
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvas.cs (5)
38
private
Vector2
_point1;
39
private
Vector2
_point2;
40
private
Vector2
_linearGradientStartPoint;
41
private
Vector2
_linearGradientEndPoint;
42
private
Vector2
_radialGradientCenter;
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvasState.cs (7)
43
private
Vector2
_linearGradientStartPoint;
44
private
Vector2
_linearGradientEndPoint;
45
private
Vector2
_radialGradientCenter;
79
public
Vector2
ShadowOffset { get; private set; }
300
public void SetLinearGradient(Paint aPaint,
Vector2
startPoint,
Vector2
endPoint)
310
public void SetRadialGradient(Paint aPaint,
Vector2
center, float radius)
netstandard (1)
netstandard.cs (1)
1339
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector2
))]
System.Drawing.Primitives (17)
System\Drawing\PointF.cs (8)
36
/// <see cref="System.Numerics.
Vector2
"/>.
38
public PointF(
Vector2
vector)
45
/// Creates a new <see cref="System.Numerics.
Vector2
"/> from this <see cref="System.Drawing.PointF"/>.
47
public
Vector2
ToVector2() => new Vector2(x, y);
74
/// Converts the specified <see cref="System.Drawing.PointF"/> to a <see cref="System.Numerics.
Vector2
"/>.
76
public static explicit operator
Vector2
(PointF point) => point.ToVector2();
79
/// Converts the specified <see cref="System.Numerics.
Vector2
"/> to a <see cref="System.Drawing.PointF"/>.
81
public static explicit operator PointF(
Vector2
vector) => new PointF(vector);
System\Drawing\RectangleF.cs (1)
74
/// Converts the specified <see cref="System.Numerics.
Vector2
"/> to a <see cref="System.Drawing.RectangleF"/>.
System\Drawing\SizeF.cs (8)
47
/// <see cref="System.Numerics.
Vector2
"/>.
49
public SizeF(
Vector2
vector)
56
/// Creates a new <see cref="System.Numerics.
Vector2
"/> from this <see cref="System.Drawing.SizeF"/>.
58
public
Vector2
ToVector2() => new Vector2(width, height);
70
/// Converts the specified <see cref="System.Drawing.SizeF"/> to a <see cref="System.Numerics.
Vector2
"/>.
72
public static explicit operator
Vector2
(SizeF size) => size.ToVector2();
75
/// Converts the specified <see cref="System.Numerics.
Vector2
"/> to a <see cref="System.Drawing.SizeF"/>.
77
public static explicit operator SizeF(
Vector2
vector) => new SizeF(vector);
System.Numerics (1)
System.Numerics.cs (1)
10
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector2
))]
System.Numerics.Vectors (1)
artifacts\obj\System.Numerics.Vectors\Debug\net10.0\System.Numerics.Vectors.Forwards.cs (1)
9
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector2
))]
System.Private.CoreLib (460)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix3x2.cs (9)
100
public
Vector2
Translation
187
public static Matrix3x2 CreateRotation(float radians,
Vector2
centerPoint)
193
public static Matrix3x2 CreateScale(
Vector2
scales)
208
public static Matrix3x2 CreateScale(float xScale, float yScale,
Vector2
centerPoint)
215
public static Matrix3x2 CreateScale(
Vector2
scales,
Vector2
centerPoint)
228
public static Matrix3x2 CreateScale(float scale,
Vector2
centerPoint)
243
public static Matrix3x2 CreateSkew(float radiansX, float radiansY,
Vector2
centerPoint)
249
public static Matrix3x2 CreateTranslation(
Vector2
position)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix3x2.Impl.cs (69)
37
public
Vector2
X;
38
public
Vector2
Y;
39
public
Vector2
Z;
46
X =
Vector2
.Create(m11, m12);
47
Y =
Vector2
.Create(m21, m22);
48
Z =
Vector2
.Create(m31, m32);
58
result.X =
Vector2
.UnitX;
59
result.Y =
Vector2
.UnitY;
60
result.Z =
Vector2
.Zero;
94
return (X ==
Vector2
.UnitX)
95
&& (Y ==
Vector2
.UnitY)
96
&& (Z ==
Vector2
.Zero);
100
public
Vector2
Translation
148
result.X =
Vector2
.Create(
152
result.Y =
Vector2
.Create(
156
result.Z =
Vector2
.Create(
244
result.X =
Vector2
.Create( c, s);
245
result.Y =
Vector2
.Create(-s, c);
246
result.Z =
Vector2
.Zero;
252
public static Impl CreateRotation(float radians,
Vector2
centerPoint)
297
result.X =
Vector2
.Create( c, s);
298
result.Y =
Vector2
.Create(-s, c);
299
result.Z =
Vector2
.Create( x, y);
305
public static Impl CreateScale(
Vector2
scales)
309
result.X =
Vector2
.CreateScalar(scales.X);
310
result.Y =
Vector2
.Create(0, scales.Y);
311
result.Z =
Vector2
.Zero;
321
result.X =
Vector2
.CreateScalar(scaleX);
322
result.Y =
Vector2
.Create(0, scaleY);
323
result.Z =
Vector2
.Zero;
329
public static Impl CreateScale(float scaleX, float scaleY,
Vector2
centerPoint)
333
result.X =
Vector2
.CreateScalar(scaleX);
334
result.Y =
Vector2
.Create(0, scaleY);
335
result.Z = centerPoint * (
Vector2
.One -
Vector2
.Create(scaleX, scaleY));
341
public static Impl CreateScale(
Vector2
scales,
Vector2
centerPoint)
345
result.X =
Vector2
.CreateScalar(scales.X);
346
result.Y =
Vector2
.Create(0, scales.Y);
347
result.Z = centerPoint * (
Vector2
.One - scales);
357
result.X =
Vector2
.CreateScalar(scale);
358
result.Y =
Vector2
.Create(0, scale);
359
result.Z =
Vector2
.Zero;
365
public static Impl CreateScale(float scale,
Vector2
centerPoint)
369
result.X =
Vector2
.CreateScalar(scale);
370
result.Y =
Vector2
.Create(0, scale);
371
result.Z = centerPoint * (
Vector2
.One -
Vector2
.Create(scale));
381
result.X =
Vector2
.Create(1, float.Tan(radiansY));
382
result.Y =
Vector2
.Create(float.Tan(radiansX), 1);
383
result.Z =
Vector2
.Zero;
389
public static Impl CreateSkew(float radiansX, float radiansY,
Vector2
centerPoint)
399
result.X =
Vector2
.Create(1, yTan);
400
result.Y =
Vector2
.Create(xTan, 1);
401
result.Z =
Vector2
.Create(tx, ty);
407
public static Impl CreateTranslation(
Vector2
position)
411
result.X =
Vector2
.UnitX;
412
result.Y =
Vector2
.UnitY;
423
result.X =
Vector2
.UnitX;
424
result.Y =
Vector2
.UnitY;
425
result.Z =
Vector2
.Create(positionX, positionY);
437
Vector2
vNaN =
Vector2
.Create(float.NaN);
448
result.X =
Vector2
.Create(
452
result.Y =
Vector2
.Create(
456
result.Z =
Vector2
.Create(
469
result.X =
Vector2
.Lerp(left.X, right.X, amount);
470
result.Y =
Vector2
.Lerp(left.Y, right.Y, amount);
471
result.Z =
Vector2
.Lerp(left.Z, right.Z, amount);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.cs (328)
18
public partial struct Vector2 : IEquatable<
Vector2
>, IFormattable
20
/// <summary>Specifies the alignment of the vector as used by the <see cref="LoadAligned(float*)" /> and <see cref="Vector.StoreAligned(
Vector2
, float*)" /> APIs.</summary>
46
/// <summary>Creates a new <see cref="
Vector2
" /> object whose two elements have the same value.</summary>
72
public static
Vector2
AllBitsSet
79
public static
Vector2
E
86
public static
Vector2
Epsilon
93
public static
Vector2
NaN
100
public static
Vector2
NegativeInfinity
107
public static
Vector2
NegativeZero
114
public static
Vector2
One
121
public static
Vector2
Pi
128
public static
Vector2
PositiveInfinity
135
public static
Vector2
Tau
143
public static
Vector2
UnitX
151
public static
Vector2
UnitY
158
public static
Vector2
Zero
184
/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="
Vector2
" /> objects.</remarks>
187
public static
Vector2
operator +(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector2();
193
/// <remarks>The <see cref="
Vector2
.op_Division" /> method defines the division operation for <see cref="
Vector2
" /> objects.</remarks>
196
public static
Vector2
operator /(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector2();
202
/// <remarks>The <see cref="
Vector2
.op_Division" /> method defines the division operation for <see cref="
Vector2
" /> objects.</remarks>
205
public static
Vector2
operator /(
Vector2
value1, float value2) => (value1.AsVector128Unsafe() / value2).AsVector2();
211
/// <remarks>Two <see cref="
Vector2
" /> objects are equal if each value in <paramref name="left" /> is equal to the corresponding value in <paramref name="right" />.</remarks>
214
public static bool operator ==(
Vector2
left,
Vector2
right) => left.AsVector128() == right.AsVector128();
221
public static bool operator !=(
Vector2
left,
Vector2
right) => !(left == right);
227
/// <remarks>The <see cref="
Vector2
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector2
" /> objects.</remarks>
230
public static
Vector2
operator *(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector2();
236
/// <remarks>The <see cref="
Vector2
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector2
" /> objects.</remarks>
239
public static
Vector2
operator *(
Vector2
left, float right) => (left.AsVector128Unsafe() * right).AsVector2();
245
/// <remarks>The <see cref="
Vector2
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector2
" /> objects.</remarks>
247
public static
Vector2
operator *(float left,
Vector2
right) => right * left;
253
/// <remarks>The <see cref="op_Subtraction" /> method defines the subtraction operation for <see cref="
Vector2
" /> objects.</remarks>
256
public static
Vector2
operator -(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector2();
261
/// <remarks>The <see cref="op_UnaryNegation" /> method defines the unary negation operation for <see cref="
Vector2
" /> objects.</remarks>
264
public static
Vector2
operator -(
Vector2
value) => (-value.AsVector128Unsafe()).AsVector2();
269
public static
Vector2
operator &(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector2();
274
public static
Vector2
operator |(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector2();
279
public static
Vector2
operator ^(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector2();
284
public static
Vector2
operator <<(
Vector2
value, int shiftAmount) => (value.AsVector128Unsafe() << shiftAmount).AsVector2();
289
public static
Vector2
operator ~(
Vector2
value) => (~value.AsVector128Unsafe()).AsVector2();
294
public static
Vector2
operator >>(
Vector2
value, int shiftAmount) => (value.AsVector128Unsafe() >> shiftAmount).AsVector2();
299
public static
Vector2
operator +(
Vector2
value) => value;
304
public static
Vector2
operator >>>(
Vector2
value, int shiftAmount) => (value.AsVector128Unsafe() >>> shiftAmount).AsVector2();
311
public static
Vector2
Abs(
Vector2
value) => Vector128.Abs(value.AsVector128Unsafe()).AsVector2();
318
public static
Vector2
Add(
Vector2
left,
Vector2
right) => left + right;
323
public static bool All(
Vector2
vector, float value) => Vector128.All(vector, value);
328
public static bool AllWhereAllBitsSet(
Vector2
vector) => Vector128.AllWhereAllBitsSet(vector);
333
public static
Vector2
AndNot(
Vector2
left,
Vector2
right) => Vector128.AndNot(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
338
public static bool Any(
Vector2
vector, float value) => Vector128.Any(vector, value);
343
public static bool AnyWhereAllBitsSet(
Vector2
vector) => Vector128.AnyWhereAllBitsSet(vector);
347
public static
Vector2
BitwiseAnd(
Vector2
left,
Vector2
right) => left & right;
351
public static
Vector2
BitwiseOr(
Vector2
left,
Vector2
right) => left | right;
356
public static
Vector2
Clamp(
Vector2
value1,
Vector2
min,
Vector2
max) => Vector128.Clamp(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector2();
361
public static
Vector2
ClampNative(
Vector2
value1,
Vector2
min,
Vector2
max) => Vector128.ClampNative(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector2();
366
public static
Vector2
ConditionalSelect(
Vector2
condition,
Vector2
left,
Vector2
right) => Vector128.ConditionalSelect(condition.AsVector128Unsafe(), left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
371
public static
Vector2
CopySign(
Vector2
value,
Vector2
sign) => Vector128.CopySign(value.AsVector128Unsafe(), sign.AsVector128Unsafe()).AsVector2();
375
public static
Vector2
Cos(
Vector2
vector) => Vector128.Cos(vector.AsVector128()).AsVector2();
380
public static int Count(
Vector2
vector, float value) => Vector128.Count(vector, value);
385
public static int CountWhereAllBitsSet(
Vector2
vector) => Vector128.CountWhereAllBitsSet(vector);
387
/// <summary>Creates a new <see cref="
Vector2
" /> object whose two elements have the same value.</summary>
389
/// <returns>A new <see cref="
Vector2
" /> whose two elements have the same value.</returns>
391
public static
Vector2
Create(float value) => Vector128.Create(value).AsVector2();
396
/// <returns>A new <see cref="
Vector2
" /> whose elements have the specified values.</returns>
398
public static
Vector2
Create(float x, float y) => Vector128.Create(x, y, 0, 0).AsVector2();
402
/// <returns>A new <see cref="
Vector2
" /> whose elements have the specified values.</returns>
405
public static
Vector2
Create(ReadOnlySpan<float> values)
411
return Unsafe.ReadUnaligned<
Vector2
>(ref Unsafe.As<float, byte>(ref MemoryMarshal.GetReference(values)));
416
/// <returns>A new <see cref="
Vector2
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements initialized to zero.</returns>
418
internal static
Vector2
CreateScalar(float x) => Vector128.CreateScalar(x).AsVector2();
422
/// <returns>A new <see cref="
Vector2
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements left uninitialized.</returns>
424
internal static
Vector2
CreateScalarUnsafe(float x) => Vector128.CreateScalarUnsafe(x).AsVector2();
439
public static float Cross(
Vector2
value1,
Vector2
value2)
453
public static
Vector2
DegreesToRadians(
Vector2
degrees) => Vector128.DegreesToRadians(degrees.AsVector128Unsafe()).AsVector2();
460
public static float Distance(
Vector2
value1,
Vector2
value2) => float.Sqrt(DistanceSquared(value1, value2));
467
public static float DistanceSquared(
Vector2
value1,
Vector2
value2) => (value1 - value2).LengthSquared();
474
public static
Vector2
Divide(
Vector2
left,
Vector2
right) => left / right;
481
public static
Vector2
Divide(
Vector2
left, float divisor) => left / divisor;
489
public static float Dot(
Vector2
value1,
Vector2
value2) => Vector128.Dot(value1.AsVector128(), value2.AsVector128());
493
public static
Vector2
Exp(
Vector2
vector) => Vector128.Exp(vector.AsVector128()).AsVector2();
498
public static
Vector2
Equals(
Vector2
left,
Vector2
right) => Vector128.Equals(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
503
public static bool EqualsAll(
Vector2
left,
Vector2
right) => Vector128.EqualsAll(left.AsVector128Unsafe(), right.AsVector128Unsafe());
508
public static bool EqualsAny(
Vector2
left,
Vector2
right) => Vector128.EqualsAny(left.AsVector128Unsafe(), right.AsVector128Unsafe());
513
public static
Vector2
FusedMultiplyAdd(
Vector2
left,
Vector2
right,
Vector2
addend) => Vector128.FusedMultiplyAdd(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector2();
518
public static
Vector2
GreaterThan(
Vector2
left,
Vector2
right) => Vector128.GreaterThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
523
public static bool GreaterThanAll(
Vector2
left,
Vector2
right) => Vector128.GreaterThanAll(left.AsVector128Unsafe(), right.AsVector128Unsafe());
528
public static bool GreaterThanAny(
Vector2
left,
Vector2
right) => Vector128.GreaterThanAny(left.AsVector128Unsafe(), right.AsVector128Unsafe());
533
public static
Vector2
GreaterThanOrEqual(
Vector2
left,
Vector2
right) => Vector128.GreaterThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
538
public static bool GreaterThanOrEqualAll(
Vector2
left,
Vector2
right) => Vector128.GreaterThanOrEqualAll(left.AsVector128Unsafe(), right.AsVector128Unsafe());
543
public static bool GreaterThanOrEqualAny(
Vector2
left,
Vector2
right) => Vector128.GreaterThanOrEqualAny(left.AsVector128Unsafe(), right.AsVector128Unsafe());
548
public static
Vector2
Hypot(
Vector2
x,
Vector2
y) => Vector128.Hypot(x.AsVector128Unsafe(), y.AsVector128Unsafe()).AsVector2();
553
public static int IndexOf(
Vector2
vector, float value) => Vector128.IndexOf(vector, value);
558
public static int IndexOfWhereAllBitsSet(
Vector2
vector) => Vector128.IndexOfWhereAllBitsSet(vector);
563
public static
Vector2
IsEvenInteger(
Vector2
vector) => Vector128.IsEvenInteger(vector.AsVector128()).AsVector2();
568
public static
Vector2
IsFinite(
Vector2
vector) => Vector128.IsFinite(vector.AsVector128()).AsVector2();
573
public static
Vector2
IsInfinity(
Vector2
vector) => Vector128.IsInfinity(vector.AsVector128()).AsVector2();
578
public static
Vector2
IsInteger(
Vector2
vector) => Vector128.IsInteger(vector.AsVector128()).AsVector2();
583
public static
Vector2
IsNaN(
Vector2
vector) => Vector128.IsNaN(vector.AsVector128()).AsVector2();
588
public static
Vector2
IsNegative(
Vector2
vector) => Vector128.IsNegative(vector.AsVector128()).AsVector2();
593
public static
Vector2
IsNegativeInfinity(
Vector2
vector) => Vector128.IsNegativeInfinity(vector.AsVector128()).AsVector2();
598
public static
Vector2
IsNormal(
Vector2
vector) => Vector128.IsNormal(vector.AsVector128()).AsVector2();
603
public static
Vector2
IsOddInteger(
Vector2
vector) => Vector128.IsOddInteger(vector.AsVector128()).AsVector2();
608
public static
Vector2
IsPositive(
Vector2
vector) => Vector128.IsPositive(vector.AsVector128()).AsVector2();
613
public static
Vector2
IsPositiveInfinity(
Vector2
vector) => Vector128.IsPositiveInfinity(vector.AsVector128()).AsVector2();
618
public static
Vector2
IsSubnormal(
Vector2
vector) => Vector128.IsSubnormal(vector.AsVector128()).AsVector2();
623
public static
Vector2
IsZero(
Vector2
vector) => Vector128.IsZero(vector.AsVector128()).AsVector2();
628
public static int LastIndexOf(
Vector2
vector, float value) => Vector128.LastIndexOf(vector, value);
633
public static int LastIndexOfWhereAllBitsSet(
Vector2
vector) => Vector128.LastIndexOfWhereAllBitsSet(vector);
638
public static
Vector2
Lerp(
Vector2
value1,
Vector2
value2, float amount) => Lerp(value1, value2, Create(amount));
643
public static
Vector2
Lerp(
Vector2
value1,
Vector2
value2,
Vector2
amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), amount.AsVector128Unsafe()).AsVector2();
648
public static
Vector2
LessThan(
Vector2
left,
Vector2
right) => Vector128.LessThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
653
public static bool LessThanAll(
Vector2
left,
Vector2
right) => Vector128.LessThanAll(left.AsVector128Unsafe(), right.AsVector128Unsafe());
658
public static bool LessThanAny(
Vector2
left,
Vector2
right) => Vector128.LessThanAny(left.AsVector128Unsafe(), right.AsVector128Unsafe());
663
public static
Vector2
LessThanOrEqual(
Vector2
left,
Vector2
right) => Vector128.LessThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
668
public static bool LessThanOrEqualAll(
Vector2
left,
Vector2
right) => Vector128.LessThanOrEqualAll(left.AsVector128Unsafe(), right.AsVector128Unsafe());
673
public static bool LessThanOrEqualAny(
Vector2
left,
Vector2
right) => Vector128.LessThanOrEqualAny(left.AsVector128Unsafe(), right.AsVector128Unsafe());
678
public static unsafe
Vector2
Load(float* source) => LoadUnsafe(in *source);
684
public static unsafe
Vector2
LoadAligned(float* source)
691
return *(
Vector2
*)source;
697
public static unsafe
Vector2
LoadAlignedNonTemporal(float* source) => LoadAligned(source);
702
public static
Vector2
LoadUnsafe(ref readonly float source)
705
return Unsafe.ReadUnaligned<
Vector2
>(in address);
712
public static
Vector2
LoadUnsafe(ref readonly float source, nuint elementOffset)
715
return Unsafe.ReadUnaligned<
Vector2
>(in address);
720
public static
Vector2
Log(
Vector2
vector) => Vector128.Log(Vector4.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2();
724
public static
Vector2
Log2(
Vector2
vector) => Vector128.Log2(Vector4.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2();
729
public static
Vector2
Max(
Vector2
value1,
Vector2
value2) => Vector128.Max(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
734
public static
Vector2
MaxMagnitude(
Vector2
value1,
Vector2
value2) => Vector128.MaxMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
739
public static
Vector2
MaxMagnitudeNumber(
Vector2
value1,
Vector2
value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
744
public static
Vector2
MaxNative(
Vector2
value1,
Vector2
value2) => Vector128.MaxNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
749
public static
Vector2
MaxNumber(
Vector2
value1,
Vector2
value2) => Vector128.MaxNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
754
public static
Vector2
Min(
Vector2
value1,
Vector2
value2) => Vector128.Min(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
759
public static
Vector2
MinMagnitude(
Vector2
value1,
Vector2
value2) => Vector128.MinMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
764
public static
Vector2
MinMagnitudeNumber(
Vector2
value1,
Vector2
value2) => Vector128.MinMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
769
public static
Vector2
MinNative(
Vector2
value1,
Vector2
value2) => Vector128.MinNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
774
public static
Vector2
MinNumber(
Vector2
value1,
Vector2
value2) => Vector128.MinNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
781
public static
Vector2
Multiply(
Vector2
left,
Vector2
right) => left * right;
788
public static
Vector2
Multiply(
Vector2
left, float right) => left * right;
795
public static
Vector2
Multiply(float left,
Vector2
right) => left * right;
800
public static
Vector2
MultiplyAddEstimate(
Vector2
left,
Vector2
right,
Vector2
addend) => Vector128.MultiplyAddEstimate(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector2();
806
public static
Vector2
Negate(
Vector2
value) => -value;
811
public static bool None(
Vector2
vector, float value) => Vector128.None(vector, value);
816
public static bool NoneWhereAllBitsSet(
Vector2
vector) => Vector128.NoneWhereAllBitsSet(vector);
822
public static
Vector2
Normalize(
Vector2
value) => value / value.Length();
826
public static
Vector2
OnesComplement(
Vector2
value) => ~value;
831
public static
Vector2
RadiansToDegrees(
Vector2
radians) => Vector128.RadiansToDegrees(radians.AsVector128Unsafe()).AsVector2();
838
public static
Vector2
Reflect(
Vector2
vector,
Vector2
normal)
843
Vector2
tmp = Create(Dot(vector, normal));
850
public static
Vector2
Round(
Vector2
vector) => Vector128.Round(vector.AsVector128Unsafe()).AsVector2();
854
public static
Vector2
Round(
Vector2
vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128Unsafe(), mode).AsVector2();
862
public static
Vector2
Shuffle(
Vector2
vector, byte xIndex, byte yIndex)
871
public static
Vector2
Sin(
Vector2
vector) => Vector128.Sin(vector.AsVector128()).AsVector2();
875
public static (
Vector2
Sin,
Vector2
Cos) SinCos(
Vector2
vector)
886
public static
Vector2
SquareRoot(
Vector2
value) => Vector128.Sqrt(value.AsVector128Unsafe()).AsVector2();
893
public static
Vector2
Subtract(
Vector2
left,
Vector2
right) => left - right;
898
public static float Sum(
Vector2
value) => Vector128.Sum(value.AsVector128());
904
public static
Vector2
Transform(
Vector2
position, Matrix3x2 matrix) => Transform(position, in matrix.AsImpl());
907
internal static
Vector2
Transform(
Vector2
position, in Matrix3x2.Impl matrix)
909
Vector2
result = matrix.X * position.X;
919
public static
Vector2
Transform(
Vector2
position, Matrix4x4 matrix) => Vector4.Transform(position, in matrix.AsImpl()).AsVector128().AsVector2();
926
public static
Vector2
Transform(
Vector2
value, Quaternion rotation) => Vector4.Transform(value, rotation).AsVector2();
932
public static
Vector2
TransformNormal(
Vector2
normal, Matrix3x2 matrix) => TransformNormal(normal, in matrix.AsImpl());
935
internal static
Vector2
TransformNormal(
Vector2
normal, in Matrix3x2.Impl matrix)
937
Vector2
result = matrix.X * normal.X;
946
public static
Vector2
TransformNormal(
Vector2
normal, Matrix4x4 matrix) => TransformNormal(normal, in matrix.AsImpl());
949
internal static
Vector2
TransformNormal(
Vector2
normal, in Matrix4x4.Impl matrix)
958
public static
Vector2
Truncate(
Vector2
vector) => Vector128.Truncate(vector.AsVector128Unsafe()).AsVector2();
962
public static
Vector2
Xor(
Vector2
left,
Vector2
right) => left ^ right;
1043
/// <remarks>The current instance and <paramref name="obj" /> are equal if <paramref name="obj" /> is a <see cref="
Vector2
" /> object and their <see cref="X" /> and <see cref="Y" /> elements are equal.</remarks>
1044
public override readonly bool Equals([NotNullWhen(true)] object? obj) => (obj is
Vector2
other) && Equals(other);
1051
public readonly bool Equals(
Vector2
other) => this.AsVector128().Equals(other.AsVector128());
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.Extensions.cs (18)
12
/// <summary>Reinterprets a <see cref="
Vector2
" /> to a new <see cref="Vector4" /> with the new elements zeroed.</summary>
15
public static Vector4 AsVector4(this
Vector2
value) => value.AsVector128().AsVector4();
17
/// <summary>Reinterprets a <see cref="
Vector2
" /> to a new <see cref="Vector4" /> with the new elements undefined.</summary>
20
public static Vector4 AsVector4Unsafe(this
Vector2
value) => value.AsVector128Unsafe().AsVector4();
25
public static uint ExtractMostSignificantBits(this
Vector2
vector) => vector.AsVector128().ExtractMostSignificantBits();
29
public static float GetElement(this
Vector2
vector, int index)
31
if ((uint)index >=
Vector2
.ElementCount)
42
public static void Store(this
Vector2
source, float* destination) => source.StoreUnsafe(ref *destination);
50
public static void StoreAligned(this
Vector2
source, float* destination)
52
if (((nuint)destination % (uint)(
Vector2
.Alignment)) != 0)
57
*(
Vector2
*)destination = source;
66
public static void StoreAlignedNonTemporal(this
Vector2
source, float* destination) => source.StoreAligned(destination);
72
public static void StoreUnsafe(this
Vector2
source, ref float destination)
84
public static void StoreUnsafe(this
Vector2
source, ref float destination, nuint elementOffset)
92
public static float ToScalar(this
Vector2
vector) => vector.AsVector128Unsafe().ToScalar();
96
public static
Vector2
WithElement(this
Vector2
vector, int index, float value)
98
if ((uint)index >=
Vector2
.ElementCount)
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.cs (5)
57
/// <summary>Creates a new <see cref="Vector3" /> object from the specified <see cref="
Vector2
" /> object and the specified value.</summary>
61
public Vector3(
Vector2
value, float z)
414
/// <summary>Creates a new <see cref="Vector3" /> object from the specified <see cref="
Vector2
" /> object and a Z and a W component.</summary>
417
/// <returns>A new <see cref="Vector3" /> from the specified <see cref="
Vector2
" /> object and a Z and a W component.</returns>
420
public static Vector3 Create(
Vector2
vector, float z)
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.cs (8)
59
/// <summary>Creates a new <see cref="Vector4" /> object from the specified <see cref="
Vector2
" /> object and a Z and a W component.</summary>
64
public Vector4(
Vector2
value, float z, float w)
446
/// <summary>Creates a new <see cref="Vector4" /> object from the specified <see cref="
Vector2
" /> object and a Z and a W component.</summary>
450
/// <returns>A new <see cref="Vector4" /> from the specified <see cref="
Vector2
" /> object and a Z and a W component.</returns>
453
public static Vector4 Create(
Vector2
vector, float z, float w)
969
public static Vector4 Transform(
Vector2
position, Matrix4x4 matrix) => Transform(position, in matrix.AsImpl());
972
internal static Vector4 Transform(
Vector2
position, in Matrix4x4.Impl matrix)
987
public static Vector4 Transform(
Vector2
value, Quaternion rotation) => Transform(Create(value, 0.0f, 1.0f), rotation);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.Extensions.cs (3)
36
/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="
Vector2
" />.</summary>
38
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector2
" />.</returns>
39
public static
Vector2
AsVector2(this Vector4 value) => value.AsVector128().AsVector2();
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.Numerics.cs (20)
15
internal static bool All(
Vector2
vector, float value) => vector.AsVector128() ==
Vector2
.Create(value).AsVector128();
25
internal static bool AllWhereAllBitsSet(
Vector2
vector) => vector.AsVector128().AsInt32() ==
Vector2
.AllBitsSet.AsVector128().AsInt32();
35
internal static bool Any(
Vector2
vector, float value) => EqualsAny(vector.AsVector128(), Create(value, value, -1, -1));
45
internal static bool AnyWhereAllBitsSet(
Vector2
vector) => EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);
108
public static Vector128<float> AsVector128(this
Vector2
value) => Vector4.Create(value, 0, 0).AsVector128();
149
public static Vector128<float> AsVector128Unsafe(this
Vector2
value)
173
/// <summary>Reinterprets a <see langword="Vector128<Single>" /> as a new <see cref="
Vector2
" />.</summary>
175
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector2
" />.</returns>
178
public static
Vector2
AsVector2(this Vector128<float> value)
181
return Unsafe.ReadUnaligned<
Vector2
>(ref address);
228
internal static int Count(
Vector2
vector, float value) => BitOperations.PopCount(Equals(vector.AsVector128(), Create(value, value, -1, -1)).ExtractMostSignificantBits());
238
internal static int CountWhereAllBitsSet(
Vector2
vector) => BitOperations.PopCount(Equals(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet).ExtractMostSignificantBits());
248
internal static int IndexOf(
Vector2
vector, float value)
266
internal static int IndexOfWhereAllBitsSet(
Vector2
vector)
284
internal static int LastIndexOf(
Vector2
vector, float value) => 31 - BitOperations.LeadingZeroCount(Equals(vector.AsVector128(), Create(value, value, -1, -1)).ExtractMostSignificantBits());
294
internal static int LastIndexOfWhereAllBitsSet(
Vector2
vector) => 31 - BitOperations.LeadingZeroCount(Equals(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet).ExtractMostSignificantBits());
304
internal static bool None(
Vector2
vector, float value) => !EqualsAny(vector.AsVector128(), Create(value, value, -1, -1));
314
internal static bool NoneWhereAllBitsSet(
Vector2
vector) => !EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);