Class Transform

java.lang.Object
ch.epfl.cs107.play.math.Transform
All Implemented Interfaces:
Serializable

public final class Transform extends Object implements Serializable
Represents an immutable 2D affine transformation.
See Also:
  • Field Details

    • I

      public static final Transform I
      The identity transform
    • m00

      public final float m00
      X scale
    • m01

      public final float m01
      X shear
    • m02

      public final float m02
      X translation
    • m10

      public final float m10
      Y shear
    • m11

      public final float m11
      Y scale
    • m12

      public final float m12
      Y translation
  • Constructor Details

    • Transform

      public Transform(float m00, float m01, float m02, float m10, float m11, float m12)
      Creates a new transform.
      Parameters:
      m00 - (float): X scale
      m01 - (float): X shear
      m02 - (float): X translation
      m10 - (float): Y shear
      m11 - (float): Y scale
      m12 - (float): Y translate
  • Method Details

    • getX

      public Vector getX()
      Returns:
      (Vector): X-axis, not null
    • getY

      public Vector getY()
      Returns:
      (Vector): Y-axis, not null
    • getOrigin

      public Vector getOrigin()
      Returns:
      (Vector): translation vector, not null
    • getAngle

      public float getAngle()
      Returns:
      (float): angle, in radians
    • onPoint

      public Vector onPoint(float x, float y)
      Transforms point.
      Parameters:
      x - (float): abcissa
      y - (float): ordinate
      Returns:
      (Vector): transformed point, not null
    • onPoint

      public Vector onPoint(Vector p)
      Transforms point.
      Parameters:
      p - (Vector): point, not null
      Returns:
      (Vector): transformed point, not null
    • onVector

      public Vector onVector(float x, float y)
      Transforms vector.
      Parameters:
      x - (float): abcissa
      y - (float): ordinate
      Returns:
      (Vector): transformed vector, not null
    • onVector

      public Vector onVector(Vector v)
      Transforms vector.
      Parameters:
      v - (Vector): point, not null
      Returns:
      (Vector): transformed vector, not null
    • transformed

      public Transform transformed(Transform t)
      Appends another transform (applied after this transform).
      Parameters:
      t - (Transform): transform, not null
      Returns:
      (Transform): extended transform, not null
    • translated

      public Transform translated(float dx, float dy)
      Appends translation (applied after this transform).
      Parameters:
      dx - (float): X translation
      dy - (float): Y translation
      Returns:
      (Transform): extended transform, not null
    • translated

      public Transform translated(Vector d)
      Appends translation (applied after this transform).
      Parameters:
      d - (Vector): translation, not null
      Returns:
      (Transform): extended transform, not null
    • scaled

      public Transform scaled(float sx, float sy)
      Appends scale (applied after this transform).
      Parameters:
      sx - (float) X scale
      sy - (float) Y scale
      Returns:
      (Transform): extended transform, not null
    • scaled

      public Transform scaled(float s)
      Appends scale (applied after this transform).
      Parameters:
      s - (float): scale
      Returns:
      (Transform): extended transform, not null
    • rotated

      public Transform rotated(float a)
      Appends rotation around origin (applied after this transform).
      Parameters:
      a - (float): angle, in radians
      Returns:
      (Transform): extended transform, not null
    • rotated

      public Transform rotated(float a, Vector center)
      Appends rotation around specified point (applied after this transform).
      Parameters:
      a - (float): angle, in radians
      center - (Vector): rotation axis, not null
      Returns:
      (Transform): extended transform, not null
    • inverted

      public Transform inverted()
      Returns:
      (Transform): transform inverse, not null
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getAffineTransform

      public AffineTransform getAffineTransform()
      Returns:
      (AffineTransform): AWT affine transform equivalent, not null