Class AbstractMathTransform2D
Object
FormattableObject
AbstractMathTransform
AbstractMathTransform2D
- All Implemented Interfaces:
- Parameterized,- LenientComparable,- MathTransform,- MathTransform2D
- Direct Known Subclasses:
- NormalizedProjection,- PoleRotation,- ZonedGridSystem
public abstract class AbstractMathTransform2D
extends AbstractMathTransform
implements MathTransform2D
Base class for math transforms that are known to be two-dimensional in all cases.
 Two-dimensional math transforms are not required to extend this class,
 however doing so may simplify their implementation.
 
The simplest way to implement this abstract class is to provide an implementation for the following methods only:
However, more performance may be gained by overriding the othertransform methods as well.
 Immutability and thread safety
All Apache SIS implementations ofMathTransform2D are immutable and thread-safe.
 It is highly recommended that third-party implementations be immutable and thread-safe too.
 This means that unless otherwise noted in the javadoc, MathTransform2D instances can
 be shared by many objects and passed between threads without synchronization.
 Serialization
MathTransform2D may or may not be serializable, at implementation choices.
 Most Apache SIS implementations are serializable, but the serialized objects are not guaranteed to be compatible
 with future SIS versions. Serialization should be used only for short term storage or RMI between applications
 running the same SIS version.- Since:
- 0.5
Defined in the sis-referencing module
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static classBase class for implementation of inverse math transforms.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected static final intNumber of input and output dimensions of allAbstractMathTransform2D, which is 2.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptioncreateTransformedShape(Shape shape) Transforms the specified shape.derivative(Point2D point) Gets the derivative of this transform at a point.final intReturns the dimension of input points, which is always 2.final intReturns the dimension of output points, which is always 2.inverse()Returns the inverse transform of this object.Transforms the specifiedptSrcand stores the result inptDst.Methods inherited from class AbstractMathTransformcomputeHashCode, derivative, equals, equals, formatTo, getContextualParameters, getDomain, getParameterDescriptors, getParameterValues, hashCode, isIdentity, transform, transform, transform, transform, transform, transform, tryConcatenateMethods inherited from class FormattableObjectprint, toString, toString, toWKTMethods inherited from class Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface MathTransformderivative, isIdentity, toWKT, transform, transform, transform, transform, transform
- 
Field Details- 
DIMENSIONprotected static final int DIMENSIONNumber of input and output dimensions of allAbstractMathTransform2D, which is 2. We define this constant for clarity only; its value shall not be modified.Purpose: this is used for making clearer in the code when the literal 2 stands for the number of dimensions. It reduces confusion in contexts where the literal 2 also appear for other meanings than the number of dimensions.- Since:
- 1.2
- See Also:
 
 
- 
- 
Constructor Details- 
AbstractMathTransform2Dprotected AbstractMathTransform2D()Constructor for subclasses.
 
- 
- 
Method Details- 
getSourceDimensionspublic final int getSourceDimensions()Returns the dimension of input points, which is always 2.- Specified by:
- getSourceDimensionsin interface- MathTransform
- Specified by:
- getSourceDimensionsin class- AbstractMathTransform
- Returns:
- the number of dimensions of input points.
- See Also:
 
- 
getTargetDimensionspublic final int getTargetDimensions()Returns the dimension of output points, which is always 2.- Specified by:
- getTargetDimensionsin interface- MathTransform
- Specified by:
- getTargetDimensionsin class- AbstractMathTransform
- Returns:
- the number of dimensions of output points.
- See Also:
 
- 
transformTransforms the specifiedptSrcand stores the result inptDst. The default implementation invokesAbstractMathTransform.transform(double[], int, double[], int, boolean)using a temporary array of doubles.- Specified by:
- transformin interface- MathTransform2D
- Parameters:
- ptSrc- the coordinate tuple to be transformed.
- ptDst- the coordinate tuple that stores the result of transforming- ptSrc, or- nullif a new point shall be created.
- Returns:
- the coordinate tuple after transforming ptSrcand storing the result inptDst, or in a new point ifptDstwas null.
- Throws:
- TransformException- if the point cannot be transformed.
- See Also:
 
- 
createTransformedShapeTransforms the specified shape. The default implementation computes quadratic curves using three points for each line segment in the shape. The returned object is often aPath2D, but may also be aLine2Dor aQuadCurve2Dif such simplification is possible.- Specified by:
- createTransformedShapein interface- MathTransform2D
- Parameters:
- shape- shape to transform.
- Returns:
- transformed shape, or shapeif this transform is the identity transform.
- Throws:
- TransformException- if a transform failed.
 
- 
derivativeGets the derivative of this transform at a point. The default implementation performs the following steps:- Copy the coordinates in a temporary array and pass that array to the
       AbstractMathTransform.transform(double[], int, double[], int, boolean)method, with thederivateboolean argument set totrue.
- If the latter method returned a non-null matrix, returns that matrix.
       Otherwise throws TransformException.
 - Specified by:
- derivativein interface- MathTransform2D
- Parameters:
- point- the coordinate tuple where to evaluate the derivative.
- Returns:
- the derivative at the specified point as a 2×2 matrix.
- Throws:
- TransformException- if the derivative cannot be evaluated at the specified point.
 
- Copy the coordinates in a temporary array and pass that array to the
       
- 
inverseReturns the inverse transform of this object. The default implementation returnsthisif this transform is an identity transform, or throws an exception otherwise. Subclasses should override this method.- Specified by:
- inversein interface- MathTransform
- Specified by:
- inversein interface- MathTransform2D
- Overrides:
- inversein class- AbstractMathTransform
- Throws:
- NoninvertibleTransformException
 
 
-