docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class Math

    Helper functions.

    Inheritance
    object
    Math
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Unity.Physics
    Assembly: Unity.Physics.dll
    Syntax
    public static class Math

    Methods

    CalculatePerpendicularNormalized(float3, out float3, out float3)

    Return two normals perpendicular to the input vector.

    Declaration
    public static void CalculatePerpendicularNormalized(float3 v, out float3 p, out float3 q)
    Parameters
    Type Name Description
    float3 v

    Input vector.

    float3 p

    [out] Normal 1.

    float3 q

    [out] Normal 2.

    CalculateTwistAngle(quaternion, int)

    Returns the twist angle of the swing-twist decomposition of q about i, j, or k corresponding to index = 0, 1, or 2 respectively. Full calculation for readability: float invLength = RSqrtSafe(dot * dot + w * w); float sinHalfAngle = dot * invLength; float cosHalfAngle = w * invLength; Observe: invLength cancels in the tan^-1(sin / cos) calc, so avoid unnecessary calculations.

    Declaration
    public static float CalculateTwistAngle(quaternion q, int twistAxisIndex)
    Parameters
    Type Name Description
    quaternion q

    A quaternion to process.

    int twistAxisIndex

    Zero-based index of the twist axis.

    Returns
    Type Description
    float

    The calculated twist angle.

    ClampToMaxLength(float, ref float3)

    Clamps the vector to to maximum length.

    Declaration
    public static void ClampToMaxLength(float maxLength, ref float3 vector)
    Parameters
    Type Name Description
    float maxLength

    The maximum length.

    float3 vector

    [in,out] The vector to be clamped.

    DecomposeRigidBodyOrientation(in float4x4)

    Physics internally represents all rigid bodies in world space. If a static body is in a hierarchy, its local-to-world matrix must be decomposed when building the physics world. This method returns a world-space orientation that would be decomposed for such a rigid body.

    Declaration
    public static quaternion DecomposeRigidBodyOrientation(in float4x4 localToWorld)
    Parameters
    Type Name Description
    float4x4 localToWorld

    The local to world.

    Returns
    Type Description
    quaternion

    A world-space orientation as used by physics.

    DecomposeRigidBodyTransform(in float4x4)

    Physics internally represents all rigid bodies in world space. If a static body is in a hierarchy, its local-to-world matrix must be decomposed when building the physics world. This method returns a world-space RigidTransform that would be decomposed for such a rigid body.

    Declaration
    public static RigidTransform DecomposeRigidBodyTransform(in float4x4 localToWorld)
    Parameters
    Type Name Description
    float4x4 localToWorld

    The local to world.

    Returns
    Type Description
    RigidTransform

    A world-space RigidTransform as used by physics.

    DecomposeScale(float4x4)

    Obtain 3-dimensional scale vector of the provided 4x4 transformation matrix, the components of which represent the lengths of the three orthonormal basis vectors forming the 3x3 rotational sub-matrix, respectively.

    Declaration
    public static float3 DecomposeScale(this float4x4 matrix)
    Parameters
    Type Name Description
    float4x4 matrix

    The 4x4 transformation matrix.

    Returns
    Type Description
    float3

    HasNonIdentityScale(float4x4, float)

    Checks if the matrix has non-identity scale.

    Declaration
    public static bool HasNonIdentityScale(this float4x4 m, float eps = 1E-05)
    Parameters
    Type Name Description
    float4x4 m

    The matrix.

    float eps

    Epsilon value used in the non-identity scale determination.

    Returns
    Type Description
    bool

    True if the matrix has non-identity scale.

    HasNonUniformScale(float4x4, float)

    Checks if the matrix has non-uniform scale.

    Declaration
    public static bool HasNonUniformScale(this float4x4 m, float eps = 1E-05)
    Parameters
    Type Name Description
    float4x4 m

    The matrix.

    float eps

    Epsilon value used in the non-uniform scale determination.

    Returns
    Type Description
    bool

    True if the matrix has non-uniform scale.

    HasShear(float4x4)

    Checks if the matrix has shear.

    Declaration
    public static bool HasShear(this float4x4 m)
    Parameters
    Type Name Description
    float4x4 m

    The matrix.

    Returns
    Type Description
    bool

    True if the matrix has shear.

    Inverse(MTransform)

    Inverses the given transform.

    Declaration
    public static Math.MTransform Inverse(Math.MTransform transform)
    Parameters
    Type Name Description
    Math.MTransform transform

    A MTransform to process.

    Returns
    Type Description
    Math.MTransform

    An inverse of the provided transform.

    Inverse(ScaledMTransform)

    Inverses the given transform.

    Declaration
    public static Math.ScaledMTransform Inverse(Math.ScaledMTransform transform)
    Parameters
    Type Name Description
    Math.ScaledMTransform transform

    A ScaledMTransform to process.

    Returns
    Type Description
    Math.ScaledMTransform

    A ScaledMTransform that is the inverse of the input.

    IsNormalized(float3)

    Check if 'v' is normalized.

    Declaration
    public static bool IsNormalized(float3 v)
    Parameters
    Type Name Description
    float3 v

    A float3 to check if normalized.

    Returns
    Type Description
    bool

    True if normalized, false if not.

    Mul(MTransform, float3)

    Multiplies the point by the transform.

    Declaration
    public static float3 Mul(Math.MTransform a, float3 x)
    Parameters
    Type Name Description
    Math.MTransform a

    A MTransform to multiply with.

    float3 x

    A point to process.

    Returns
    Type Description
    float3

    A transformed point.

    Mul(MTransform, MTransform)

    Returns cFromA = cFromB * bFromA.

    Declaration
    public static Math.MTransform Mul(Math.MTransform cFromB, Math.MTransform bFromA)
    Parameters
    Type Name Description
    Math.MTransform cFromB

    cFromB.

    Math.MTransform bFromA

    bFromA.

    Returns
    Type Description
    Math.MTransform

    A MTransform, cFromA.

    Mul(ScaledMTransform, float3)

    Multiplies the point by the transform.

    Declaration
    public static float3 Mul(Math.ScaledMTransform a, float3 x)
    Parameters
    Type Name Description
    Math.ScaledMTransform a

    A ScaledMTransform to multiply with.

    float3 x

    A point to process.

    Returns
    Type Description
    float3

    A transformed point.

    Mul(ScaledMTransform, ScaledMTransform)

    Returns cFromA = cFromB * bFromA.

    Declaration
    public static Math.ScaledMTransform Mul(Math.ScaledMTransform cFromB, Math.ScaledMTransform bFromA)
    Parameters
    Type Name Description
    Math.ScaledMTransform cFromB

    cFromB.

    Math.ScaledMTransform bFromA

    bFromA.

    Returns
    Type Description
    Math.ScaledMTransform

    A ScaledMTransform, cFromA.

    NormalizeWithLength(float3, out float3)

    Normalize and return the lenght of a vector.

    Declaration
    public static float NormalizeWithLength(float3 v, out float3 n)
    Parameters
    Type Name Description
    float3 v

    A float3 to normalize.

    float3 n

    [out] A normalized float3.

    Returns
    Type Description
    float

    Length of v.

    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)