Search Results for

    Show / Hide Table of Contents

    Class MathHelper

    Math helper functions.

    Inheritance
    object
    MathHelper
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Evergine.Mathematics
    Assembly: Evergine.Mathematics.dll
    Syntax
    public static class MathHelper

    Fields

    E

    Represents the mathematical constant e.

    Declaration
    public const float E = 2.7182817
    Field Value
    Type Description
    float

    Epsilon

    The epsilon.

    Declaration
    public const float Epsilon = 1.1920929E-07
    Field Value
    Type Description
    float

    Log10E

    Represents the log base ten of e.

    Declaration
    public const float Log10E = 0.4342945
    Field Value
    Type Description
    float

    Log2E

    Represents the log base two of e.

    Declaration
    public const float Log2E = 1.442695
    Field Value
    Type Description
    float

    Pi

    Represents the value of pi.

    Declaration
    public const float Pi = 3.1415927
    Field Value
    Type Description
    float

    PiOver2

    Represents the value of pi divided by two.

    Declaration
    public const float PiOver2 = 1.5707964
    Field Value
    Type Description
    float

    PiOver4

    Represents the value of pi divided by four.

    Declaration
    public const float PiOver4 = 0.7853982
    Field Value
    Type Description
    float

    TwoPi

    Represents the value of pi times two.

    Declaration
    public const float TwoPi = 6.2831855
    Field Value
    Type Description
    float

    Properties

    SimdType

    Gets the type of SIMD instructions used.

    Declaration
    public static MathSimdType SimdType { get; }
    Property Value
    Type Description
    MathSimdType

    Methods

    Area(ref Vector2, ref Vector2, ref Vector2)

    Linearly interpolates between value1 and value2 by amount. The parameter amount is not clamped and values outside the range [0, 1] will result in a return value outside the range [value1, value2]. Returns a positive number if c is to the left of the line going from a to b.

    Declaration
    public static float Area(ref Vector2 a, ref Vector2 b, ref Vector2 c)
    Parameters
    Type Name Description
    Vector2 a

    The first vector.

    Vector2 b

    The second vector.

    Vector2 c

    The third vector.

    Returns
    Type Description
    float

    Positive number if point is left, negative if point is right, and 0 if points are collinear.

    Barycentric(float, float, float, float, float)

    Returns the Cartesian coordinate for one axis of a point that is defined by a given triangle and two normalized barycentric (areal) coordinates.

    Declaration
    public static float Barycentric(float value1, float value2, float value3, float amount1, float amount2)
    Parameters
    Type Name Description
    float value1

    The coordinate on one axis of vertex 1 of the defining triangle.

    float value2

    The coordinate on the same axis of vertex 2 of the defining triangle.

    float value3

    The coordinate on the same axis of vertex 3 of the defining triangle.

    float amount1

    The normalized barycentric (areal) coordinate b2, equal to the weighting factor for vertex 2, the coordinate of which is specified in value2.

    float amount2

    The normalized barycentric (areal) coordinate b3, equal to the weighting factor for vertex 3, the coordinate of which is specified in value3.

    Returns
    Type Description
    float

    Cartesian coordinate of the specified point with respect to the axis being used.

    CatmullRom(float, float, float, float, float)

    Performs a Catmull-Rom interpolation using the specified positions.

    Declaration
    public static float CatmullRom(float value1, float value2, float value3, float value4, float amount)
    Parameters
    Type Name Description
    float value1

    The first position in the interpolation.

    float value2

    The second position in the interpolation.

    float value3

    The third position in the interpolation.

    float value4

    The fourth position in the interpolation.

    float amount

    Weighting factor.

    Returns
    Type Description
    float

    A position that is the result of the Catmull-Rom interpolation.

    Clamp(float, float, float)

    Clamps a value between a minimum float and maximum float value.

    Declaration
    public static float Clamp(float value, float min, float max)
    Parameters
    Type Name Description
    float value

    The value.

    float min

    The minimum value. If value is less than min, min will be returned.

    float max

    The maximum value. If value is greater than max, max will be returned.

    Returns
    Type Description
    float

    The clamped value.

    Distance(float, float)

    Calculates the absolute value of the difference of two values.

    Declaration
    public static float Distance(float value1, float value2)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float value2

    Source value2.

    Returns
    Type Description
    float

    Distance between the two values.

    DivideByMultiple(uint, uint)

    Divide value by alignment to get the minimum multiple higher than the value.

    Declaration
    public static uint DivideByMultiple(uint value, uint alignment)
    Parameters
    Type Name Description
    uint value

    The value to divide.

    uint alignment

    The alignment.

    Returns
    Type Description
    uint

    The multiply value.

    FloatEquals(float, float)

    Checks if a floating point Value is equal to another, within a certain tolerance.

    Declaration
    public static bool FloatEquals(float value1, float value2)
    Parameters
    Type Name Description
    float value1

    The first floating point Value.

    float value2

    The second floating point Value.

    Returns
    Type Description
    bool

    True if the values are "equal", false otherwise.

    FloatEquals(float, float, float)

    Checks if a floating point Value is equal to another, within a certain tolerance.

    Declaration
    public static bool FloatEquals(float value1, float value2, float delta)
    Parameters
    Type Name Description
    float value1

    The first floating point Value.

    float value2

    The second floating point Value.

    float delta

    The floating point tolerance.

    Returns
    Type Description
    bool

    True if the values are "equal", false otherwise.

    FloatInRange(float, float, float)

    Checks if a floating point Value is within a specified range of values (inclusive).

    Declaration
    public static bool FloatInRange(float value, float min, float max)
    Parameters
    Type Name Description
    float value

    The Value to check.

    float min

    The minimum Value.

    float max

    The maximum Value.

    Returns
    Type Description
    bool

    True if the Value is within the range specified, false otherwise.

    Hermite(float, float, float, float, float)

    Performs a Hermite spline interpolation.

    Declaration
    public static float Hermite(float value1, float tangent1, float value2, float tangent2, float amount)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float tangent1

    Source tangent1.

    float value2

    Source value2.

    float tangent2

    Source tangent2.

    float amount

    Weighting factor.

    Returns
    Type Description
    float

    The result of the Hermite spline interpolation.

    InverseLerp(float, float, float)

    Calculates the linear parameter amount that produces the interpolant value within the range [value1, value2].

    Declaration
    public static float InverseLerp(float value1, float value2, float value)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float value2

    Source value2.

    float value

    Interpolant value.

    Returns
    Type Description
    float

    The linear parameter amount.

    Lerp(float, float, float)

    Lerps the specified value1.

    Declaration
    public static float Lerp(float value1, float value2, float amount)
    Parameters
    Type Name Description
    float value1

    The value1.

    float value2

    The value2.

    float amount

    The amount.

    Returns
    Type Description
    float

    Interpolated value.

    Examples

    When amount = 0 returns value1. When amount = 1 return value2. When amount = 0.5 returns the midpoint of value1 and value2.

    LerpClamped(float, float, float)

    Linearly interpolates between value1 and value2 by amount. The parameter amount is clamped to the range [0, 1].

    Declaration
    public static float LerpClamped(float value1, float value2, float amount)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float value2

    Source value2.

    float amount

    Value between 0 and 1 indicating the weight of value2.

    Returns
    Type Description
    float

    Interpolated value.

    Examples

    When amount = 0 returns value1. When amount = 1 return value2. When amount = 0.5 returns the midpoint of value1 and value2.

    Max(ref Vector2)

    Returns the greater of two Vector2 components.

    Declaration
    public static float Max(ref Vector2 value)
    Parameters
    Type Name Description
    Vector2 value

    Source value.

    Returns
    Type Description
    float

    The greater value.

    Max(ref Vector3)

    Returns the greater of three Vector3 components.

    Declaration
    public static float Max(ref Vector3 value)
    Parameters
    Type Name Description
    Vector3 value

    Source vector.

    Returns
    Type Description
    float

    The greater value.

    Max(int, int)

    Returns the greater of two int values.

    Declaration
    public static int Max(int value1, int value2)
    Parameters
    Type Name Description
    int value1

    Source value1.

    int value2

    Source value2.

    Returns
    Type Description
    int

    The greater value.

    Max(float, float)

    Returns the greater of two float values.

    Declaration
    public static float Max(float value1, float value2)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float value2

    Source value2.

    Returns
    Type Description
    float

    The greater value.

    Min(ref Vector2)

    Returns the lesser of two Vector2 components.

    Declaration
    public static float Min(ref Vector2 value)
    Parameters
    Type Name Description
    Vector2 value

    Source value.

    Returns
    Type Description
    float

    The lesser value.

    Min(ref Vector3)

    Returns the lesser of three Vector3 components.

    Declaration
    public static float Min(ref Vector3 value)
    Parameters
    Type Name Description
    Vector3 value

    Source vector.

    Returns
    Type Description
    float

    The lesser value.

    Min(float, float)

    Returns the lesser of two or more values.

    Declaration
    public static float Min(float value1, float value2)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float value2

    Source value2.

    Returns
    Type Description
    float

    The lesser value.

    NextPowerOfTwo(int)

    Return the next power of two value of the specified argument.

    Declaration
    public static int NextPowerOfTwo(int v)
    Parameters
    Type Name Description
    int v

    The value.

    Returns
    Type Description
    int

    The next power of two.

    NextPowerOfTwo(ulong)

    Return the next power of two value of the specified argument.

    Declaration
    public static ulong NextPowerOfTwo(ulong v)
    Parameters
    Type Name Description
    ulong v

    The value.

    Returns
    Type Description
    ulong

    The next power of two.

    SmoothDamp(float, float, ref float, float, float)

    Changes a float value towards a desired goal over time.

    Declaration
    public static float SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float gameTime)
    Parameters
    Type Name Description
    float current

    The current value.

    float target

    The target value.

    float currentVelocity

    The current velocity.

    float smoothTime

    The time it will take to reach the target.

    float gameTime

    The current game time (time between last frame).

    Returns
    Type Description
    float

    The smooth value.

    SmoothStep(float, float, float)

    Interpolates between two values using a cubic equation.

    Declaration
    public static float SmoothStep(float value1, float value2, float amount)
    Parameters
    Type Name Description
    float value1

    Source value1.

    float value2

    Source value2.

    float amount

    Weighting value.

    Returns
    Type Description
    float

    Interpolated value.

    ToDegrees(double)

    Converts radians to degrees.

    Declaration
    public static float ToDegrees(double radians)
    Parameters
    Type Name Description
    double radians

    The angle in radians.

    Returns
    Type Description
    float

    The angle in degrees.

    ToDegrees(float)

    Converts radians to degrees.

    Declaration
    public static float ToDegrees(float radians)
    Parameters
    Type Name Description
    float radians

    The angle in radians.

    Returns
    Type Description
    float

    The angle in degrees.

    ToRadians(double)

    Converts degrees to radians.

    Declaration
    public static float ToRadians(double degrees)
    Parameters
    Type Name Description
    double degrees

    The angle in degrees..

    Returns
    Type Description
    float

    The angle in radians.

    ToRadians(float)

    Converts degrees to radians.

    Declaration
    public static float ToRadians(float degrees)
    Parameters
    Type Name Description
    float degrees

    The angle in degrees.

    Returns
    Type Description
    float

    The angle in radians.

    WrapAngle(float)

    Reduces a given angle to a value between π and -π.

    Declaration
    public static float WrapAngle(float angle)
    Parameters
    Type Name Description
    float angle

    The angle to reduce, in radians.

    Returns
    Type Description
    float

    The new angle, in radians.

    In This Article
    Back to top
    Generated by DocFX