Package limn.math

Record Class Vec4


public record Vec4(float x, float y, float z, float w) extends Record
An immutable 4-component vector: homogeneous positions (w=1), directions (w=0), and RGBA colors. The workhorse for matrix transforms.
  • Field Summary

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

    Constructors
    Constructor
    Description
    Vec4(float x, float y, float z, float w)
    Creates an instance of a Vec4 record class.
  • Method Summary

    Modifier and Type
    Method
    Description
    add(Vec4 o)
    Component-wise sum, w included.
    float
    dot(Vec4 o)
    Four-component dot product.
    final boolean
    Indicates whether some other object is "equal to" this one.
    float
    get(int i)
    Component by index, 0 = x through 3 = w.
    final int
    Returns a hash code value for this object.
    mul(float s)
    Scales all four components, w included.
    Perspective divide → the xyz in normalized device / world space.
    final String
    Returns a string representation of this record class.
    float
    w()
    Returns the value of the w record component.
    float
    x()
    Returns the value of the x record component.
    xyz()
    The first three components, dropping w without dividing by it.
    float
    y()
    Returns the value of the y record component.
    float
    z()
    Returns the value of the z record component.

    Methods inherited from class java.lang.Object

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

    • ZERO

      public static final Vec4 ZERO
  • Constructor Details

    • Vec4

      public Vec4(float x, float y, float z, float w)
      Creates an instance of a Vec4 record class.
      Parameters:
      x - the value for the x record component
      y - the value for the y record component
      z - the value for the z record component
      w - the value for the w record component
  • Method Details

    • add

      public Vec4 add(Vec4 o)
      Component-wise sum, w included.
    • mul

      public Vec4 mul(float s)
      Scales all four components, w included.
    • dot

      public float dot(Vec4 o)
      Four-component dot product.
    • perspectiveDivide

      public Vec3 perspectiveDivide()
      Perspective divide → the xyz in normalized device / world space. Falls back to xyz when w≈0.
    • xyz

      public Vec3 xyz()
      The first three components, dropping w without dividing by it.
    • get

      public float get(int i)
      Component by index, 0 = x through 3 = w.
      Throws:
      IndexOutOfBoundsException - for any other index
    • toString

      public final 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
    • 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.
    • x

      public float x()
      Returns the value of the x record component.
      Returns:
      the value of the x record component
    • y

      public float y()
      Returns the value of the y record component.
      Returns:
      the value of the y record component
    • z

      public float z()
      Returns the value of the z record component.
      Returns:
      the value of the z record component
    • w

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