Class MathUtil

java.lang.Object
kr.toxicity.model.api.util.MathUtil

@Internal public final class MathUtil extends Object
Math
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final float
    Degrees to packed byte
    static final float
    Degrees to radians
    static final float
    Float comparison epsilon value
    static final it.unimi.dsi.fastutil.floats.FloatComparator
    Float comparator
    static final float
    Frame epsilon value
    static final int
    Minecraft tick mills
    static final float
    Multiplier value for convert model size to block size
    static final float
    Quaternion comparison epsilon value
    static final float
    Radians to degrees
    static final float
    Valid rotation degree
    static final float
    Squared vector comparison epsilon value
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    checkValidDegree(float rotation)
    Checks this float is valid Minecraft degree
    static boolean
    checkValidDegree(@NotNull Float3 rotation)
    Checks these floats are valid Minecraft degree
    static short
    floatToHalf(float value)
    Converts a 32-bit float to IEEE 754 half-precision bits.
    static double
    fma(double a, double b, double c)
    Executes fused multiply add (a * b + c)
    static float
    fma(float a, float b, float c)
    Executes fused multiply add (a * b + c)
    static @NotNull org.joml.Vector3f
    fma(@NotNull org.joml.Vector3f a, float b, @NotNull org.joml.Vector3f c)
    Executes fused multiply add (a * b + c)
    static @NotNull org.joml.Vector3f
    fma(@NotNull org.joml.Vector3f a, @NotNull org.joml.Vector3f b, @NotNull org.joml.Vector3f c)
    Executes fused multiply add (a * b + c)
    static @NotNull Float3
    identifier(@NotNull Float3 rotation)
    Creates rotation identifier
    static boolean
    isNotZero(@NotNull org.joml.Vector3f vector3f)
    Checks this vector is not zero
    static boolean
    isSimilar(float a, float b)
    Checks two floats are similar.
    static boolean
    isSimilar(float a, float b, float epsilon)
    Checks two floats are similar.
    static boolean
    isSimilar(@NotNull org.joml.Quaternionf a, @NotNull org.joml.Quaternionf b)
    Checks two quaternion are similar.
    static boolean
    isSimilar(@NotNull org.joml.Quaternionf a, @NotNull org.joml.Quaternionf b, float epsilon)
    Checks two quaternion are similar.
    static boolean
    isSimilar(@NotNull org.joml.Vector3fc a, @NotNull org.joml.Vector3fc b)
    Checks two vectors are similar.
    static boolean
    isSimilar(@NotNull org.joml.Vector3fc a, @NotNull org.joml.Vector3fc b, float epsilon)
    Checks two vectors are similar.
    static boolean
    isZero(@NotNull org.joml.Vector3f vector)
    Checks this vector is zero
    static int
    similarHashCode(float value)
    Creates epsilon-based hashcode of given float
    static @NotNull org.joml.Quaternionf
    toQuaternion(@NotNull org.joml.Vector3f vector)
    Converts vector rotation to quaternion
    static @NotNull org.joml.Quaternionf
    toQuaternion(@NotNull org.joml.Vector3f vector, @NotNull org.joml.Quaternionf dest)
    Converts vector rotation to quaternion
    static @NotNull org.joml.Vector3f
    toXYZEuler(@NotNull org.joml.Vector3f vec)
    Converts zyx euler to xyz euler

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MINECRAFT_TICK_MILLS

      public static final int MINECRAFT_TICK_MILLS
      Minecraft tick mills
      See Also:
    • ROTATION_DEGREE

      public static final float ROTATION_DEGREE
      Valid rotation degree
      See Also:
    • DEGREES_TO_RADIANS

      public static final float DEGREES_TO_RADIANS
      Degrees to radians
      See Also:
    • RADIANS_TO_DEGREES

      public static final float RADIANS_TO_DEGREES
      Radians to degrees
      See Also:
    • DEGREES_TO_PACKED_BYTE

      public static final float DEGREES_TO_PACKED_BYTE
      Degrees to packed byte
      See Also:
    • MODEL_TO_BLOCK_MULTIPLIER

      public static final float MODEL_TO_BLOCK_MULTIPLIER
      Multiplier value for convert model size to block size
      See Also:
    • FRAME_EPSILON

      public static final float FRAME_EPSILON
      Frame epsilon value
      See Also:
    • FLOAT_COMPARISON_EPSILON

      public static final float FLOAT_COMPARISON_EPSILON
      Float comparison epsilon value
      See Also:
    • VECTOR_COMPARISON_EPSILON_SQ

      public static final float VECTOR_COMPARISON_EPSILON_SQ
      Squared vector comparison epsilon value
      See Also:
    • QUATERNION_COMPARISON_EPSILON

      public static final float QUATERNION_COMPARISON_EPSILON
      Quaternion comparison epsilon value
      See Also:
    • FRAME_COMPARATOR

      public static final it.unimi.dsi.fastutil.floats.FloatComparator FRAME_COMPARATOR
      Float comparator
  • Method Details

    • isSimilar

      public static boolean isSimilar(float a, float b)
      Checks two floats are similar.
      Parameters:
      a - a
      b - b
      Returns:
      similar or not
    • isSimilar

      public static boolean isSimilar(float a, float b, float epsilon)
      Checks two floats are similar.
      Parameters:
      a - a
      b - b
      epsilon - epsilon
      Returns:
      similar or not
    • isSimilar

      public static boolean isSimilar(@NotNull @NotNull org.joml.Vector3fc a, @NotNull @NotNull org.joml.Vector3fc b)
      Checks two vectors are similar.
      Parameters:
      a - a
      b - b
      Returns:
      similar or not
    • isSimilar

      public static boolean isSimilar(@NotNull @NotNull org.joml.Vector3fc a, @NotNull @NotNull org.joml.Vector3fc b, float epsilon)
      Checks two vectors are similar.
      Parameters:
      a - a
      b - b
      epsilon - epsilon
      Returns:
      similar or not
    • isSimilar

      public static boolean isSimilar(@NotNull @NotNull org.joml.Quaternionf a, @NotNull @NotNull org.joml.Quaternionf b)
      Checks two quaternion are similar.
      Parameters:
      a - a
      b - b
      Returns:
      similar or not
    • isSimilar

      public static boolean isSimilar(@NotNull @NotNull org.joml.Quaternionf a, @NotNull @NotNull org.joml.Quaternionf b, float epsilon)
      Checks two quaternion are similar.
      Parameters:
      a - a
      b - b
      epsilon - epsilon
      Returns:
      similar or not
    • similarHashCode

      public static int similarHashCode(float value)
      Creates epsilon-based hashcode of given float
      Parameters:
      value - value
      Returns:
      hashcode
    • checkValidDegree

      public static boolean checkValidDegree(@NotNull @NotNull Float3 rotation)
      Checks these floats are valid Minecraft degree
      Parameters:
      rotation - rotation
      Returns:
      is valid
    • checkValidDegree

      public static boolean checkValidDegree(float rotation)
      Checks this float is valid Minecraft degree
      Parameters:
      rotation - rotation
      Returns:
      is valid
    • identifier

      @NotNull public static @NotNull Float3 identifier(@NotNull @NotNull Float3 rotation)
      Creates rotation identifier
      Parameters:
      rotation - rotation
      Returns:
      identifier
    • toQuaternion

      @NotNull public static @NotNull org.joml.Quaternionf toQuaternion(@NotNull @NotNull org.joml.Vector3f vector)
      Converts vector rotation to quaternion
      Parameters:
      vector - vector
      Returns:
      rotation
    • toQuaternion

      @NotNull public static @NotNull org.joml.Quaternionf toQuaternion(@NotNull @NotNull org.joml.Vector3f vector, @NotNull @NotNull org.joml.Quaternionf dest)
      Converts vector rotation to quaternion
      Parameters:
      vector - vector
      dest - destination quaternion
      Returns:
      rotation
    • toXYZEuler

      @NotNull public static @NotNull org.joml.Vector3f toXYZEuler(@NotNull @NotNull org.joml.Vector3f vec)
      Converts zyx euler to xyz euler
      Parameters:
      vec - zyx euler
      Returns:
      xyz euler
    • fma

      @NotNull public static @NotNull org.joml.Vector3f fma(@NotNull @NotNull org.joml.Vector3f a, @NotNull @NotNull org.joml.Vector3f b, @NotNull @NotNull org.joml.Vector3f c)
      Executes fused multiply add (a * b + c)
      Parameters:
      a - a vector
      b - b vector
      c - c vector
      Returns:
      added a
    • fma

      @NotNull public static @NotNull org.joml.Vector3f fma(@NotNull @NotNull org.joml.Vector3f a, float b, @NotNull @NotNull org.joml.Vector3f c)
      Executes fused multiply add (a * b + c)
      Parameters:
      a - a vector
      b - b scala
      c - c vector
      Returns:
      added a
    • fma

      public static float fma(float a, float b, float c)
      Executes fused multiply add (a * b + c)
      Parameters:
      a - a
      b - b
      c - c
      Returns:
      a * b + c
    • fma

      public static double fma(double a, double b, double c)
      Executes fused multiply add (a * b + c)
      Parameters:
      a - a
      b - b
      c - c
      Returns:
      a * b + c
    • isNotZero

      public static boolean isNotZero(@NotNull @NotNull org.joml.Vector3f vector3f)
      Checks this vector is not zero
      Parameters:
      vector3f - vector
      Returns:
      is not zero
    • isZero

      public static boolean isZero(@NotNull @NotNull org.joml.Vector3f vector)
      Checks this vector is zero
      Parameters:
      vector - vector
      Returns:
      is zero
    • floatToHalf

      public static short floatToHalf(float value)
      Converts a 32-bit float to IEEE 754 half-precision bits.
      Parameters:
      value - source float
      Returns:
      half-float bit pattern stored in a short