Class MathUtils

java.lang.Object
de.slikey.effectlib.util.MathUtils

public final class MathUtils extends Object
Utility and fast math functions.

Thanks to Riven on JavaGaming.org for the basis of sin/cos/atan2/floor/ceil.

Author:
Nathan Sweet
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final float
     
    static final float
    multiply by this to convert from degrees to radians
    static final float
     
    static final float
     
    static final float
     
    static final float
     
    static final float
     
    static final float
     
    static final float
    multiply by this to convert from radians to degrees
    static final Random
     
    static final float
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static float
    atan2(float y, float x)
    Returns atan2 in radians from a lookup table.
    static int
    ceil(float x)
    Returns the smallest integer greater than or equal to the specified float.
    static int
    ceilPositive(float x)
    Returns the smallest integer greater than or equal to the specified float.
    static float
    clamp(float value, float min, float max)
     
    static int
    clamp(int value, int min, int max)
     
    static short
    clamp(short value, short min, short max)
     
    static float
    cos(float radians)
    Returns the cosine in radians from a lookup table.
    static float
    cosDeg(float degrees)
    Returns the cosine in radians from a lookup table.
    static int
    floor(float x)
    Returns the largest integer less than or equal to the specified float.
    static int
    floorPositive(float x)
    Returns the largest integer less than or equal to the specified float.
    static boolean
    isEqual(float a, float b)
    Returns true if a is nearly equal to b.
    static boolean
    isEqual(float a, float b, float tolerance)
    Returns true if a is nearly equal to b.
    static boolean
    isFinite(double value)
    Compatiblity method for Double.isFinite from Java 1.7 and up
    static boolean
    isPowerOfTwo(int value)
     
    static boolean
    isZero(float value)
    Returns true if the value is zero (using the default tolerance as upper bound)
    static boolean
    isZero(float value, float tolerance)
    Returns true if the value is zero.
    static int
    nextPowerOfTwo(int value)
    Returns the next power of two.
    static float
    Returns random number between 0.0 (inclusive) and 1.0 (exclusive).
    static float
    random(float range)
    Returns a random number between 0 (inclusive) and the specified value (exclusive).
    static float
    random(float start, float end)
    Returns a random number between start (inclusive) and end (exclusive).
    static int
    random(int range)
    Returns a random number between 0 (inclusive) and the specified value (inclusive).
    static int
    random(int start, int end)
    Returns a random number between start (inclusive) and end (inclusive).
    static boolean
    Returns a random boolean value.
    static boolean
    randomBoolean(float chance)
    Returns true if a random value between 0 and 1 is less than the specified value.
    static int
    round(float x)
    Returns the closest integer to the specified float.
    static int
    roundPositive(float x)
    Returns the closest integer to the specified float.
    static float
    sin(float radians)
    Returns the sine in radians from a lookup table.
    static float
    sinDeg(float degrees)
    Returns the sine in radians from a lookup table.

    Methods inherited from class java.lang.Object

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

  • Constructor Details

    • MathUtils

      public MathUtils()
  • Method Details

    • sin

      public static float sin(float radians)
      Returns the sine in radians from a lookup table.
    • cos

      public static float cos(float radians)
      Returns the cosine in radians from a lookup table.
    • sinDeg

      public static float sinDeg(float degrees)
      Returns the sine in radians from a lookup table.
    • cosDeg

      public static float cosDeg(float degrees)
      Returns the cosine in radians from a lookup table.
    • atan2

      public static float atan2(float y, float x)
      Returns atan2 in radians from a lookup table.
    • random

      public static int random(int range)
      Returns a random number between 0 (inclusive) and the specified value (inclusive).
    • random

      public static int random(int start, int end)
      Returns a random number between start (inclusive) and end (inclusive).
    • randomBoolean

      public static boolean randomBoolean()
      Returns a random boolean value.
    • randomBoolean

      public static boolean randomBoolean(float chance)
      Returns true if a random value between 0 and 1 is less than the specified value.
    • random

      public static float random()
      Returns random number between 0.0 (inclusive) and 1.0 (exclusive).
    • random

      public static float random(float range)
      Returns a random number between 0 (inclusive) and the specified value (exclusive).
    • random

      public static float random(float start, float end)
      Returns a random number between start (inclusive) and end (exclusive).
    • nextPowerOfTwo

      public static int nextPowerOfTwo(int value)
      Returns the next power of two. Returns the specified value if the value is already a power of two.
    • isPowerOfTwo

      public static boolean isPowerOfTwo(int value)
    • clamp

      public static int clamp(int value, int min, int max)
    • clamp

      public static short clamp(short value, short min, short max)
    • clamp

      public static float clamp(float value, float min, float max)
    • floor

      public static int floor(float x)
      Returns the largest integer less than or equal to the specified float. This method will only properly floor floats from -(2^14) to (Float.MAX_VALUE - 2^14).
    • floorPositive

      public static int floorPositive(float x)
      Returns the largest integer less than or equal to the specified float. This method will only properly floor floats that are positive. Note this method simply casts the float to int.
    • ceil

      public static int ceil(float x)
      Returns the smallest integer greater than or equal to the specified float. This method will only properly ceil floats from -(2^14) to (Float.MAX_VALUE - 2^14).
    • ceilPositive

      public static int ceilPositive(float x)
      Returns the smallest integer greater than or equal to the specified float. This method will only properly ceil floats that are positive.
    • round

      public static int round(float x)
      Returns the closest integer to the specified float. This method will only properly round floats from -(2^14) to (Float.MAX_VALUE - 2^14).
    • roundPositive

      public static int roundPositive(float x)
      Returns the closest integer to the specified float. This method will only properly round floats that are positive.
    • isZero

      public static boolean isZero(float value)
      Returns true if the value is zero (using the default tolerance as upper bound)
    • isZero

      public static boolean isZero(float value, float tolerance)
      Returns true if the value is zero.
      Parameters:
      tolerance - represent an upper bound below which the value is considered zero.
    • isEqual

      public static boolean isEqual(float a, float b)
      Returns true if a is nearly equal to b. The function uses the default floating error tolerance.
      Parameters:
      a - the first value.
      b - the second value.
    • isEqual

      public static boolean isEqual(float a, float b, float tolerance)
      Returns true if a is nearly equal to b.
      Parameters:
      a - the first value.
      b - the second value.
      tolerance - represent an upper bound below which the two values are considered equal.
    • isFinite

      public static boolean isFinite(double value)
      Compatiblity method for Double.isFinite from Java 1.7 and up