// The .NET Foundation licenses this file to you under the MIT license.
using System.Globalization;
+using System.Runtime.CompilerServices;
namespace System.Numerics
{
/// <summary>
/// A structure encapsulating a 3x2 matrix.
/// </summary>
+ [Intrinsic]
public struct Matrix3x2 : IEquatable<Matrix3x2>
{
private const float RotationEpsilon = 0.001f * MathF.PI / 180f; // 0.1% of a degree
/// <summary>
/// A structure encapsulating a 4x4 matrix.
/// </summary>
- [StructLayout(LayoutKind.Sequential)]
+ [Intrinsic]
public struct Matrix4x4 : IEquatable<Matrix4x4>
{
private const float BillboardEpsilon = 1e-4f;
/// <summary>
/// A structure encapsulating a 3D Plane
/// </summary>
+ [Intrinsic]
public struct Plane : IEquatable<Plane>
{
private const float NormalizeEpsilon = 1.192092896e-07f; // smallest such that 1.0+NormalizeEpsilon != 1.0
// The .NET Foundation licenses this file to you under the MIT license.
using System.Globalization;
+using System.Runtime.CompilerServices;
namespace System.Numerics
{
/// A structure encapsulating a four-dimensional vector (x,y,z,w),
/// which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
/// </summary>
+ [Intrinsic]
public struct Quaternion : IEquatable<Quaternion>
{
private const float SlerpEpsilon = 1e-6f;