Class IdentityTransform

  • All Implemented Interfaces:
    Serializable, MathTransform, LinearTransform

    public class IdentityTransform
    extends AbstractMathTransform
    implements LinearTransform, Serializable
    The identity transform. The data are only copied without any transformation. This class is used for identity transform of dimension greater than 2. For 1D and 2D identity transforms, LinearTransform1D and AffineTransform already provide their own optimisations.
    Since:
    2.0
    Author:
    Martin Desruisseaux (IRD)
    See Also:
    Serialized Form
    • Constructor Detail

      • IdentityTransform

        protected IdentityTransform​(int dimension)
        Constructs an identity transform of the specified dimension.
    • Method Detail

      • create

        public static LinearTransform create​(int dimension)
        Constructs an identity transform of the specified dimension.
      • isIdentity

        public boolean isIdentity()
        Tests whether this transform does not move any points. This implementation always returns true.
        Specified by:
        isIdentity in interface MathTransform
        Overrides:
        isIdentity in class AbstractMathTransform
        Returns:
        true if this MathTransform is an identity transform; false otherwise.
      • isIdentity

        public boolean isIdentity​(double tolerance)
        Tests whether this transform does not move any points. This implementation always returns true.
        Specified by:
        isIdentity in interface LinearTransform
        Parameters:
        tolerance - The tolerance factor.
        Returns:
        true if this transform is the identity one
      • getMatrix

        public Matrix getMatrix()
        Returns a copy of the identity matrix.
        Specified by:
        getMatrix in interface LinearTransform
        Returns:
        A copy of the underlying matrix.
      • derivative

        public Matrix derivative​(Position point)
        Gets the derivative of this transform at a point. For an identity transform, the derivative is the same everywhere.
        Specified by:
        derivative in interface MathTransform
        Overrides:
        derivative in class AbstractMathTransform
        Parameters:
        point - The coordinate point where to evaluate the derivative.
        Returns:
        The derivative at the specified point (never null).
      • transform

        public Position transform​(Position ptSrc,
                                  Position ptDst)
        Copies the values from ptSrc to ptDst. Overrides the super-class method for performance reason.
        Specified by:
        transform in interface MathTransform
        Overrides:
        transform in class AbstractMathTransform
        Parameters:
        ptSrc - the specified coordinate point to be transformed.
        ptDst - the specified coordinate point that stores the result of transforming ptSrc, or null.
        Returns:
        the coordinate point after transforming ptSrc and storing the result in ptDst, or a newly created point if ptDst was null.
        Since:
        2.2
      • transform

        public void transform​(float[] srcPts,
                              int srcOff,
                              float[] dstPts,
                              int dstOff,
                              int numPts)
        Transforms an array of floating point coordinates by this transform.
        Specified by:
        transform in interface MathTransform
        Overrides:
        transform in class AbstractMathTransform
        Parameters:
        srcPts - the array containing the source point coordinates.
        srcOff - the offset to the first point to be transformed in the source array.
        dstPts - the array into which the transformed point coordinates are returned. May be the same than srcPts.
        dstOff - the offset to the location of the first transformed point that is stored in the destination array.
        numPts - the number of point objects to be transformed.
      • transform

        public void transform​(double[] srcPts,
                              int srcOff,
                              double[] dstPts,
                              int dstOff,
                              int numPts)
        Transforms an array of floating point coordinates by this transform.
        Specified by:
        transform in interface MathTransform
        Parameters:
        srcPts - the array containing the source point coordinates.
        srcOff - the offset to the first point to be transformed in the source array.
        dstPts - the array into which the transformed point coordinates are returned. May be the same than srcPts.
        dstOff - the offset to the location of the first transformed point that is stored in the destination array.
        numPts - the number of point objects to be transformed.
      • hashCode

        public int hashCode()
        Returns a hash value for this transform. This value need not remain consistent between different implementations of the same class.
        Overrides:
        hashCode in class AbstractMathTransform
      • equals

        public boolean equals​(Object object)
        Compares the specified object with this math transform for equality.
        Overrides:
        equals in class AbstractMathTransform
        Parameters:
        object - The object to compare with this transform.
        Returns:
        true if the given object is a transform of the same class and if, given identical source position, the transformed position would be the equals.