|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectFormattableObject
AbstractMathTransform
AbstractMathTransform2D
WarpTransform2D
@Immutable public class WarpTransform2D
Wraps an arbitrary Warp object as a two-dimensional transform.
Calls to transform methods are forwarded to
the warpPoint method, or something equivalent. This
implies that source coordinates may be rounded to nearest integers before the transformation
is applied.
This transform is typically used with grid coverage "Resample" operation for reprojecting an image. Source and destination coordinates are usually pixel coordinates in source and target image, which is why this transform may use integer arithmetic.
This math transform can be created alone (by invoking its public constructors directly), or it can
be created by a factory like LocalizationGrid.
For more information on image warp, see Geometric Image Manipulation in the Programming in Java Advanced Imaging guide.
LocalizationGrid.getPolynomialTransform(int),
Warp,
WarpOpImage,
WarpDescriptor,
Serialized Form
| coverage/geotk-coverage (download) | View source code for this class |
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class AbstractMathTransform2D |
|---|
AbstractMathTransform2D.Inverse, AbstractMathTransform2D.Parameters |
| Field Summary | |
|---|---|
static int |
MAX_DEGREE
The maximal polynomial degree allowed. |
| Fields inherited from class FormattableObject |
|---|
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE |
| Constructor Summary | |
|---|---|
|
WarpTransform2D(Point2D[] srcCoords,
Point2D[] dstCoords,
int degree)
Constructs a warp transform that approximatively maps the given source coordinates to the given destination coordinates. |
|
WarpTransform2D(Rectangle2D srcBounds,
float[] srcCoords,
int srcOffset,
Rectangle2D dstBounds,
float[] dstCoords,
int dstOffset,
int numCoords,
int degree)
Constructs a warp transform that approximatively maps the given source coordinates to the given destination coordinates. |
|
WarpTransform2D(Rectangle2D srcBounds,
Point2D[] srcCoords,
int srcOffset,
Rectangle2D dstBounds,
Point2D[] dstCoords,
int dstOffset,
int numCoords,
int degree)
Constructs a warp transform that approximatively maps the given source coordinates to the given destination coordinates. |
protected |
WarpTransform2D(Warp warp,
Warp inverse)
Constructs a transform using the specified warp object. |
| Method Summary | |
|---|---|
protected int |
computeHashCode()
Computes a hash value for this transform. |
static MathTransform2D |
create(Warp warp)
Returns a transform using the specified warp object. |
boolean |
equals(Object object,
ComparisonMode mode)
Compares this transform with the specified object for equality. |
ParameterDescriptorGroup |
getParameterDescriptors()
Returns the parameter descriptors for this math transform. |
ParameterValueGroup |
getParameterValues()
Returns the parameter values for this math transform. |
Warp |
getWarp()
Returns the Warp wrapped by this transform. |
MathTransform2D |
inverse()
Returns the inverse transform. |
boolean |
isIdentity()
Tests if this transform is the identity transform. |
Matrix |
transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
boolean derivate)
Transforms a single source coordinate (usually pixel indices) into destination coordinate (usually "real world" coordinates). |
void |
transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
Transforms source coordinates (usually pixel indices) into destination coordinates (usually "real world" coordinates). |
void |
transform(double[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
Transforms source coordinates (usually pixel indices) into destination coordinates (usually "real world" coordinates). |
void |
transform(float[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
Transforms source coordinates (usually pixel indices) into destination coordinates (usually "real world" coordinates). |
void |
transform(float[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
Transforms source coordinates (usually pixel indices) into destination coordinates (usually "real world" coordinates). |
Point2D |
transform(Point2D ptSrc,
Point2D ptDst)
Transforms source coordinates (usually pixel indices) into destination coordinates (usually "real world" coordinates). |
| Methods inherited from class AbstractMathTransform2D |
|---|
getSourceDimensions, getTargetDimensions, getUnmarshalledParameters |
| Methods inherited from class AbstractMathTransform |
|---|
createTransformedShape, derivative, derivative, ensureNonNull, equals, formatWKT, getName, hashCode, rollLongitude, transform |
| Methods inherited from class FormattableObject |
|---|
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT, toWKT |
| Methods inherited from class Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface MathTransform2D |
|---|
createTransformedShape, derivative |
| Methods inherited from interface MathTransform |
|---|
derivative, toWKT, transform |
| Field Detail |
|---|
public static final int MAX_DEGREE
| Constructor Detail |
|---|
public WarpTransform2D(Point2D[] srcCoords,
Point2D[] dstCoords,
int degree)
| Degree of Warp | Number of Points |
|---|---|
| 1 | 3 |
| 2 | 6 |
| 3 | 10 |
| 4 | 15 |
| 5 | 21 |
| 6 | 28 |
| 7 | 36 |
srcCoords - Source coordinates.dstCoords - Destination coordinates.degree - The desired degree of the warp polynomials.
public WarpTransform2D(Rectangle2D srcBounds,
Point2D[] srcCoords,
int srcOffset,
Rectangle2D dstBounds,
Point2D[] dstCoords,
int dstOffset,
int numCoords,
int degree)
srcBounds - Bounding box of source coordinates, or null if unknown.srcCoords - Source coordinates.srcOffset - The initial entry of srcCoords to be used.dstBounds - Bounding box of destination coordinates, or null if unknown.dstCoords - Destination coordinates.dstOffset - The initial entry of destCoords to be used.numCoords - The number of coordinates from srcCoords and destCoords to be used.degree - The desired degree of the warp polynomials.
public WarpTransform2D(Rectangle2D srcBounds,
float[] srcCoords,
int srcOffset,
Rectangle2D dstBounds,
float[] dstCoords,
int dstOffset,
int numCoords,
int degree)
srcBounds - Bounding box of source coordinates, or null if unknown.srcCoords - Source coordinates with x and y alternating.srcOffset - The initial entry of srcCoords to be used.dstBounds - Bounding box of destination coordinates, or null if unknown.dstCoords - Destination coordinates with x and y alternating.dstOffset - The initial entry of destCoords to be used.numCoords - The number of coordinates from srcCoords and destCoords to be used.degree - The desired degree of the warp polynomials.
protected WarpTransform2D(Warp warp,
Warp inverse)
warpPoint method or something equivalent.
warp - The image warp to wrap into a math transform.inverse - An image warp to uses for the inverse transform,
or null in none.create(javax.media.jai.Warp)| Method Detail |
|---|
public static MathTransform2D create(Warp warp)
warpPoint method or something equivalent.
warp - The image warp to wrap into a math transform.
public Warp getWarp()
Warp wrapped by this transform. Its Warp.warpPoint method transforms coordinates from source to target CRS. Note that JAI's
warp operation needs a warp object with the opposite semantic
(i.e. the image warp must transforms coordinates from target to source CRS). Consequently,
consider invoking inverse.getWarp() if the warp object is going
to be used in an image reprojection.
public ParameterDescriptorGroup getParameterDescriptors()
getParameterDescriptors in interface ParameterizedgetParameterDescriptors in class AbstractMathTransform2Dnull.OperationMethod.getParameters()public ParameterValueGroup getParameterValues()
getParameterValues in interface ParameterizedgetParameterValues in class AbstractMathTransformnull.
Since this method returns a copy of the parameter values, any change to
a value will have no effect on this math transform.SingleOperation.getParameterValues()public boolean isIdentity()
isIdentity in interface MathTransformisIdentity in class AbstractMathTransform
public Point2D transform(Point2D ptSrc,
Point2D ptDst)
transform in interface MathTransform2Dtransform in class AbstractMathTransform2DptSrc - the specified coordinate point to be transformed.ptDst - the specified coordinate point that stores the result of transforming
ptSrc, or null.
ptSrc and storing the result in
ptDst.MathTransform2D.transform(Point2D,Point2D)
public Matrix transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
boolean derivate)
throws TransformException
transform in class AbstractMathTransformsrcPts - The array containing the source coordinate (can not be null).srcOff - The offset to the point to be transformed in the source array.dstPts - the array into which the transformed coordinate is returned.
May be the same than srcPts. May be null if
only the derivative matrix is desired.dstOff - The offset to the location of the transformed point that is
stored in the destination array.derivate - true for computing the derivative, or false if not needed.
null
if the derivate argument is false.
TransformException - If the point can't be transformed or if a problem occurred while
calculating the derivative.AbstractMathTransform.derivative(DirectPosition),
AbstractMathTransform.transform(DirectPosition, DirectPosition),
MathTransforms.derivativeAndTransform(MathTransform, double[], int, double[], int)
public void transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.
public void transform(float[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.
public void transform(double[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.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.
public void transform(float[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
transform in interface MathTransformtransform in class AbstractMathTransformsrcPts - 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.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.
public MathTransform2D inverse()
throws NoninvertibleTransformException
inverse in interface MathTransforminverse in interface MathTransform2Dinverse in class AbstractMathTransform2DNoninvertibleTransformException - if no inverse warp were specified at construction time.protected int computeHashCode()
AbstractMathTransform.hashCode()
when first needed.
computeHashCode in class AbstractMathTransform
public boolean equals(Object object,
ComparisonMode mode)
equals in interface LenientComparableequals in class AbstractMathTransformobject - The object to compare with this transform.mode - The strictness level of the comparison. Default to STRICT.
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.Utilities.deepEquals(Object, Object, ComparisonMode)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||