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);
580 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)
artifacts\obj\System.Numerics.Vectors\Debug\net10.0\System.Numerics.Vectors.Forwards.cs (1)
10[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.Vector3))]
System.Private.CoreLib (569)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.cs (49)
152public Vector3 Translation 580public static Matrix4x4 CreateBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Vector3 cameraForwardVector) 589public static Matrix4x4 CreateBillboardLeftHanded(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Vector3 cameraForwardVector) 599public static Matrix4x4 CreateConstrainedBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Vector3 cameraForwardVector, Vector3 objectForwardVector) 609public static Matrix4x4 CreateConstrainedBillboardLeftHanded(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Vector3 cameraForwardVector, Vector3 objectForwardVector) 616public static Matrix4x4 CreateFromAxisAngle(Vector3 axis, float angle) 638public static Matrix4x4 CreateLookAt(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector) 640Vector3 cameraDirection = cameraTarget - cameraPosition; 649public static Matrix4x4 CreateLookAtLeftHanded(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector) 651Vector3 cameraDirection = cameraTarget - cameraPosition; 660public static Matrix4x4 CreateLookTo(Vector3 cameraPosition, Vector3 cameraDirection, Vector3 cameraUpVector) 668public static Matrix4x4 CreateLookToLeftHanded(Vector3 cameraPosition, Vector3 cameraDirection, Vector3 cameraUpVector) 823public static Matrix4x4 CreateRotationX(float radians, Vector3 centerPoint) 836public static Matrix4x4 CreateRotationY(float radians, Vector3 centerPoint) 849public static Matrix4x4 CreateRotationZ(float radians, Vector3 centerPoint) 866public static Matrix4x4 CreateScale(float xScale, float yScale, float zScale, Vector3 centerPoint) 872public static Matrix4x4 CreateScale(Vector3 scales) 879public static Matrix4x4 CreateScale(Vector3 scales, Vector3 centerPoint) 892public static Matrix4x4 CreateScale(float scale, Vector3 centerPoint) 899public static Matrix4x4 CreateShadow(Vector3 lightDirection, Plane plane) 905public static Matrix4x4 CreateTranslation(Vector3 position) 958public static Matrix4x4 CreateWorld(Vector3 position, Vector3 forward, Vector3 up) 967public static bool Decompose(Matrix4x4 matrix, out Vector3 scale, out Quaternion rotation, out Vector3 translation)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.Impl.cs (119)
115public static Impl CreateBillboard(in Vector3 objectPosition, in Vector3 cameraPosition, in Vector3 cameraUpVector, in Vector3 cameraForwardVector) 119Vector3 axisZ = objectPosition - cameraPosition; 129axisZ = Vector3.Normalize(axisZ); 132Vector3 axisX = Vector3.Normalize(Vector3.Cross(cameraUpVector, axisZ)); 133Vector3 axisY = Vector3.Cross(axisZ, axisX); 146public static Impl CreateBillboardLeftHanded(in Vector3 objectPosition, in Vector3 cameraPosition, in Vector3 cameraUpVector, in Vector3 cameraForwardVector) 150Vector3 axisZ = cameraPosition - objectPosition; 160axisZ = Vector3.Normalize(axisZ); 163Vector3 axisX = Vector3.Normalize(Vector3.Cross(cameraUpVector, axisZ)); 164Vector3 axisY = Vector3.Cross(axisZ, axisX); 177public static Impl CreateConstrainedBillboard(in Vector3 objectPosition, in Vector3 cameraPosition, in Vector3 rotateAxis, in Vector3 cameraForwardVector, in Vector3 objectForwardVector) 181Vector3 faceDir = objectPosition - cameraPosition; 191faceDir = Vector3.Normalize(faceDir); 194Vector3 axisY = rotateAxis; 196float dot = Vector3.Dot(axisY, faceDir); 212dot = Vector3.Dot(axisY, faceDir); 220faceDir = (float.Abs(axisY.Z) > BillboardMinAngle) ? Vector3.UnitX : Vector3.Create(0, 0, -1); 224Vector3 axisX = Vector3.Normalize(Vector3.Cross(axisY, faceDir)); 225Vector3 axisZ = Vector3.Normalize(Vector3.Cross(axisX, axisY)); 237public static Impl CreateConstrainedBillboardLeftHanded(in Vector3 objectPosition, in Vector3 cameraPosition, in Vector3 rotateAxis, in Vector3 cameraForwardVector, in Vector3 objectForwardVector) 241Vector3 faceDir = cameraPosition - objectPosition; 251faceDir = Vector3.Normalize(faceDir); 254Vector3 axisY = rotateAxis; 256float dot = Vector3.Dot(axisY, faceDir); 272dot = Vector3.Dot(axisY, faceDir); 280faceDir = (float.Abs(axisY.Z) > BillboardMinAngle) ? Vector3.Create(-1, 0, 0) : Vector3.Create(0, 0, -1); 284Vector3 axisX = Vector3.Normalize(Vector3.Cross(axisY, faceDir)); 285Vector3 axisZ = Vector3.Normalize(Vector3.Cross(axisX, axisY)); 298public static Impl CreateFromAxisAngle(in Vector3 axis, float angle) 351public static Impl CreateLookTo(in Vector3 cameraPosition, in Vector3 cameraDirection, in Vector3 cameraUpVector) 360public static Impl CreateLookToLeftHanded(in Vector3 cameraPosition, in Vector3 cameraDirection, in Vector3 cameraUpVector) 365Vector3 axisZ = Vector3.Normalize(cameraDirection); 366Vector3 axisX = Vector3.Normalize(Vector3.Cross(cameraUpVector, axisZ)); 367Vector3 axisY = Vector3.Cross(axisZ, axisX); 368Vector3 negativeCameraPosition = -cameraPosition; 372result.X = Vector4.Create(axisX, Vector3.Dot(axisX, negativeCameraPosition)); 373result.Y = Vector4.Create(axisY, Vector3.Dot(axisY, negativeCameraPosition)); 374result.Z = Vector4.Create(axisZ, Vector3.Dot(axisZ, negativeCameraPosition)); 666public static Impl CreateRotationX(float radians, in Vector3 centerPoint) 709public static Impl CreateRotationY(float radians, in Vector3 centerPoint) 752public static Impl CreateRotationZ(float radians, in Vector3 centerPoint) 788public static Impl CreateScale(float scaleX, float scaleY, float scaleZ, in Vector3 centerPoint) 795result.W = Vector4.Create(centerPoint * (Vector3.One - Vector3.Create(scaleX, scaleY, scaleZ)), 1); 801public static Impl CreateScale(in Vector3 scales) 814public static Impl CreateScale(in Vector3 scales, in Vector3 centerPoint) 821result.W = Vector4.Create(centerPoint * (Vector3.One - scales), 1); 840public static Impl CreateScale(float scale, in Vector3 centerPoint) 847result.W = Vector4.Create(centerPoint * (Vector3.One - Vector3.Create(scale)), 1); 853public static Impl CreateShadow(in Vector3 lightDirection, in Plane plane) 872public static Impl CreateTranslation(in Vector3 position) 933public static Impl CreateWorld(in Vector3 position, in Vector3 forward, in Vector3 up) 935Vector3 axisZ = Vector3.Normalize(-forward); 936Vector3 axisX = Vector3.Normalize(Vector3.Cross(up, axisZ)); 937Vector3 axisY = Vector3.Cross(axisZ, axisX); 950public static unsafe bool Decompose(in Impl matrix, out Vector3 scale, out Quaternion rotation, out Vector3 translation) 954Vector3* canonicalBasis = stackalloc Vector3[3] { 955Vector3.UnitX, 956Vector3.UnitY, 957Vector3.UnitZ, 962Vector3** vectorBasis = stackalloc Vector3*[3] { 963(Vector3*)&matTemp.X, 964(Vector3*)&matTemp.Y, 965(Vector3*)&matTemp.Z, 1040*vectorBasis[a] = Vector3.Normalize(*vectorBasis[a]); 1090*vectorBasis[b] = Vector3.Cross(*vectorBasis[a], canonicalBasis[cc]); 1093*vectorBasis[b] = Vector3.Normalize(*vectorBasis[b]); 1097*vectorBasis[c] = Vector3.Cross(*vectorBasis[a], *vectorBasis[b]); 1100*vectorBasis[c] = Vector3.Normalize(*vectorBasis[c]); 1132scale = Unsafe.ReadUnaligned<Vector3>(scales);
src\libraries\System.Private.CoreLib\src\System\Numerics\Plane.cs (13)
18public Vector3 Normal; 38public Plane(Vector3 normal, float d) 62public static Plane Create(Vector3 normal, float d) => Vector4.Create(normal, d).AsPlane(); 79public static Plane CreateFromVertices(Vector3 point1, Vector3 point2, Vector3 point3) 84Vector3 normal = Vector3.Normalize(Vector3.Cross(point2 - point1, point3 - point1)); 88-Vector3.Dot(normal, point1) 104public static float DotCoordinate(Plane plane, Vector3 value) 116public static float DotNormal(Plane plane, Vector3 value) 121return Vector3.Dot(plane.Normal, value);
src\libraries\System.Private.CoreLib\src\System\Numerics\Quaternion.cs (8)
45public Quaternion(Vector3 vectorPart, float scalarPart) 208public static Quaternion Create(Vector3 vectorPart, float scalarPart) => Vector4.Create(vectorPart, scalarPart).AsQuaternion(); 216public static Quaternion CreateFromAxisAngle(Vector3 axis, float angle) 222return (Vector4.Create(axis, 1) * Vector4.Create(Vector3.Create(s), c)).AsQuaternion(); 284(Vector3 sin, Vector3 cos) = Vector3.SinCos(Vector3.Create(roll, pitch, yaw) * 0.5f);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.Extensions.cs (6)
12/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="Vector3" /> with the new elements zeroed.</summary> 14/// <returns><paramref name="value" /> reinterpreted to a new <see cref="Vector3" /> with the new elements zeroed.</returns> 15public static Vector3 AsVector3(this Vector2 value) => value.AsVector128().AsVector3(); 17/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="Vector3" /> with the new elements undefined.</summary> 19/// <returns><paramref name="value" /> reinterpreted to a new <see cref="Vector3" /> with the new elements undefined.</returns> 20public static Vector3 AsVector3Unsafe(this Vector2 value) => value.AsVector128Unsafe().AsVector3();
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.cs (322)
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> 57/// <summary>Creates a new <see cref="Vector3" /> object from the specified <see cref="Vector2" /> object and the specified value.</summary> 85public static Vector3 AllBitsSet 92public static Vector3 E 99public static Vector3 Epsilon 106public static Vector3 NaN 113public static Vector3 NegativeInfinity 120public static Vector3 NegativeZero 127public static Vector3 One 134public static Vector3 Pi 141public static Vector3 PositiveInfinity 148public static Vector3 Tau 156public static Vector3 UnitX 164public static Vector3 UnitY 172public static Vector3 UnitZ 179public static Vector3 Zero 205/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="Vector3" /> objects.</remarks> 208public static Vector3 operator +(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector3(); 214/// <remarks>The <see cref="Vector3.op_Division" /> method defines the division operation for <see cref="Vector3" /> objects.</remarks> 217public static Vector3 operator /(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector3(); 223/// <remarks>The <see cref="Vector3.op_Division" /> method defines the division operation for <see cref="Vector3" /> objects.</remarks> 226public static Vector3 operator /(Vector3 value1, float value2) => (value1.AsVector128Unsafe() / value2).AsVector3(); 232/// <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> 235public static bool operator ==(Vector3 left, Vector3 right) => left.AsVector128() == right.AsVector128(); 242public static bool operator !=(Vector3 left, Vector3 right) => !(left == right); 248/// <remarks>The <see cref="Vector3.op_Multiply" /> method defines the multiplication operation for <see cref="Vector3" /> objects.</remarks> 251public static Vector3 operator *(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector3(); 257/// <remarks>The <see cref="Vector3.op_Multiply" /> method defines the multiplication operation for <see cref="Vector3" /> objects.</remarks> 260public static Vector3 operator *(Vector3 left, float right) => (left.AsVector128Unsafe() * right).AsVector3(); 266/// <remarks>The <see cref="Vector3.op_Multiply" /> method defines the multiplication operation for <see cref="Vector3" /> objects.</remarks> 268public static Vector3 operator *(float left, Vector3 right) => right * left; 274/// <remarks>The <see cref="op_Subtraction" /> method defines the subtraction operation for <see cref="Vector3" /> objects.</remarks> 277public static Vector3 operator -(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector3(); 282/// <remarks>The <see cref="op_UnaryNegation" /> method defines the unary negation operation for <see cref="Vector3" /> objects.</remarks> 285public static Vector3 operator -(Vector3 value) => (-value.AsVector128Unsafe()).AsVector3(); 290public static Vector3 operator &(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector3(); 295public static Vector3 operator |(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector3(); 300public static Vector3 operator ^(Vector3 left, Vector3 right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector3(); 305public static Vector3 operator <<(Vector3 value, int shiftAmount) => (value.AsVector128Unsafe() << shiftAmount).AsVector3(); 310public static Vector3 operator ~(Vector3 value) => (~value.AsVector128Unsafe()).AsVector3(); 315public static Vector3 operator >>(Vector3 value, int shiftAmount) => (value.AsVector128Unsafe() >> shiftAmount).AsVector3(); 320public static Vector3 operator +(Vector3 value) => value; 325public static Vector3 operator >>>(Vector3 value, int shiftAmount) => (value.AsVector128Unsafe() >>> shiftAmount).AsVector3(); 332public static Vector3 Abs(Vector3 value) => Vector128.Abs(value.AsVector128Unsafe()).AsVector3(); 339public static Vector3 Add(Vector3 left, Vector3 right) => left + right; 344public static bool All(Vector3 vector, float value) => Vector128.All(vector, value); 349public static bool AllWhereAllBitsSet(Vector3 vector) => Vector128.AllWhereAllBitsSet(vector); 354public static Vector3 AndNot(Vector3 left, Vector3 right) => Vector128.AndNot(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 359public static bool Any(Vector3 vector, float value) => Vector128.Any(vector, value); 364public static bool AnyWhereAllBitsSet(Vector3 vector) => Vector128.AnyWhereAllBitsSet(vector); 368public static Vector3 BitwiseAnd(Vector3 left, Vector3 right) => left & right; 372public static Vector3 BitwiseOr(Vector3 left, Vector3 right) => left | right; 377public static Vector3 Clamp(Vector3 value1, Vector3 min, Vector3 max) => Vector128.Clamp(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector3(); 382public static Vector3 ClampNative(Vector3 value1, Vector3 min, Vector3 max) => Vector128.ClampNative(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector3(); 387public static Vector3 ConditionalSelect(Vector3 condition, Vector3 left, Vector3 right) => Vector128.ConditionalSelect(condition.AsVector128Unsafe(), left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 392public static Vector3 CopySign(Vector3 value, Vector3 sign) => Vector128.CopySign(value.AsVector128Unsafe(), sign.AsVector128Unsafe()).AsVector3(); 396public static Vector3 Cos(Vector3 vector) => Vector128.Cos(vector.AsVector128()).AsVector3(); 401public static int Count(Vector3 vector, float value) => Vector128.Count(vector, value); 406public static int CountWhereAllBitsSet(Vector3 vector) => Vector128.CountWhereAllBitsSet(vector); 408/// <summary>Creates a new <see cref="Vector3" /> object whose three elements have the same value.</summary> 410/// <returns>A new <see cref="Vector3" /> whose three elements have the same value.</returns> 412public static Vector3 Create(float value) => Vector128.Create(value).AsVector3(); 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> 420public static Vector3 Create(Vector2 vector, float z) 431/// <returns>A new <see cref="Vector3" /> whose elements have the specified values.</returns> 433public static Vector3 Create(float x, float y, float z) => Vector128.Create(x, y, z, 0).AsVector3(); 437/// <returns>A new <see cref="Vector3" /> whose elements have the specified values.</returns> 440public static Vector3 Create(ReadOnlySpan<float> values) 446return Unsafe.ReadUnaligned<Vector3>(ref Unsafe.As<float, byte>(ref MemoryMarshal.GetReference(values))); 451/// <returns>A new <see cref="Vector3" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements initialized to zero.</returns> 453public static Vector3 CreateScalar(float x) => Vector128.CreateScalar(x).AsVector3(); 457/// <returns>A new <see cref="Vector3" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements left uninitialized.</returns> 459public static Vector3 CreateScalarUnsafe(float x) => Vector128.CreateScalarUnsafe(x).AsVector3(); 466public static Vector3 Cross(Vector3 vector1, Vector3 vector2) 486public static Vector3 DegreesToRadians(Vector3 degrees) => Vector128.DegreesToRadians(degrees.AsVector128Unsafe()).AsVector3(); 493public static float Distance(Vector3 value1, Vector3 value2) => float.Sqrt(DistanceSquared(value1, value2)); 500public static float DistanceSquared(Vector3 value1, Vector3 value2) => (value1 - value2).LengthSquared(); 507public static Vector3 Divide(Vector3 left, Vector3 right) => left / right; 514public static Vector3 Divide(Vector3 left, float divisor) => left / divisor; 522public static float Dot(Vector3 vector1, Vector3 vector2) => Vector128.Dot(vector1.AsVector128(), vector2.AsVector128()); 526public static Vector3 Exp(Vector3 vector) => Vector128.Exp(vector.AsVector128()).AsVector3(); 531public static Vector3 Equals(Vector3 left, Vector3 right) => Vector128.Equals(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 536public static bool EqualsAll(Vector3 left, Vector3 right) => Vector128.EqualsAll(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 541public static bool EqualsAny(Vector3 left, Vector3 right) => Vector128.EqualsAny(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 546public static Vector3 FusedMultiplyAdd(Vector3 left, Vector3 right, Vector3 addend) => Vector128.FusedMultiplyAdd(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector3(); 551public static Vector3 GreaterThan(Vector3 left, Vector3 right) => Vector128.GreaterThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 556public static bool GreaterThanAll(Vector3 left, Vector3 right) => Vector128.GreaterThanAll(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 561public static bool GreaterThanAny(Vector3 left, Vector3 right) => Vector128.GreaterThanAny(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 566public static Vector3 GreaterThanOrEqual(Vector3 left, Vector3 right) => Vector128.GreaterThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 571public static bool GreaterThanOrEqualAll(Vector3 left, Vector3 right) => Vector128.GreaterThanOrEqualAll(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 576public static bool GreaterThanOrEqualAny(Vector3 left, Vector3 right) => Vector128.GreaterThanOrEqualAny(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 581public static Vector3 Hypot(Vector3 x, Vector3 y) => Vector128.Hypot(x.AsVector128Unsafe(), y.AsVector128Unsafe()).AsVector3(); 586public static int IndexOf(Vector3 vector, float value) => Vector128.IndexOf(vector, value); 591public static int IndexOfWhereAllBitsSet(Vector3 vector) => Vector128.IndexOfWhereAllBitsSet(vector); 596public static Vector3 IsEvenInteger(Vector3 vector) => Vector128.IsEvenInteger(vector.AsVector128()).AsVector3(); 601public static Vector3 IsFinite(Vector3 vector) => Vector128.IsFinite(vector.AsVector128()).AsVector3(); 606public static Vector3 IsInfinity(Vector3 vector) => Vector128.IsInfinity(vector.AsVector128()).AsVector3(); 611public static Vector3 IsInteger(Vector3 vector) => Vector128.IsInteger(vector.AsVector128()).AsVector3(); 616public static Vector3 IsNaN(Vector3 vector) => Vector128.IsNaN(vector.AsVector128()).AsVector3(); 621public static Vector3 IsNegative(Vector3 vector) => Vector128.IsNegative(vector.AsVector128()).AsVector3(); 626public static Vector3 IsNegativeInfinity(Vector3 vector) => Vector128.IsNegativeInfinity(vector.AsVector128()).AsVector3(); 631public static Vector3 IsNormal(Vector3 vector) => Vector128.IsNormal(vector.AsVector128()).AsVector3(); 636public static Vector3 IsOddInteger(Vector3 vector) => Vector128.IsOddInteger(vector.AsVector128()).AsVector3(); 641public static Vector3 IsPositive(Vector3 vector) => Vector128.IsPositive(vector.AsVector128()).AsVector3(); 646public static Vector3 IsPositiveInfinity(Vector3 vector) => Vector128.IsPositiveInfinity(vector.AsVector128()).AsVector3(); 651public static Vector3 IsSubnormal(Vector3 vector) => Vector128.IsSubnormal(vector.AsVector128()).AsVector3(); 656public static Vector3 IsZero(Vector3 vector) => Vector128.IsZero(vector.AsVector128()).AsVector3(); 661public static int LastIndexOf(Vector3 vector, float value) => Vector128.LastIndexOf(vector, value); 666public static int LastIndexOfWhereAllBitsSet(Vector3 vector) => Vector128.LastIndexOfWhereAllBitsSet(vector); 671public static Vector3 Lerp(Vector3 value1, Vector3 value2, float amount) => Lerp(value1, value2, Create(amount)); 676public static Vector3 Lerp(Vector3 value1, Vector3 value2, Vector3 amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), amount.AsVector128Unsafe()).AsVector3(); 681public static Vector3 LessThan(Vector3 left, Vector3 right) => Vector128.LessThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 686public static bool LessThanAll(Vector3 left, Vector3 right) => Vector128.LessThanAll(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 691public static bool LessThanAny(Vector3 left, Vector3 right) => Vector128.LessThanAny(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 696public static Vector3 LessThanOrEqual(Vector3 left, Vector3 right) => Vector128.LessThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector3(); 701public static bool LessThanOrEqualAll(Vector3 left, Vector3 right) => Vector128.LessThanOrEqualAll(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 706public static bool LessThanOrEqualAny(Vector3 left, Vector3 right) => Vector128.LessThanOrEqualAny(left.AsVector128Unsafe(), right.AsVector128Unsafe()); 711public static unsafe Vector3 Load(float* source) => LoadUnsafe(in *source); 717public static unsafe Vector3 LoadAligned(float* source) 724return *(Vector3*)source; 730public static unsafe Vector3 LoadAlignedNonTemporal(float* source) => LoadAligned(source); 735public static Vector3 LoadUnsafe(ref readonly float source) 738return Unsafe.ReadUnaligned<Vector3>(in address); 745public static Vector3 LoadUnsafe(ref readonly float source, nuint elementOffset) 748return Unsafe.ReadUnaligned<Vector3>(in address); 753public static Vector3 Log(Vector3 vector) => Vector128.Log(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3(); 757public static Vector3 Log2(Vector3 vector) => Vector128.Log2(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3(); 762public static Vector3 Max(Vector3 value1, Vector3 value2) => Vector128.Max(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 767public static Vector3 MaxMagnitude(Vector3 value1, Vector3 value2) => Vector128.MaxMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 772public static Vector3 MaxMagnitudeNumber(Vector3 value1, Vector3 value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 777public static Vector3 MaxNative(Vector3 value1, Vector3 value2) => Vector128.MaxNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 782public static Vector3 MaxNumber(Vector3 value1, Vector3 value2) => Vector128.MaxNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 787public static Vector3 Min(Vector3 value1, Vector3 value2) => Vector128.Min(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 792public static Vector3 MinMagnitude(Vector3 value1, Vector3 value2) => Vector128.MinMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 797public static Vector3 MinMagnitudeNumber(Vector3 value1, Vector3 value2) => Vector128.MinMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 802public static Vector3 MinNative(Vector3 value1, Vector3 value2) => Vector128.MinNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 807public static Vector3 MinNumber(Vector3 value1, Vector3 value2) => Vector128.MinNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector3(); 814public static Vector3 Multiply(Vector3 left, Vector3 right) => left * right; 821public static Vector3 Multiply(Vector3 left, float right) => left * right; 828public static Vector3 Multiply(float left, Vector3 right) => left * right; 833public static Vector3 MultiplyAddEstimate(Vector3 left, Vector3 right, Vector3 addend) => Vector128.MultiplyAddEstimate(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector3(); 839public static Vector3 Negate(Vector3 value) => -value; 844public static bool None(Vector3 vector, float value) => Vector128.None(vector, value); 849public static bool NoneWhereAllBitsSet(Vector3 vector) => Vector128.NoneWhereAllBitsSet(vector); 855public static Vector3 Normalize(Vector3 value) => value / value.Length(); 859public static Vector3 OnesComplement(Vector3 value) => ~value; 864public static Vector3 RadiansToDegrees(Vector3 radians) => Vector128.RadiansToDegrees(radians.AsVector128Unsafe()).AsVector3(); 871public static Vector3 Reflect(Vector3 vector, Vector3 normal) 876Vector3 tmp = Create(Dot(vector, normal)); 883public static Vector3 Round(Vector3 vector) => Vector128.Round(vector.AsVector128Unsafe()).AsVector3(); 887public static Vector3 Round(Vector3 vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128Unsafe(), mode).AsVector3(); 896public static Vector3 Shuffle(Vector3 vector, byte xIndex, byte yIndex, byte zIndex) 905public static Vector3 Sin(Vector3 vector) => Vector128.Sin(vector.AsVector128()).AsVector3(); 909public static (Vector3 Sin, Vector3 Cos) SinCos(Vector3 vector) 920public static Vector3 SquareRoot(Vector3 value) => Vector128.Sqrt(value.AsVector128Unsafe()).AsVector3(); 927public static Vector3 Subtract(Vector3 left, Vector3 right) => left - right; 932public static float Sum(Vector3 value) => Vector128.Sum(value.AsVector128()); 939public static Vector3 Transform(Vector3 position, Matrix4x4 matrix) => Vector4.Transform(position, matrix).AsVector3(); 946public static Vector3 Transform(Vector3 value, Quaternion rotation) => Vector4.Transform(value, rotation).AsVector3(); 953public static Vector3 TransformNormal(Vector3 normal, Matrix4x4 matrix) 965public static Vector3 Truncate(Vector3 vector) => Vector128.Truncate(vector.AsVector128Unsafe()).AsVector3(); 969public static Vector3 Xor(Vector3 left, Vector3 right) => left ^ right; 1050/// <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> 1051public override readonly bool Equals([NotNullWhen(true)] object? obj) => (obj is Vector3 other) && Equals(other); 1058public readonly bool Equals(Vector3 other) => this.AsVector128().Equals(other.AsVector128());
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.Extensions.cs (20)
12/// <summary>Reinterprets a <see cref="Vector3" /> as a new <see cref="Vector2" />.</summary> 15public static Vector2 AsVector2(this Vector3 value) => value.AsVector128().AsVector2(); 17/// <summary>Converts a <see cref="Vector3" /> to a new <see cref="Vector4" /> with the new elements zeroed.</summary> 20public static Vector4 AsVector4(this Vector3 value) => value.AsVector128().AsVector4(); 22/// <summary>Converts a <see cref="Vector3" /> to a new <see cref="Vector4" /> with the new elements undefined.</summary> 25public static Vector4 AsVector4Unsafe(this Vector3 value) => value.AsVector128Unsafe().AsVector4(); 30public static uint ExtractMostSignificantBits(this Vector3 vector) => vector.AsVector128().ExtractMostSignificantBits(); 34public static float GetElement(this Vector3 vector, int index) 36if ((uint)index >= Vector3.ElementCount) 47public static void Store(this Vector3 source, float* destination) => source.StoreUnsafe(ref *destination); 55public static void StoreAligned(this Vector3 source, float* destination) 57if (((nuint)destination % (uint)(Vector3.Alignment)) != 0) 62*(Vector3*)destination = source; 71public static void StoreAlignedNonTemporal(this Vector3 source, float* destination) => source.StoreAligned(destination); 77public static void StoreUnsafe(this Vector3 source, ref float destination) 89public static void StoreUnsafe(this Vector3 source, ref float destination, nuint elementOffset) 97public static float ToScalar(this Vector3 vector) => vector.AsVector128Unsafe().ToScalar(); 101public static Vector3 WithElement(this Vector3 vector, int index, float value) 103if ((uint)index >= Vector3.ElementCount)
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.cs (9)
69/// <summary>Constructs a new <see cref="Vector4" /> object from the specified <see cref="Vector3" /> object and a W component.</summary> 73public Vector4(Vector3 value, float w) 461/// <summary>Constructs a new <see cref="Vector4" /> object from the specified <see cref="Vector3" /> object and a W component.</summary> 464/// <returns>A new <see cref="Vector4" /> from the specified <see cref="Vector3" /> object and a W component.</returns> 467public static Vector4 Create(Vector3 vector, float w) 510/// <see cref="Vector3.Cross"/> with the addition of the fourth value which is 512/// the cross product for <see cref="Vector3"/> with values [x_1/w_1, y_1/w_1, z_1/w_1] 992public static Vector4 Transform(Vector3 position, Matrix4x4 matrix) 1008public static Vector4 Transform(Vector3 value, Quaternion rotation) => Transform(Create(value, 1.0f), rotation);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.Extensions.cs (3)
27/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="Vector3" />.</summary> 29/// <returns><paramref name="value" /> reinterpreted as a new <see cref="Vector3" />.</returns> 30public static Vector3 AsVector3(this Vector4 value) => value.AsVector128().AsVector3();
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) => BitOperations.PopCount(Equals(vector.AsVector128(), Create(value, value, value, -1)).ExtractMostSignificantBits()); 201internal static int CountWhereAllBitsSet(Vector3 vector) => BitOperations.PopCount(Equals(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet).ExtractMostSignificantBits()); 215internal static int IndexOf(Vector3 vector, float value) 233internal static int IndexOfWhereAllBitsSet(Vector3 vector) 247internal static int LastIndexOf(Vector3 vector, float value) => 31 - BitOperations.LeadingZeroCount(Equals(vector.AsVector128(), Create(value, value, value, -1)).ExtractMostSignificantBits()); 257internal static int LastIndexOfWhereAllBitsSet(Vector3 vector) => 31 - BitOperations.LeadingZeroCount(Equals(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet).ExtractMostSignificantBits()); 267internal static bool None(Vector3 vector, float value) => !EqualsAny(vector.AsVector128(), Create(value, value, value, -1)); 277internal static bool NoneWhereAllBitsSet(Vector3 vector) => !EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);