5 instantiations of Vector3
Microsoft.Gen.Logging.Generated.Tests (1)
LogPropertiesTests.cs (1)
107P17 = 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)
34public 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)
197public Vector3 Translation 733public static Matrix4x4 CreateBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Vector3 cameraForwardVector) 745Vector128<float> axisX = Vector128.Normalize(Vector3.Cross(cameraUpVector.AsVector128(), axisZ)); 746Vector128<float> axisY = Vector3.Cross(axisZ, axisX); 764public static Matrix4x4 CreateBillboardLeftHanded(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Vector3 cameraForwardVector) 776Vector128<float> axisX = Vector128.Normalize(Vector3.Cross(cameraUpVector.AsVector128(), axisZ)); 777Vector128<float> axisY = Vector3.Cross(axisZ, axisX); 796public static Matrix4x4 CreateConstrainedBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Vector3 cameraForwardVector, Vector3 objectForwardVector) 838Vector128<float> axisX = Vector128.Normalize(Vector3.Cross(axisY, faceDir)); 839Vector128<float> axisZ = Vector128.Normalize(Vector3.Cross(axisX, axisY)); 858public static Matrix4x4 CreateConstrainedBillboardLeftHanded(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Vector3 cameraForwardVector, Vector3 objectForwardVector) 900Vector128<float> axisX = Vector128.Normalize(Vector3.Cross(axisY, faceDir)); 901Vector128<float> axisZ = Vector128.Normalize(Vector3.Cross(axisX, axisY)); 918public static Matrix4x4 CreateFromAxisAngle(Vector3 axis, float angle) 988public static Matrix4x4 CreateLookAt(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector) 1001public static Matrix4x4 CreateLookAtLeftHanded(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector) 1014public static Matrix4x4 CreateLookTo(Vector3 cameraPosition, Vector3 cameraDirection, Vector3 cameraUpVector) 1027public static Matrix4x4 CreateLookToLeftHanded(Vector3 cameraPosition, Vector3 cameraDirection, Vector3 cameraUpVector) 1036Vector128<float> axisX = Vector128.Normalize(Vector3.Cross(cameraUpVector, axisZ)); 1037Vector128<float> axisY = Vector3.Cross(axisZ, axisX); 1442public static Matrix4x4 CreateRotationX(float radians, Vector3 centerPoint) 1492public static Matrix4x4 CreateRotationY(float radians, Vector3 centerPoint) 1542public static Matrix4x4 CreateRotationZ(float radians, Vector3 centerPoint) 1589public static Matrix4x4 CreateScale(float xScale, float yScale, float zScale, Vector3 centerPoint) 1605public static Matrix4x4 CreateScale(Vector3 scales) 1622public static Matrix4x4 CreateScale(Vector3 scales, Vector3 centerPoint) 1655public static Matrix4x4 CreateScale(float scale, Vector3 centerPoint) 1672public static Matrix4x4 CreateShadow(Vector3 lightDirection, Plane plane) 1694public static Matrix4x4 CreateTranslation(Vector3 position) 1795public static Matrix4x4 CreateWorld(Vector3 position, Vector3 forward, Vector3 up) 1798Vector128<float> axisX = Vector128.Normalize(Vector3.Cross(up.AsVector128(), axisZ)); 1799Vector128<float> axisY = Vector3.Cross(axisZ, axisX); 1818public static unsafe bool Decompose(Matrix4x4 matrix, out Vector3 scale, out Quaternion rotation, out Vector3 translation) 1821internal 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]); 1964scale = *(Vector3*)scales;
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Plane.cs (9)
18public Vector3 Normal; 40public Plane(Vector3 normal, float d) 67public static Plane Create(Vector3 normal, float d) => Vector4.Create(normal, d).AsPlane(); 85public static Plane CreateFromVertices(Vector3 point1, Vector3 point2, Vector3 point3) => CreateFromVertices(point1.AsVector128Unsafe(), point2.AsVector128Unsafe(), point3.AsVector128Unsafe()).AsPlane(); 93Vector128<float> normal = Vector128.Normalize(Vector3.Cross(point2 - point1, point3 - point1).WithElement(3, 0.0f)); 110public static float DotCoordinate(Plane plane, Vector3 value) 123public static float DotNormal(Plane plane, Vector3 value)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Quaternion.cs (7)
47public Quaternion(Vector3 vectorPart, float scalarPart) 226public static Quaternion Create(Vector3 vectorPart, float scalarPart) => Vector4.Create(vectorPart, scalarPart).AsQuaternion(); 234public 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> 14public 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> 19public static Vector3 AsVector3Unsafe(this Vector2 value) => value.AsVector128Unsafe().AsVector3();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.cs (326)
18public 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> 89public static Vector3 AllBitsSet 97public static Vector3 E 105public static Vector3 Epsilon 113public static Vector3 NaN 121public static Vector3 NegativeInfinity 129public static Vector3 NegativeZero 137public static Vector3 One 145public static Vector3 Pi 153public static Vector3 PositiveInfinity 161public static Vector3 Tau 170public static Vector3 UnitX 179public static Vector3 UnitY 188public static Vector3 UnitZ 196public static Vector3 Zero 225/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="Vector3" /> objects.</remarks> 228public 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> 237public 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> 246public 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> 255public static bool operator ==(Vector3 left, Vector3 right) => left.AsVector128() == right.AsVector128(); 263public 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> 272public 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> 281public 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> 290public 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> 299public 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> 307public static Vector3 operator -(Vector3 value) => (-value.AsVector128Unsafe()).AsVector3(); 312public static Vector3 operator &(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector3(); 317public static Vector3 operator |(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector3(); 322public static Vector3 operator ^(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector3(); 327public static Vector3 operator <<(Vector3 value, int shiftAmount) => (value.AsVector128Unsafe() << shiftAmount).AsVector3(); 332public static Vector3 operator ~(Vector3 value) => (~value.AsVector128Unsafe()).AsVector3(); 337public static Vector3 operator >>(Vector3 value, int shiftAmount) => (value.AsVector128Unsafe() >> shiftAmount).AsVector3(); 342public static Vector3 operator +(Vector3 value) => value; 347public static Vector3 operator >>>(Vector3 value, int shiftAmount) => (value.AsVector128Unsafe() >>> shiftAmount).AsVector3(); 354public static Vector3 Abs(Vector3 value) => Vector128.Abs(value.AsVector128Unsafe()).AsVector3(); 362public static Vector3 Add(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector3(); 367public static bool All(Vector3 vector, float value) => Vector128.All(vector, value); 372public static bool AllWhereAllBitsSet(Vector3 vector) => Vector128.AllWhereAllBitsSet(vector); 377public static Vector3 AndNot(Vector3 left, Vector3 right) => Vector128.AndNot(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 382public static bool Any(Vector3 vector, float value) => Vector128.Any(vector, value); 387public static bool AnyWhereAllBitsSet(Vector3 vector) => Vector128.AnyWhereAllBitsSet(vector); 392public static Vector3 BitwiseAnd(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector3(); 397public static Vector3 BitwiseOr(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector3(); 402public static Vector3 Clamp(Vector3 value1, Vector3 min, Vector3 max) => Vector128.Clamp(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector3(); 407public static Vector3 ClampNative(Vector3 value1, Vector3 min, Vector3 max) => Vector128.ClampNative(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector3(); 412public static Vector3 ConditionalSelect(Vector3 condition, Vector3 left, Vector3 right) => Vector128.ConditionalSelect(condition.AsVector128Unsafe(), left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 417public static Vector3 CopySign(Vector3 value, Vector3 sign) => Vector128.CopySign(value.AsVector128Unsafe(), sign.AsVector128Unsafe()).AsVector3(); 421public static Vector3 Cos(Vector3 vector) => Vector128.Cos(vector.AsVector128()).AsVector3(); 426public static int Count(Vector3 vector, float value) => Vector128.Count(vector, value); 431public 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> 438public 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> 446public static Vector3 Create(Vector2 vector, float z) 457/// <returns>A new <see cref="Vector3" /> whose elements have the specified values.</returns> 460public 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> 467public static Vector3 Create(ReadOnlySpan<float> values) 473return 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> 481public 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> 488public static Vector3 CreateScalarUnsafe(float x) => Vector128.CreateScalarUnsafe(x).AsVector3(); 495public static Vector3 Cross(Vector3 vector1, Vector3 vector2) => Cross(vector1.AsVector128Unsafe(), vector2.AsVector128Unsafe()).AsVector3(); 512public static Vector3 DegreesToRadians(Vector3 degrees) => Vector128.DegreesToRadians(degrees.AsVector128Unsafe()).AsVector3(); 520public static float Distance(Vector3 value1, Vector3 value2) => Vector128.Distance(value1.AsVector128(), value2.AsVector128()); 528public static float DistanceSquared(Vector3 value1, Vector3 value2) => Vector128.DistanceSquared(value1.AsVector128(), value2.AsVector128()); 536public static Vector3 Divide(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector3(); 544public static Vector3 Divide(Vector3 left, float divisor) => (left.AsVector128Unsafe() / divisor).AsVector3(); 552public static float Dot(Vector3 vector1, Vector3 vector2) => Vector128.Dot(vector1.AsVector128(), vector2.AsVector128()); 556public static Vector3 Exp(Vector3 vector) => Vector128.Exp(vector.AsVector128()).AsVector3(); 561public static Vector3 Equals(Vector3 left, Vector3 right) => Vector128.Equals(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 566public static bool EqualsAll(Vector3 left, Vector3 right) => Vector128.EqualsAll(left.AsVector128(), right.AsVector128()); 571public static bool EqualsAny(Vector3 left, Vector3 right) => Vector128.EqualsAny(Vector128.Equals(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 576public static Vector3 FusedMultiplyAdd(Vector3 left, Vector3 right, Vector3 addend) => Vector128.FusedMultiplyAdd(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector3(); 581public static Vector3 GreaterThan(Vector3 left, Vector3 right) => Vector128.GreaterThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 586public static bool GreaterThanAll(Vector3 left, Vector3 right) => Vector128.EqualsAll(Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 591public static bool GreaterThanAny(Vector3 left, Vector3 right) => Vector128.EqualsAny(Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 596public static Vector3 GreaterThanOrEqual(Vector3 left, Vector3 right) => Vector128.GreaterThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 601public static bool GreaterThanOrEqualAll(Vector3 left, Vector3 right) => Vector128.EqualsAll(Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128<int>.AllBitsSet); 606public static bool GreaterThanOrEqualAny(Vector3 left, Vector3 right) => Vector128.EqualsAny(Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 611public static Vector3 Hypot(Vector3 x, Vector3 y) => Vector128.Hypot(x.AsVector128Unsafe(), y.AsVector128Unsafe()).AsVector3(); 616public static int IndexOf(Vector3 vector, float value) => Vector128.IndexOf(vector, value); 621public static int IndexOfWhereAllBitsSet(Vector3 vector) => Vector128.IndexOfWhereAllBitsSet(vector); 626public static Vector3 IsEvenInteger(Vector3 vector) => Vector128.IsEvenInteger(vector.AsVector128Unsafe()).AsVector3(); 631public static Vector3 IsFinite(Vector3 vector) => Vector128.IsFinite(vector.AsVector128Unsafe()).AsVector3(); 636public static Vector3 IsInfinity(Vector3 vector) => Vector128.IsInfinity(vector.AsVector128Unsafe()).AsVector3(); 641public static Vector3 IsInteger(Vector3 vector) => Vector128.IsInteger(vector.AsVector128Unsafe()).AsVector3(); 646public static Vector3 IsNaN(Vector3 vector) => Vector128.IsNaN(vector.AsVector128Unsafe()).AsVector3(); 651public static Vector3 IsNegative(Vector3 vector) => Vector128.IsNegative(vector.AsVector128Unsafe()).AsVector3(); 656public static Vector3 IsNegativeInfinity(Vector3 vector) => Vector128.IsNegativeInfinity(vector.AsVector128Unsafe()).AsVector3(); 661public static Vector3 IsNormal(Vector3 vector) => Vector128.IsNormal(vector.AsVector128Unsafe()).AsVector3(); 666public static Vector3 IsOddInteger(Vector3 vector) => Vector128.IsOddInteger(vector.AsVector128Unsafe()).AsVector3(); 671public static Vector3 IsPositive(Vector3 vector) => Vector128.IsPositive(vector.AsVector128Unsafe()).AsVector3(); 676public static Vector3 IsPositiveInfinity(Vector3 vector) => Vector128.IsPositiveInfinity(vector.AsVector128Unsafe()).AsVector3(); 681public static Vector3 IsSubnormal(Vector3 vector) => Vector128.IsSubnormal(vector.AsVector128Unsafe()).AsVector3(); 686public static Vector3 IsZero(Vector3 vector) => Vector128.IsZero(vector.AsVector128Unsafe()).AsVector3(); 691public static int LastIndexOf(Vector3 vector, float value) => Vector128.LastIndexOf(vector, value); 696public static int LastIndexOfWhereAllBitsSet(Vector3 vector) => Vector128.LastIndexOfWhereAllBitsSet(vector); 702public static Vector3 Lerp(Vector3 value1, Vector3 value2, float amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), Vector128.Create(amount)).AsVector3(); 707public static Vector3 Lerp(Vector3 value1, Vector3 value2, Vector3 amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), amount.AsVector128Unsafe()).AsVector3(); 712public static Vector3 LessThan(Vector3 left, Vector3 right) => Vector128.LessThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 717public static bool LessThanAll(Vector3 left, Vector3 right) => Vector128.EqualsAll(Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 722public static bool LessThanAny(Vector3 left, Vector3 right) => Vector128.EqualsAny(Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 727public static Vector3 LessThanOrEqual(Vector3 left, Vector3 right) => Vector128.LessThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 732public static bool LessThanOrEqualAll(Vector3 left, Vector3 right) => Vector128.EqualsAll(Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128<int>.AllBitsSet); 737public static bool LessThanOrEqualAny(Vector3 left, Vector3 right) => Vector128.EqualsAny(Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, -1, 0)); 743public static unsafe Vector3 Load(float* source) => *(Vector3*)source; 749public static unsafe Vector3 LoadAligned(float* source) 755return *(Vector3*)source; 762public static unsafe Vector3 LoadAlignedNonTemporal(float* source) => LoadAligned(source); 767public static Vector3 LoadUnsafe(ref readonly float source) => Unsafe.As<float, Vector3>(ref Unsafe.AsRef(in source)); 773public static Vector3 LoadUnsafe(ref readonly float source, nuint elementOffset) => Unsafe.As<float, Vector3>(ref Unsafe.Add(ref Unsafe.AsRef(in source), (nint)elementOffset)); 777public static Vector3 Log(Vector3 vector) => Vector128.Log(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3(); 781public static Vector3 Log2(Vector3 vector) => Vector128.Log2(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3(); 786public static Vector3 Max(Vector3 value1, Vector3 value2) => Vector128.Max(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 791public static Vector3 MaxMagnitude(Vector3 value1, Vector3 value2) => Vector128.MaxMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 796public static Vector3 MaxMagnitudeNumber(Vector3 value1, Vector3 value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 801public static Vector3 MaxNative(Vector3 value1, Vector3 value2) => Vector128.MaxNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 806public static Vector3 MaxNumber(Vector3 value1, Vector3 value2) => Vector128.MaxNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 811public static Vector3 Min(Vector3 value1, Vector3 value2) => Vector128.Min(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 816public static Vector3 MinMagnitude(Vector3 value1, Vector3 value2) => Vector128.MinMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 821public static Vector3 MinMagnitudeNumber(Vector3 value1, Vector3 value2) => Vector128.MinMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 826public static Vector3 MinNative(Vector3 value1, Vector3 value2) => Vector128.MinNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 831public static Vector3 MinNumber(Vector3 value1, Vector3 value2) => Vector128.MinNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 839public static Vector3 Multiply(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector3(); 847public static Vector3 Multiply(Vector3 left, float right) => (left.AsVector128Unsafe() * right).AsVector3(); 855public static Vector3 Multiply(float left, Vector3 right) => (right.AsVector128Unsafe() * left).AsVector3(); 860public static Vector3 MultiplyAddEstimate(Vector3 left, Vector3 right, Vector3 addend) => Vector128.MultiplyAddEstimate(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector3(); 867public static Vector3 Negate(Vector3 value) => (-value.AsVector128Unsafe()).AsVector3(); 872public static bool None(Vector3 vector, float value) => Vector128.None(vector, value); 877public static bool NoneWhereAllBitsSet(Vector3 vector) => Vector128.NoneWhereAllBitsSet(vector); 884public static Vector3 Normalize(Vector3 value) => Vector128.Normalize(value.AsVector128()).AsVector3(); 889public static Vector3 OnesComplement(Vector3 value) => (~value.AsVector128Unsafe()).AsVector3(); 894public static Vector3 RadiansToDegrees(Vector3 radians) => Vector128.RadiansToDegrees(radians.AsVector128Unsafe()).AsVector3(); 901public static Vector3 Reflect(Vector3 vector, Vector3 normal) 916public static Vector3 Round(Vector3 vector) => Vector128.Round(vector.AsVector128Unsafe()).AsVector3(); 921public static Vector3 Round(Vector3 vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128Unsafe(), mode).AsVector3(); 930public static Vector3 Shuffle(Vector3 vector, byte xIndex, byte yIndex, byte zIndex) 939public static Vector3 Sin(Vector3 vector) => Vector128.Sin(vector.AsVector128()).AsVector3(); 943public static (Vector3 Sin, Vector3 Cos) SinCos(Vector3 vector) 954public static Vector3 SquareRoot(Vector3 value) => Vector128.Sqrt(value.AsVector128Unsafe()).AsVector3(); 962public static Vector3 Subtract(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector3(); 967public static float Sum(Vector3 value) => Vector128.Sum(value.AsVector128()); 974public static Vector3 Transform(Vector3 position, Matrix4x4 matrix) => Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector3(); 993public static Vector3 Transform(Vector3 value, Quaternion rotation) => Vector4.Transform(value.AsVector128Unsafe().WithElement(3, 1.0f), rotation.AsVector128()).AsVector3(); 1000public static Vector3 TransformNormal(Vector3 normal, Matrix4x4 matrix) => TransformNormal(normal.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector3(); 1014public static Vector3 Truncate(Vector3 vector) => Vector128.Truncate(vector.AsVector128Unsafe()).AsVector3(); 1019public static Vector3 Xor(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector3(); 1036Unsafe.As<float, Vector3>(ref array[0]) = this; 1064Unsafe.As<float, Vector3>(ref array[index]) = this; 1077Unsafe.As<float, Vector3>(ref MemoryMarshal.GetReference(destination)) = this; 1091Unsafe.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> 1099public override readonly bool Equals([NotNullWhen(true)] object? obj) => (obj is Vector3 other) && Equals(other); 1106public 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> 14public 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> 19public 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> 24public static Vector4 AsVector4Unsafe(this Vector3 value) => value.AsVector128Unsafe().AsVector4(); 29public static uint ExtractMostSignificantBits(this Vector3 vector) => vector.AsVector128().ExtractMostSignificantBits(); 33public static float GetElement(this Vector3 vector, int index) 35if ((uint)index >= Vector3.ElementCount) 46public static void Store(this Vector3 source, float* destination) 48*(Vector3*)destination = source; 57public static void StoreAligned(this Vector3 source, float* destination) 59if (((nuint)destination % (uint)(Vector3.Alignment)) != 0) 63*(Vector3*)destination = source; 72public static void StoreAlignedNonTemporal(this Vector3 source, float* destination) 74if (((nuint)destination % (uint)(Vector3.Alignment)) != 0) 78*(Vector3*)destination = source; 85public static void StoreUnsafe(this Vector3 source, ref float destination) 87Unsafe.As<float, Vector3>(ref destination) = source; 96public static void StoreUnsafe(this Vector3 source, ref float destination, nuint elementOffset) 98Unsafe.As<float, Vector3>(ref Unsafe.Add(ref destination, (nint)elementOffset)) = source; 103public static float ToScalar(this Vector3 vector) => vector.AsVector128Unsafe().ToScalar(); 107public static Vector3 WithElement(this Vector3 vector, int index, float value) 109if ((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> 77public 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> 496public 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] 1036public static Vector4 Transform(Vector3 position, Matrix4x4 matrix) => Vector3.Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector4(); 1043public 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> 31public static Vector3 AsVector3(this Vector4 value) => value.AsVector128().AsVector3();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.Numerics.cs (20)
20internal static bool All(Vector3 vector, float value) => vector.AsVector128() == Vector3.Create(value).AsVector128(); 30internal static bool AllWhereAllBitsSet(Vector3 vector) => vector.AsVector128().AsInt32() == Vector3.AllBitsSet.AsVector128().AsInt32(); 40internal static bool Any(Vector3 vector, float value) => EqualsAny(vector.AsVector128(), Create(value, value, value, -1)); 50internal static bool AnyWhereAllBitsSet(Vector3 vector) => EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet); 86public static Vector128<float> AsVector128(this Vector3 value) => Vector4.Create(value, 0).AsVector128(); 128public static Vector128<float> AsVector128Unsafe(this Vector3 value) 149/// <summary>Reinterprets a <see langword="Vector128&lt;Single&gt;" /> as a new <see cref="Vector3" />.</summary> 151/// <returns><paramref name="value" /> reinterpreted as a new <see cref="Vector3" />.</returns> 154public static Vector3 AsVector3(this Vector128<float> value) 157return Unsafe.ReadUnaligned<Vector3>(ref address); 191internal static int Count(Vector3 vector, float value) => CountMatches(Equals(vector.AsVector128(), Create(value, value, value, -1))); 201internal static int CountWhereAllBitsSet(Vector3 vector) => CountWhereAllBitsSet(vector.AsVector128()); 229internal static int IndexOf(Vector3 vector, float value) => IndexOfFirstMatch(Equals(vector.AsVector128(), Create(value, value, value, -1))); 239internal static int IndexOfWhereAllBitsSet(Vector3 vector) => IndexOfWhereAllBitsSet(vector.AsVector128()); 249internal static int LastIndexOf(Vector3 vector, float value) => IndexOfLastMatch(Equals(vector.AsVector128(), Create(value, value, value, -1))); 259internal static int LastIndexOfWhereAllBitsSet(Vector3 vector) => LastIndexOfWhereAllBitsSet(vector.AsVector128()); 279internal static bool None(Vector3 vector, float value) => !EqualsAny(vector.AsVector128(), Create(value, value, value, -1)); 289internal static bool NoneWhereAllBitsSet(Vector3 vector) => !EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);