## org.opengis.referencing.operation
Interface MathTransform2D

All Superinterfaces:
  MathTransform

    @Extension
    public interface MathTransform2D

extends MathTransform

Transforms two-dimensional coordinate points. `CoordinateOperation.getMathTransform()` may returns instance of this interface when source and destination coordinate systems are both two dimensional. `MathTransform2D` extends `MathTransform` by adding some methods for easier interoperability with Java2D. If the transformation is affine, then `MathTransform` shall be an immutable instance of `AffineTransform`.

Since:
  GeoAPI 1.0

Method Summary
`Shape` `createTransformedShape(Shape shape)` Transform the specified shape.
`Matrix` `derivative(Point2D point)` Gets the derivative of this transform at a point.
`Point2D` `transform(Point2D ptSrc, Point2D ptDst)` Transforms the specified `ptSrc` and stores the result in `ptDst`.

Methods inherited from interface MathTransform
`derivative, getSourceDimensions, getTargetDimensions, inverse, isIdentity, toWKT, transform, transform, transform`

Method Detail

### transform

    Point2D transform(Point2D ptSrc,
                      Point2D ptDst)
                      throws TransformException

  Transforms the specified `ptSrc` and stores the result in `ptDst`. If `ptDst` is `null`, a new `Point2D` object is allocated and then the result of the transformation is stored in this object. In either case, `ptDst`, which contains the transformed point, is returned for convenience. If `ptSrc` and `ptDst` are the same object, the input point is correctly overwritten with the transformed point.

  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 stroring the result in `ptDst`.
  Throws:
    `TransformException` - if the point can't be transformed.

### createTransformedShape

    @Extension
    Shape createTransformedShape(Shape shape)
                                 throws TransformException

  Transform the specified shape. This method may replace straight lines by quadratic curves when applicable. It may also do the opposite (replace curves by straight lines). The returned shape doesn't need to have the same number of points than the original shape.

  Parameters:
    `shape` - Shape to transform.
  Returns:
    Transformed shape, or `shape` if this transform is the identity transform.
  Throws:
    `TransformException` - if a transform failed.

### derivative

    Matrix derivative(Point2D point)
                      throws TransformException

  Gets the derivative of this transform at a point. The derivative is the matrix of the non-translating portion of the approximate affine map at the point.

  Parameters:
    `point` - The coordinate point where to evaluate the derivative. Null value is accepted only if the derivative is the same everywhere. For example affine transform accept null value since they produces identical derivative no matter the coordinate value. But most map projection will requires a non-null value.
  Returns:
    The derivative at the specified point as a 2×2 matrix. This method never returns an internal object: changing the matrix will not change the state of this math transform.
  Throws:
    `NullPointerException` - if the derivative dependents on coordinate and `point` is `null`.
    `TransformException` - if the derivative can't be evaluated at the specified point.

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.