|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.geotools.referencing.operation.transform.DimensionFilter
public class DimensionFilter
An utility class for the separation of concatenation of
pass through transforms. Given an arbitrary
math transform, this utility class will returns a new math transform
that operates only of a given set of source dimensions. For example if the supplied
transform
has (x, y, z) inputs and
(longitude, latitude, height) outputs, then
the following code:
addSourceDimensionRange(0, 2); MathTransform mt = separate(transform);
will returns a transform with (x, y) inputs and (probably)
(longitude, latitude) outputs. The later can be verified with
a call to getTargetDimensions()
.
Field Summary | |
---|---|
static Hints.Key |
INSTANCE
Hint key for specifying a particular instance of DimensionFilter to use. |
Constructor Summary | |
---|---|
DimensionFilter()
Constructs a dimension filter with the default math transform factory. |
|
DimensionFilter(Hints hints)
Constructs a dimension filter with a math transform factory built using the provided hints. |
|
DimensionFilter(org.opengis.referencing.operation.MathTransformFactory factory)
Constructs a dimension filter with the specified factory. |
Method Summary | |
---|---|
void |
addSourceDimension(int dimension)
Add an input dimension to keep. |
void |
addSourceDimensionRange(int lower,
int upper)
Add a range of input dimensions to keep. |
void |
addSourceDimensions(int[] dimensions)
Add input dimensions to keep. |
void |
addTargetDimension(int dimension)
Add an output dimension to keep. |
void |
addTargetDimensionRange(int lower,
int upper)
Add a range of output dimensions to keep. |
void |
addTargetDimensions(int[] dimensions)
Add output dimensions to keep. |
void |
clear()
Clears any source and target dimension setting. |
static DimensionFilter |
getInstance(Hints hints)
Creates or returns an existing instance from the given set of hints. |
int[] |
getSourceDimensions()
Returns the input dimensions. |
int[] |
getTargetDimensions()
Returns the output dimensions. |
org.opengis.referencing.operation.MathTransform |
separate(org.opengis.referencing.operation.MathTransform transform)
Separates the specified math transform. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final Hints.Key INSTANCE
DimensionFilter
to use.
getInstance(org.geotools.factory.Hints)
Constructor Detail |
---|
public DimensionFilter()
public DimensionFilter(Hints hints)
hints
- Hints to control the creation of the MathTransformFactory
.public DimensionFilter(org.opengis.referencing.operation.MathTransformFactory factory)
factory
- The factory for the creation of new math transforms.Method Detail |
---|
public static DimensionFilter getInstance(Hints hints)
INSTANCE
key, this value is returned. Otherwise a new instance is
created with the given hints.
hints
- The hints, or null
if none.
DimensionFilter
instance (never null
).INSTANCE
public void clear()
public void addSourceDimension(int dimension) throws java.lang.IllegalArgumentException
dimension
applies to the
source dimensions of the transform to be given to
separate(transform)
.
The number must be in the range 0 inclusive to
transform.getSourceDimensions()
exclusive.
dimension
- The dimension to add.
java.lang.IllegalArgumentException
- if dimension
is negative.public void addSourceDimensions(int[] dimensions) throws java.lang.IllegalArgumentException
dimensions
apply to the
source dimensions of the transform to be given to
separate(transform)
.
All numbers must be in the range 0 inclusive to
transform.getSourceDimensions()
exclusive. The dimensions
values must be in strictly increasing order.
dimensions
- The new sequence of dimensions.
java.lang.IllegalArgumentException
- if dimensions
contains negative values or
is not a strictly increasing sequence.public void addSourceDimensionRange(int lower, int upper) throws java.lang.IllegalArgumentException
lower
and upper
values
apply to the source dimensions of the transform to be given to
separate(transform)
.
lower
- The lower dimension, inclusive. Must not be smaller than 0.upper
- The upper dimension, exclusive. Must not be greater than
transform.getSourceDimensions()
.
java.lang.IllegalArgumentException
public int[] getSourceDimensions() throws java.lang.IllegalStateException
java.lang.IllegalStateException
- if input dimensions have not been set.public void addTargetDimension(int dimension) throws java.lang.IllegalArgumentException
dimension
applies to the
target dimensions of the transform to be given to
separate(transform)
.
The number must be in the range 0 inclusive to
transform.getTargetDimensions()
exclusive.
dimension
- The dimension to add.
java.lang.IllegalArgumentException
- if dimension
is negative.public void addTargetDimensions(int[] dimensions) throws java.lang.IllegalArgumentException
dimensions
apply to the
target dimensions of the transform to be given to
separate(transform)
.
All numbers must be in the range 0 inclusive to
transform.getTargetDimensions()
exclusive. The dimensions
values must be in strictly increasing order.
dimensions
- The new sequence of dimensions.
java.lang.IllegalArgumentException
- if dimensions
contains negative values or
is not a strictly increasing sequence.public void addTargetDimensionRange(int lower, int upper) throws java.lang.IllegalArgumentException
lower
and upper
values
apply to the target dimensions of the transform to be given to
separate(transform)
.
lower
- The lower dimension, inclusive. Must not be smaller than 0.upper
- The upper dimension, exclusive. Must not be greater than
transform.getTargetDimensions()
.
java.lang.IllegalArgumentException
public int[] getTargetDimensions() throws java.lang.IllegalStateException
separate(transform)
has been invoked at least once, in which case the target dimensions are inferred
automatically from the source dimensions and the
transform
.
java.lang.IllegalStateException
- if this information is not available.public org.opengis.referencing.operation.MathTransform separate(org.opengis.referencing.operation.MathTransform transform) throws org.opengis.referencing.FactoryException
If source dimensions are unspecified, then the returned transform will expects all source dimensions as input but will produces only the specified target dimensions as output.
If target dimensions are unspecified, then the returned transform will expects only the specified source dimensions as input, and the target dimensions will be inferred automatically.
transform
- The transform to separate.
org.opengis.referencing.FactoryException
- if the transform can't be separated.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |