Record Class Angle

java.lang.Object
java.lang.Record
nl.colorize.multimedialib.math.Angle

public record Angle(float degrees) extends Record
Immutable angle in degrees, in the range between 0° and 360°. Angles are normalized upon creation, so new Angle(20).equals(new Angle(380).
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Angle
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Angle(float degrees)
    Creates an instance of a Angle record class.
  • Method Summary

    Modifier and Type
    Method
    Description
    float
    Returns the difference between this angle and the specified other angle, in the range between 0 and 180 degrees.
    float
    Returns the value of the degrees record component.
    final boolean
    Indicates whether some other object is "equal to" this one.
    static Angle
    fromRadians(float radians)
    Factory method to create an Angle instance from an angle specified in radians, as opposed to the constructor which requires an angle specified in degrees.
    float
     
    final int
    Returns a hash code value for this object.
    move(float byDegrees)
     
    move(Angle other)
     
    Returns an Angle that is the exact opposite of this angle.
    float
    Returns the difference between this angle and the specified other angle, in the range between -180 and 180 degrees.
    Returns a string representation of this record class.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • ORIGIN

      public static final Angle ORIGIN
  • Constructor Details

    • Angle

      public Angle(float degrees)
      Creates an instance of a Angle record class.
      Parameters:
      degrees - the value for the degrees record component
  • Method Details

    • getRadians

      public float getRadians()
    • absoluteDifference

      public float absoluteDifference(Angle other)
      Returns the difference between this angle and the specified other angle, in the range between 0 and 180 degrees.
    • relativeDifference

      public float relativeDifference(Angle other)
      Returns the difference between this angle and the specified other angle, in the range between -180 and 180 degrees.
    • move

      public Angle move(Angle other)
    • move

      public Angle move(float byDegrees)
    • opposite

      public Angle opposite()
      Returns an Angle that is the exact opposite of this angle. For example, the opposite angle of 90 degrees is 270 degrees.
    • toString

      public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • fromRadians

      public static Angle fromRadians(float radians)
      Factory method to create an Angle instance from an angle specified in radians, as opposed to the constructor which requires an angle specified in degrees.
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • degrees

      public float degrees()
      Returns the value of the degrees record component.
      Returns:
      the value of the degrees record component