Class AffineTransform2D

  • All Implemented Interfaces:
    Serializable, Cloneable, Matrix, Cloneable

    public class AffineTransform2D
    extends AffineTransform
    implements Matrix
    An affine matrix of fixed 3×3 size. Here, the term "affine" means a matrix with the last row fixed to [0,0,1] values. Such matrices are used for affine transformations in a 2D space.

    This class both extends the Java2D AffineTransform class and implements the Matrix interface. It allows interoperbility for code that need to pass the same matrix to both Java2D API and more generic API working with coordinates of arbitrary dimension.

    This class do not implements the XMatrix interface because the inherited invert() method (new in J2SE 1.6) declares a checked exception, setZero() would be an unsupported operation (because it is not possible to change the value at (2,2)), transpose() would fails in most cases, and isAffine() would be useless.

    Since:
    2.3
    Author:
    Martin Desruisseaux (IRD)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int SIZE
      The matrix size, which is 3.
      • Fields inherited from class AffineTransform

        TYPE_FLIP, TYPE_GENERAL_ROTATION, TYPE_GENERAL_SCALE, TYPE_GENERAL_TRANSFORM, TYPE_IDENTITY, TYPE_MASK_ROTATION, TYPE_MASK_SCALE, TYPE_QUADRANT_ROTATION, TYPE_TRANSLATION, TYPE_UNIFORM_SCALE
    • Constructor Summary

      Constructors 
      Constructor Description
      AffineTransform2D()
      Creates a new identity matrix.
      AffineTransform2D​(AffineTransform transform)
      Constructs a 3×3 matrix from the specified affine transform.
      AffineTransform2D​(Matrix matrix)
      Creates a new matrix initialized to the same value than the specified one.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      AffineTransform2D clone()
      Returns a clone of this affine transform.
      boolean equals​(Object obj)  
      double getElement​(int row, int column)
      Retrieves the value at the specified row and column of this matrix.
      int getNumCol()
      Returns the number of colmuns in this matrix, which is always 3 in this implementation.
      int getNumRow()
      Returns the number of rows in this matrix, which is always 3 in this implementation.
      void setElement​(int row, int column, double value)
      Modifies the value at the specified row and column of this matrix.
      String toString()
      Returns a string representation of this matrix.
      • Methods inherited from class AffineTransform

        concatenate, createInverse, createTransformedShape, deltaTransform, deltaTransform, getDeterminant, getMatrix, getQuadrantRotateInstance, getQuadrantRotateInstance, getRotateInstance, getRotateInstance, getRotateInstance, getRotateInstance, getScaleInstance, getScaleX, getScaleY, getShearInstance, getShearX, getShearY, getTranslateInstance, getTranslateX, getTranslateY, getType, hashCode, inverseTransform, inverseTransform, invert, isIdentity, preConcatenate, quadrantRotate, quadrantRotate, rotate, rotate, rotate, rotate, scale, setToIdentity, setToQuadrantRotation, setToQuadrantRotation, setToRotation, setToRotation, setToRotation, setToRotation, setToScale, setToShear, setToTranslation, setTransform, setTransform, shear, transform, transform, transform, transform, transform, transform, translate
      • Methods inherited from class Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • AffineTransform2D

        public AffineTransform2D()
        Creates a new identity matrix.
      • AffineTransform2D

        public AffineTransform2D​(AffineTransform transform)
        Constructs a 3×3 matrix from the specified affine transform.
      • AffineTransform2D

        public AffineTransform2D​(Matrix matrix)
        Creates a new matrix initialized to the same value than the specified one. The specified matrix size must be 3×3.
    • Method Detail

      • getNumRow

        public final int getNumRow()
        Returns the number of rows in this matrix, which is always 3 in this implementation.
        Specified by:
        getNumRow in interface Matrix
        Returns:
        The number of rows in this matrix.
      • getNumCol

        public final int getNumCol()
        Returns the number of colmuns in this matrix, which is always 3 in this implementation.
        Specified by:
        getNumCol in interface Matrix
        Returns:
        The number of columns in this matrix.
      • getElement

        public double getElement​(int row,
                                 int column)
        Retrieves the value at the specified row and column of this matrix.
        Specified by:
        getElement in interface Matrix
        Parameters:
        row - The row number to be retrieved (zero indexed).
        column - The column number to be retrieved (zero indexed).
        Returns:
        The value at the indexed element.
      • setElement

        public void setElement​(int row,
                               int column,
                               double value)
        Modifies the value at the specified row and column of this matrix.
        Specified by:
        setElement in interface Matrix
        Parameters:
        row - The row number to be retrieved (zero indexed).
        column - The column number to be retrieved (zero indexed).
        value - The new matrix element value.
      • toString

        public String toString()
        Returns a string representation of this matrix. The returned string is implementation dependent. It is usually provided for debugging purposes only.
        Overrides:
        toString in class AffineTransform
      • clone

        public AffineTransform2D clone()
        Returns a clone of this affine transform.
        Specified by:
        clone in interface Cloneable
        Specified by:
        clone in interface Matrix
        Overrides:
        clone in class AffineTransform
        Returns:
        A clone of this matrix.
        See Also:
        Object.clone()
      • equals

        public boolean equals​(Object obj)
        Overrides:
        equals in class AffineTransform