5 instantiations of Vector3
Microsoft.Gen.Logging.Generated.Tests (1)
LogPropertiesTests.cs (1)
107
P17 = new
Vector3
(1, 2, 3),
Microsoft.Maui (1)
Platform\ViewExtensions.cs (1)
36
internal static Vector3 ExtractScale(this Matrix4x4 matrix) => new
Vector3
(matrix.M11, matrix.M22, matrix.M33);
Microsoft.Maui.Essentials (3)
Accelerometer\Accelerometer.shared.cs (1)
146
Acceleration = new
Vector3
(x, y, z);
Gyroscope\Gyroscope.shared.cs (1)
134
AngularVelocity = new
Vector3
(x, y, z);
Magnetometer\Magnetometer.shared.cs (1)
138
MagneticField = new
Vector3
(x, y, z);
481 references to Vector3
Microsoft.Gen.Logging.Generated.Tests (1)
test\Generators\Microsoft.Gen.Logging\TestClasses\LogPropertiesSpecialTypesExtensions.cs (1)
34
public
Vector3
P17 { get; set; }
Microsoft.Maui (2)
Platform\ViewExtensions.cs (2)
34
internal static
Vector3
ExtractPosition(this Matrix4x4 matrix) => matrix.Translation;
36
internal static
Vector3
ExtractScale(this Matrix4x4 matrix) => new Vector3(matrix.M11, matrix.M22, matrix.M33);
Microsoft.Maui.Essentials (5)
Accelerometer\Accelerometer.shared.cs (3)
151
public
Vector3
Acceleration { get; }
158
/// Compares the underlying <see cref="
Vector3
"/> instances.
278
void ProcessShakeEvent(
Vector3
acceleration)
Gyroscope\Gyroscope.shared.cs (1)
139
public
Vector3
AngularVelocity { get; }
Magnetometer\Magnetometer.shared.cs (1)
143
public
Vector3
MagneticField { get; }
netstandard (1)
netstandard.cs (1)
1340
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector3
))]
System.Numerics (1)
System.Numerics.cs (1)
11
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector3
))]
System.Numerics.Vectors (1)
src\runtime\artifacts\obj\System.Numerics.Vectors\Release\net11.0\System.Numerics.Vectors.Forwards.cs (1)
14
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector3
))]
System.Private.CoreLib (470)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.cs (64)
197
public
Vector3
Translation
733
public static Matrix4x4 CreateBillboard(
Vector3
objectPosition,
Vector3
cameraPosition,
Vector3
cameraUpVector,
Vector3
cameraForwardVector)
745
Vector128<float> axisX = Vector128.Normalize(
Vector3
.Cross(cameraUpVector.AsVector128(), axisZ));
746
Vector128<float> axisY =
Vector3
.Cross(axisZ, axisX);
764
public static Matrix4x4 CreateBillboardLeftHanded(
Vector3
objectPosition,
Vector3
cameraPosition,
Vector3
cameraUpVector,
Vector3
cameraForwardVector)
776
Vector128<float> axisX = Vector128.Normalize(
Vector3
.Cross(cameraUpVector.AsVector128(), axisZ));
777
Vector128<float> axisY =
Vector3
.Cross(axisZ, axisX);
796
public static Matrix4x4 CreateConstrainedBillboard(
Vector3
objectPosition,
Vector3
cameraPosition,
Vector3
rotateAxis,
Vector3
cameraForwardVector,
Vector3
objectForwardVector)
838
Vector128<float> axisX = Vector128.Normalize(
Vector3
.Cross(axisY, faceDir));
839
Vector128<float> axisZ = Vector128.Normalize(
Vector3
.Cross(axisX, axisY));
858
public static Matrix4x4 CreateConstrainedBillboardLeftHanded(
Vector3
objectPosition,
Vector3
cameraPosition,
Vector3
rotateAxis,
Vector3
cameraForwardVector,
Vector3
objectForwardVector)
900
Vector128<float> axisX = Vector128.Normalize(
Vector3
.Cross(axisY, faceDir));
901
Vector128<float> axisZ = Vector128.Normalize(
Vector3
.Cross(axisX, axisY));
918
public static Matrix4x4 CreateFromAxisAngle(
Vector3
axis, float angle)
988
public static Matrix4x4 CreateLookAt(
Vector3
cameraPosition,
Vector3
cameraTarget,
Vector3
cameraUpVector)
1001
public static Matrix4x4 CreateLookAtLeftHanded(
Vector3
cameraPosition,
Vector3
cameraTarget,
Vector3
cameraUpVector)
1014
public static Matrix4x4 CreateLookTo(
Vector3
cameraPosition,
Vector3
cameraDirection,
Vector3
cameraUpVector)
1027
public static Matrix4x4 CreateLookToLeftHanded(
Vector3
cameraPosition,
Vector3
cameraDirection,
Vector3
cameraUpVector)
1036
Vector128<float> axisX = Vector128.Normalize(
Vector3
.Cross(cameraUpVector, axisZ));
1037
Vector128<float> axisY =
Vector3
.Cross(axisZ, axisX);
1442
public static Matrix4x4 CreateRotationX(float radians,
Vector3
centerPoint)
1492
public static Matrix4x4 CreateRotationY(float radians,
Vector3
centerPoint)
1542
public static Matrix4x4 CreateRotationZ(float radians,
Vector3
centerPoint)
1589
public static Matrix4x4 CreateScale(float xScale, float yScale, float zScale,
Vector3
centerPoint)
1605
public static Matrix4x4 CreateScale(
Vector3
scales)
1622
public static Matrix4x4 CreateScale(
Vector3
scales,
Vector3
centerPoint)
1655
public static Matrix4x4 CreateScale(float scale,
Vector3
centerPoint)
1672
public static Matrix4x4 CreateShadow(
Vector3
lightDirection, Plane plane)
1694
public static Matrix4x4 CreateTranslation(
Vector3
position)
1795
public static Matrix4x4 CreateWorld(
Vector3
position,
Vector3
forward,
Vector3
up)
1798
Vector128<float> axisX = Vector128.Normalize(
Vector3
.Cross(up.AsVector128(), axisZ));
1799
Vector128<float> axisY =
Vector3
.Cross(axisZ, axisX);
1818
public static unsafe bool Decompose(Matrix4x4 matrix, out
Vector3
scale, out Quaternion rotation, out
Vector3
translation)
1821
internal static unsafe bool Decompose(in Impl matrix, out
Vector3
scale, out Quaternion rotation, out
Vector3
translation)
1922
*vectorBasis[b] =
Vector3
.Cross(*vectorBasis[a], canonicalBasis[cc]);
1929
*vectorBasis[c] =
Vector3
.Cross(*vectorBasis[a], *vectorBasis[b]);
1964
scale = *(
Vector3
*)scales;
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Plane.cs (9)
18
public
Vector3
Normal;
40
public Plane(
Vector3
normal, float d)
67
public static Plane Create(
Vector3
normal, float d) => Vector4.Create(normal, d).AsPlane();
85
public static Plane CreateFromVertices(
Vector3
point1,
Vector3
point2,
Vector3
point3) => CreateFromVertices(point1.AsVector128Unsafe(), point2.AsVector128Unsafe(), point3.AsVector128Unsafe()).AsPlane();
93
Vector128<float> normal = Vector128.Normalize(
Vector3
.Cross(point2 - point1, point3 - point1).WithElement(3, 0.0f));
110
public static float DotCoordinate(Plane plane,
Vector3
value)
123
public static float DotNormal(Plane plane,
Vector3
value)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Quaternion.cs (7)
47
public Quaternion(
Vector3
vectorPart, float scalarPart)
226
public static Quaternion Create(
Vector3
vectorPart, float scalarPart) => Vector4.Create(vectorPart, scalarPart).AsQuaternion();
234
public static Quaternion CreateFromAxisAngle(
Vector3
axis, float angle) => CreateFromAxisAngle(axis.AsVector128Unsafe(), angle).AsQuaternion();
307
(
Vector3
sin,
Vector3
cos) =
Vector3
.SinCos(
Vector3
.Create(roll, pitch, yaw) * 0.5f);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.Extensions.cs (6)
11
/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="
Vector3
" /> with the new elements zeroed.</summary>
13
/// <returns><paramref name="value" /> reinterpreted to a new <see cref="
Vector3
" /> with the new elements zeroed.</returns>
14
public static
Vector3
AsVector3(this Vector2 value) => value.AsVector128().AsVector3();
16
/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="
Vector3
" /> with the new elements undefined.</summary>
18
/// <returns><paramref name="value" /> reinterpreted to a new <see cref="
Vector3
" /> with the new elements undefined.</returns>
19
public static
Vector3
AsVector3Unsafe(this Vector2 value) => value.AsVector128Unsafe().AsVector3();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.cs (326)
18
public partial struct Vector3 : IEquatable<
Vector3
>, IFormattable
20
/// <summary>Specifies the alignment of the vector as used by the <see cref="LoadAligned(float*)" /> and <see cref="Vector.StoreAligned(
Vector3
, float*)" /> APIs.</summary>
49
/// <summary>Creates a new <see cref="
Vector3
" /> object whose three elements have the same value.</summary>
58
/// <summary>Creates a new <see cref="
Vector3
" /> object from the specified <see cref="Vector2" /> object and the specified value.</summary>
89
public static
Vector3
AllBitsSet
97
public static
Vector3
E
105
public static
Vector3
Epsilon
113
public static
Vector3
NaN
121
public static
Vector3
NegativeInfinity
129
public static
Vector3
NegativeZero
137
public static
Vector3
One
145
public static
Vector3
Pi
153
public static
Vector3
PositiveInfinity
161
public static
Vector3
Tau
170
public static
Vector3
UnitX
179
public static
Vector3
UnitY
188
public static
Vector3
UnitZ
196
public static
Vector3
Zero
225
/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="
Vector3
" /> objects.</remarks>
228
public static
Vector3
operator +(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector3();
234
/// <remarks>The <see cref="
Vector3
.op_Division" /> method defines the division operation for <see cref="
Vector3
" /> objects.</remarks>
237
public static
Vector3
operator /(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector3();
243
/// <remarks>The <see cref="
Vector3
.op_Division" /> method defines the division operation for <see cref="
Vector3
" /> objects.</remarks>
246
public static
Vector3
operator /(
Vector3
value1, float value2) => (value1.AsVector128Unsafe() / value2).AsVector3();
252
/// <remarks>Two <see cref="
Vector3
" /> objects are equal if each element in <paramref name="left" /> is equal to the corresponding element in <paramref name="right" />.</remarks>
255
public static bool operator ==(
Vector3
left,
Vector3
right) => left.AsVector128() == right.AsVector128();
263
public static bool operator !=(
Vector3
left,
Vector3
right) => left.AsVector128() != right.AsVector128();
269
/// <remarks>The <see cref="
Vector3
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector3
" /> objects.</remarks>
272
public static
Vector3
operator *(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector3();
278
/// <remarks>The <see cref="
Vector3
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector3
" /> objects.</remarks>
281
public static
Vector3
operator *(
Vector3
left, float right) => (left.AsVector128Unsafe() * right).AsVector3();
287
/// <remarks>The <see cref="
Vector3
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector3
" /> objects.</remarks>
290
public static
Vector3
operator *(float left,
Vector3
right) => (right.AsVector128Unsafe() * left).AsVector3();
296
/// <remarks>The <see cref="op_Subtraction" /> method defines the subtraction operation for <see cref="
Vector3
" /> objects.</remarks>
299
public static
Vector3
operator -(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector3();
304
/// <remarks>The <see cref="op_UnaryNegation" /> method defines the unary negation operation for <see cref="
Vector3
" /> objects.</remarks>
307
public static
Vector3
operator -(
Vector3
value) => (-value.AsVector128Unsafe()).AsVector3();
312
public static
Vector3
operator &(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector3();
317
public static
Vector3
operator |(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector3();
322
public static
Vector3
operator ^(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector3();
327
public static
Vector3
operator <<(
Vector3
value, int shiftAmount) => (value.AsVector128Unsafe() << shiftAmount).AsVector3();
332
public static
Vector3
operator ~(
Vector3
value) => (~value.AsVector128Unsafe()).AsVector3();
337
public static
Vector3
operator >>(
Vector3
value, int shiftAmount) => (value.AsVector128Unsafe() >> shiftAmount).AsVector3();
342
public static
Vector3
operator +(
Vector3
value) => value;
347
public static
Vector3
operator >>>(
Vector3
value, int shiftAmount) => (value.AsVector128Unsafe() >>> shiftAmount).AsVector3();
354
public static
Vector3
Abs(
Vector3
value) => Vector128.Abs(value.AsVector128Unsafe()).AsVector3();
362
public static
Vector3
Add(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector3();
367
public static bool All(
Vector3
vector, float value) => Vector128.All(vector, value);
372
public static bool AllWhereAllBitsSet(
Vector3
vector) => Vector128.AllWhereAllBitsSet(vector);
377
public static
Vector3
AndNot(
Vector3
left,
Vector3
right) => Vector128.AndNot(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
382
public static bool Any(
Vector3
vector, float value) => Vector128.Any(vector, value);
387
public static bool AnyWhereAllBitsSet(
Vector3
vector) => Vector128.AnyWhereAllBitsSet(vector);
392
public static
Vector3
BitwiseAnd(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector3();
397
public static
Vector3
BitwiseOr(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector3();
402
public static
Vector3
Clamp(
Vector3
value1,
Vector3
min,
Vector3
max) => Vector128.Clamp(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector3();
407
public static
Vector3
ClampNative(
Vector3
value1,
Vector3
min,
Vector3
max) => Vector128.ClampNative(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector3();
412
public static
Vector3
ConditionalSelect(
Vector3
condition,
Vector3
left,
Vector3
right) => Vector128.ConditionalSelect(condition.AsVector128Unsafe(), left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
417
public static
Vector3
CopySign(
Vector3
value,
Vector3
sign) => Vector128.CopySign(value.AsVector128Unsafe(), sign.AsVector128Unsafe()).AsVector3();
421
public static
Vector3
Cos(
Vector3
vector) => Vector128.Cos(vector.AsVector128()).AsVector3();
426
public static int Count(
Vector3
vector, float value) => Vector128.Count(vector, value);
431
public static int CountWhereAllBitsSet(
Vector3
vector) => Vector128.CountWhereAllBitsSet(vector);
433
/// <summary>Creates a new <see cref="
Vector3
" /> object whose three elements have the same value.</summary>
435
/// <returns>A new <see cref="
Vector3
" /> whose three elements have the same value.</returns>
438
public static
Vector3
Create(float value) => Vector128.Create(value).AsVector3();
440
/// <summary>Creates a new <see cref="
Vector3
" /> object from the specified <see cref="Vector2" /> object and a Z and a W component.</summary>
443
/// <returns>A new <see cref="
Vector3
" /> from the specified <see cref="Vector2" /> object and a Z and a W component.</returns>
446
public static
Vector3
Create(Vector2 vector, float z)
457
/// <returns>A new <see cref="
Vector3
" /> whose elements have the specified values.</returns>
460
public static
Vector3
Create(float x, float y, float z) => Vector128.Create(x, y, z, 0).AsVector3();
464
/// <returns>A new <see cref="
Vector3
" /> whose elements have the specified values.</returns>
467
public static
Vector3
Create(ReadOnlySpan<float> values)
473
return Unsafe.As<float,
Vector3
>(ref MemoryMarshal.GetReference(values));
478
/// <returns>A new <see cref="
Vector3
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements initialized to zero.</returns>
481
public static
Vector3
CreateScalar(float x) => Vector128.CreateScalar(x).AsVector3();
485
/// <returns>A new <see cref="
Vector3
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements left uninitialized.</returns>
488
public static
Vector3
CreateScalarUnsafe(float x) => Vector128.CreateScalarUnsafe(x).AsVector3();
495
public static
Vector3
Cross(
Vector3
vector1,
Vector3
vector2) => Cross(vector1.AsVector128Unsafe(), vector2.AsVector128Unsafe()).AsVector3();
512
public static
Vector3
DegreesToRadians(
Vector3
degrees) => Vector128.DegreesToRadians(degrees.AsVector128Unsafe()).AsVector3();
520
public static float Distance(
Vector3
value1,
Vector3
value2) => Vector128.Distance(value1.AsVector128(), value2.AsVector128());
528
public static float DistanceSquared(
Vector3
value1,
Vector3
value2) => Vector128.DistanceSquared(value1.AsVector128(), value2.AsVector128());
536
public static
Vector3
Divide(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector3();
544
public static
Vector3
Divide(
Vector3
left, float divisor) => (left.AsVector128Unsafe() / divisor).AsVector3();
552
public static float Dot(
Vector3
vector1,
Vector3
vector2) => Vector128.Dot(vector1.AsVector128(), vector2.AsVector128());
556
public static
Vector3
Exp(
Vector3
vector) => Vector128.Exp(vector.AsVector128()).AsVector3();
561
public static
Vector3
Equals(
Vector3
left,
Vector3
right) => Vector128.Equals(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
566
public static bool EqualsAll(
Vector3
left,
Vector3
right) => Vector128.EqualsAll(left.AsVector128(), right.AsVector128());
571
public static bool EqualsAny(
Vector3
left,
Vector3
right) => Vector128.EqualsAny(Vector128.Equals(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
576
public static
Vector3
FusedMultiplyAdd(
Vector3
left,
Vector3
right,
Vector3
addend) => Vector128.FusedMultiplyAdd(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector3();
581
public static
Vector3
GreaterThan(
Vector3
left,
Vector3
right) => Vector128.GreaterThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
586
public static bool GreaterThanAll(
Vector3
left,
Vector3
right) => Vector128.EqualsAll(Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
591
public static bool GreaterThanAny(
Vector3
left,
Vector3
right) => Vector128.EqualsAny(Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
596
public static
Vector3
GreaterThanOrEqual(
Vector3
left,
Vector3
right) => Vector128.GreaterThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
601
public static bool GreaterThanOrEqualAll(
Vector3
left,
Vector3
right) => Vector128.EqualsAll(Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128<int>.AllBitsSet);
606
public static bool GreaterThanOrEqualAny(
Vector3
left,
Vector3
right) => Vector128.EqualsAny(Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
611
public static
Vector3
Hypot(
Vector3
x,
Vector3
y) => Vector128.Hypot(x.AsVector128Unsafe(), y.AsVector128Unsafe()).AsVector3();
616
public static int IndexOf(
Vector3
vector, float value) => Vector128.IndexOf(vector, value);
621
public static int IndexOfWhereAllBitsSet(
Vector3
vector) => Vector128.IndexOfWhereAllBitsSet(vector);
626
public static
Vector3
IsEvenInteger(
Vector3
vector) => Vector128.IsEvenInteger(vector.AsVector128Unsafe()).AsVector3();
631
public static
Vector3
IsFinite(
Vector3
vector) => Vector128.IsFinite(vector.AsVector128Unsafe()).AsVector3();
636
public static
Vector3
IsInfinity(
Vector3
vector) => Vector128.IsInfinity(vector.AsVector128Unsafe()).AsVector3();
641
public static
Vector3
IsInteger(
Vector3
vector) => Vector128.IsInteger(vector.AsVector128Unsafe()).AsVector3();
646
public static
Vector3
IsNaN(
Vector3
vector) => Vector128.IsNaN(vector.AsVector128Unsafe()).AsVector3();
651
public static
Vector3
IsNegative(
Vector3
vector) => Vector128.IsNegative(vector.AsVector128Unsafe()).AsVector3();
656
public static
Vector3
IsNegativeInfinity(
Vector3
vector) => Vector128.IsNegativeInfinity(vector.AsVector128Unsafe()).AsVector3();
661
public static
Vector3
IsNormal(
Vector3
vector) => Vector128.IsNormal(vector.AsVector128Unsafe()).AsVector3();
666
public static
Vector3
IsOddInteger(
Vector3
vector) => Vector128.IsOddInteger(vector.AsVector128Unsafe()).AsVector3();
671
public static
Vector3
IsPositive(
Vector3
vector) => Vector128.IsPositive(vector.AsVector128Unsafe()).AsVector3();
676
public static
Vector3
IsPositiveInfinity(
Vector3
vector) => Vector128.IsPositiveInfinity(vector.AsVector128Unsafe()).AsVector3();
681
public static
Vector3
IsSubnormal(
Vector3
vector) => Vector128.IsSubnormal(vector.AsVector128Unsafe()).AsVector3();
686
public static
Vector3
IsZero(
Vector3
vector) => Vector128.IsZero(vector.AsVector128Unsafe()).AsVector3();
691
public static int LastIndexOf(
Vector3
vector, float value) => Vector128.LastIndexOf(vector, value);
696
public static int LastIndexOfWhereAllBitsSet(
Vector3
vector) => Vector128.LastIndexOfWhereAllBitsSet(vector);
702
public static
Vector3
Lerp(
Vector3
value1,
Vector3
value2, float amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), Vector128.Create(amount)).AsVector3();
707
public static
Vector3
Lerp(
Vector3
value1,
Vector3
value2,
Vector3
amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), amount.AsVector128Unsafe()).AsVector3();
712
public static
Vector3
LessThan(
Vector3
left,
Vector3
right) => Vector128.LessThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
717
public static bool LessThanAll(
Vector3
left,
Vector3
right) => Vector128.EqualsAll(Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
722
public static bool LessThanAny(
Vector3
left,
Vector3
right) => Vector128.EqualsAny(Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
727
public static
Vector3
LessThanOrEqual(
Vector3
left,
Vector3
right) => Vector128.LessThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3();
732
public static bool LessThanOrEqualAll(
Vector3
left,
Vector3
right) => Vector128.EqualsAll(Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128<int>.AllBitsSet);
737
public static bool LessThanOrEqualAny(
Vector3
left,
Vector3
right) => Vector128.EqualsAny(Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0));
743
public static unsafe
Vector3
Load(float* source) => *(
Vector3
*)source;
749
public static unsafe
Vector3
LoadAligned(float* source)
755
return *(
Vector3
*)source;
762
public static unsafe
Vector3
LoadAlignedNonTemporal(float* source) => LoadAligned(source);
767
public static
Vector3
LoadUnsafe(ref readonly float source) => Unsafe.As<float,
Vector3
>(ref Unsafe.AsRef(in source));
773
public static
Vector3
LoadUnsafe(ref readonly float source, nuint elementOffset) => Unsafe.As<float,
Vector3
>(ref Unsafe.Add(ref Unsafe.AsRef(in source), (nint)elementOffset));
777
public static
Vector3
Log(
Vector3
vector) => Vector128.Log(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3();
781
public static
Vector3
Log2(
Vector3
vector) => Vector128.Log2(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3();
786
public static
Vector3
Max(
Vector3
value1,
Vector3
value2) => Vector128.Max(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
791
public static
Vector3
MaxMagnitude(
Vector3
value1,
Vector3
value2) => Vector128.MaxMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
796
public static
Vector3
MaxMagnitudeNumber(
Vector3
value1,
Vector3
value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
801
public static
Vector3
MaxNative(
Vector3
value1,
Vector3
value2) => Vector128.MaxNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
806
public static
Vector3
MaxNumber(
Vector3
value1,
Vector3
value2) => Vector128.MaxNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
811
public static
Vector3
Min(
Vector3
value1,
Vector3
value2) => Vector128.Min(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
816
public static
Vector3
MinMagnitude(
Vector3
value1,
Vector3
value2) => Vector128.MinMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
821
public static
Vector3
MinMagnitudeNumber(
Vector3
value1,
Vector3
value2) => Vector128.MinMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
826
public static
Vector3
MinNative(
Vector3
value1,
Vector3
value2) => Vector128.MinNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
831
public static
Vector3
MinNumber(
Vector3
value1,
Vector3
value2) => Vector128.MinNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3();
839
public static
Vector3
Multiply(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector3();
847
public static
Vector3
Multiply(
Vector3
left, float right) => (left.AsVector128Unsafe() * right).AsVector3();
855
public static
Vector3
Multiply(float left,
Vector3
right) => (right.AsVector128Unsafe() * left).AsVector3();
860
public static
Vector3
MultiplyAddEstimate(
Vector3
left,
Vector3
right,
Vector3
addend) => Vector128.MultiplyAddEstimate(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector3();
867
public static
Vector3
Negate(
Vector3
value) => (-value.AsVector128Unsafe()).AsVector3();
872
public static bool None(
Vector3
vector, float value) => Vector128.None(vector, value);
877
public static bool NoneWhereAllBitsSet(
Vector3
vector) => Vector128.NoneWhereAllBitsSet(vector);
884
public static
Vector3
Normalize(
Vector3
value) => Vector128.Normalize(value.AsVector128()).AsVector3();
889
public static
Vector3
OnesComplement(
Vector3
value) => (~value.AsVector128Unsafe()).AsVector3();
894
public static
Vector3
RadiansToDegrees(
Vector3
radians) => Vector128.RadiansToDegrees(radians.AsVector128Unsafe()).AsVector3();
901
public static
Vector3
Reflect(
Vector3
vector,
Vector3
normal)
916
public static
Vector3
Round(
Vector3
vector) => Vector128.Round(vector.AsVector128Unsafe()).AsVector3();
921
public static
Vector3
Round(
Vector3
vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128Unsafe(), mode).AsVector3();
930
public static
Vector3
Shuffle(
Vector3
vector, byte xIndex, byte yIndex, byte zIndex)
939
public static
Vector3
Sin(
Vector3
vector) => Vector128.Sin(vector.AsVector128()).AsVector3();
943
public static (
Vector3
Sin,
Vector3
Cos) SinCos(
Vector3
vector)
954
public static
Vector3
SquareRoot(
Vector3
value) => Vector128.Sqrt(value.AsVector128Unsafe()).AsVector3();
962
public static
Vector3
Subtract(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector3();
967
public static float Sum(
Vector3
value) => Vector128.Sum(value.AsVector128());
974
public static
Vector3
Transform(
Vector3
position, Matrix4x4 matrix) => Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector3();
993
public static
Vector3
Transform(
Vector3
value, Quaternion rotation) => Vector4.Transform(value.AsVector128Unsafe().WithElement(3, 1.0f), rotation.AsVector128()).AsVector3();
1000
public static
Vector3
TransformNormal(
Vector3
normal, Matrix4x4 matrix) => TransformNormal(normal.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector3();
1014
public static
Vector3
Truncate(
Vector3
vector) => Vector128.Truncate(vector.AsVector128Unsafe()).AsVector3();
1019
public static
Vector3
Xor(
Vector3
left,
Vector3
right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector3();
1036
Unsafe.As<float,
Vector3
>(ref array[0]) = this;
1064
Unsafe.As<float,
Vector3
>(ref array[index]) = this;
1077
Unsafe.As<float,
Vector3
>(ref MemoryMarshal.GetReference(destination)) = this;
1091
Unsafe.As<float,
Vector3
>(ref MemoryMarshal.GetReference(destination)) = this;
1098
/// <remarks>The current instance and <paramref name="obj" /> are equal if <paramref name="obj" /> is a <see cref="
Vector3
" /> object and their corresponding elements are equal.</remarks>
1099
public override readonly bool Equals([NotNullWhen(true)] object? obj) => (obj is
Vector3
other) && Equals(other);
1106
public readonly bool Equals(
Vector3
other) => this.AsVector128().Equals(other.AsVector128());
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.Extensions.cs (25)
11
/// <summary>Reinterprets a <see cref="
Vector3
" /> as a new <see cref="Vector2" />.</summary>
14
public static Vector2 AsVector2(this
Vector3
value) => value.AsVector128Unsafe().AsVector2();
16
/// <summary>Converts a <see cref="
Vector3
" /> to a new <see cref="Vector4" /> with the new elements zeroed.</summary>
19
public static Vector4 AsVector4(this
Vector3
value) => value.AsVector128().AsVector4();
21
/// <summary>Converts a <see cref="
Vector3
" /> to a new <see cref="Vector4" /> with the new elements undefined.</summary>
24
public static Vector4 AsVector4Unsafe(this
Vector3
value) => value.AsVector128Unsafe().AsVector4();
29
public static uint ExtractMostSignificantBits(this
Vector3
vector) => vector.AsVector128().ExtractMostSignificantBits();
33
public static float GetElement(this
Vector3
vector, int index)
35
if ((uint)index >=
Vector3
.ElementCount)
46
public static void Store(this
Vector3
source, float* destination)
48
*(
Vector3
*)destination = source;
57
public static void StoreAligned(this
Vector3
source, float* destination)
59
if (((nuint)destination % (uint)(
Vector3
.Alignment)) != 0)
63
*(
Vector3
*)destination = source;
72
public static void StoreAlignedNonTemporal(this
Vector3
source, float* destination)
74
if (((nuint)destination % (uint)(
Vector3
.Alignment)) != 0)
78
*(
Vector3
*)destination = source;
85
public static void StoreUnsafe(this
Vector3
source, ref float destination)
87
Unsafe.As<float,
Vector3
>(ref destination) = source;
96
public static void StoreUnsafe(this
Vector3
source, ref float destination, nuint elementOffset)
98
Unsafe.As<float,
Vector3
>(ref Unsafe.Add(ref destination, (nint)elementOffset)) = source;
103
public static float ToScalar(this
Vector3
vector) => vector.AsVector128Unsafe().ToScalar();
107
public static
Vector3
WithElement(this
Vector3
vector, int index, float value)
109
if ((uint)index >=
Vector3
.ElementCount)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.cs (10)
72
/// <summary>Constructs a new <see cref="Vector4" /> object from the specified <see cref="
Vector3
" /> object and a W component.</summary>
77
public Vector4(
Vector3
value, float w)
490
/// <summary>Constructs a new <see cref="Vector4" /> object from the specified <see cref="
Vector3
" /> object and a W component.</summary>
493
/// <returns>A new <see cref="Vector4" /> from the specified <see cref="
Vector3
" /> object and a W component.</returns>
496
public static Vector4 Create(
Vector3
vector, float w)
550
/// <see cref="
Vector3
.Cross"/> with the addition of the fourth value which is
552
/// the cross product for <see cref="
Vector3
"/> with values [x_1/w_1, y_1/w_1, z_1/w_1]
1036
public static Vector4 Transform(
Vector3
position, Matrix4x4 matrix) =>
Vector3
.Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector4();
1043
public static Vector4 Transform(
Vector3
value, Quaternion rotation) => Transform(value.AsVector128Unsafe().WithElement(3, 1.0f), rotation.AsVector128()).AsVector4();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.Extensions.cs (3)
28
/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="
Vector3
" />.</summary>
30
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector3
" />.</returns>
31
public static
Vector3
AsVector3(this Vector4 value) => value.AsVector128().AsVector3();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.Numerics.cs (20)
20
internal static bool All(
Vector3
vector, float value) => vector.AsVector128() ==
Vector3
.Create(value).AsVector128();
30
internal static bool AllWhereAllBitsSet(
Vector3
vector) => vector.AsVector128().AsInt32() ==
Vector3
.AllBitsSet.AsVector128().AsInt32();
40
internal static bool Any(
Vector3
vector, float value) => EqualsAny(vector.AsVector128(), Create(value, value, value, -1));
50
internal static bool AnyWhereAllBitsSet(
Vector3
vector) => EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);
86
public static Vector128<float> AsVector128(this
Vector3
value) => Vector4.Create(value, 0).AsVector128();
128
public static Vector128<float> AsVector128Unsafe(this
Vector3
value)
149
/// <summary>Reinterprets a <see langword="Vector128<Single>" /> as a new <see cref="
Vector3
" />.</summary>
151
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector3
" />.</returns>
154
public static
Vector3
AsVector3(this Vector128<float> value)
157
return Unsafe.ReadUnaligned<
Vector3
>(ref address);
191
internal static int Count(
Vector3
vector, float value) => CountMatches(Equals(vector.AsVector128(), Create(value, value, value, -1)));
201
internal static int CountWhereAllBitsSet(
Vector3
vector) => CountWhereAllBitsSet(vector.AsVector128());
229
internal static int IndexOf(
Vector3
vector, float value) => IndexOfFirstMatch(Equals(vector.AsVector128(), Create(value, value, value, -1)));
239
internal static int IndexOfWhereAllBitsSet(
Vector3
vector) => IndexOfWhereAllBitsSet(vector.AsVector128());
249
internal static int LastIndexOf(
Vector3
vector, float value) => IndexOfLastMatch(Equals(vector.AsVector128(), Create(value, value, value, -1)));
259
internal static int LastIndexOfWhereAllBitsSet(
Vector3
vector) => LastIndexOfWhereAllBitsSet(vector.AsVector128());
279
internal static bool None(
Vector3
vector, float value) => !EqualsAny(vector.AsVector128(), Create(value, value, value, -1));
289
internal static bool NoneWhereAllBitsSet(
Vector3
vector) => !EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);