Package org.locationtech.jts.geom
Interface CoordinateSequenceFilter
-
- All Known Implementing Classes:
AffineTransformation
,BufferCurveMaximumDistanceFinder.MaxMidpointDistanceFilter
,CoordinatePrecisionReducerFilter
,DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter
public interface CoordinateSequenceFilter
An interface for classes which process the coordinates in aCoordinateSequence
. A filter can either record information about each coordinate, or change the value of the coordinate. Filters can be used to implement operations such as coordinate transformations, centroid and envelope computation, and many other functions.Geometry
classes support the concept of applying aCoordinateSequenceFilter
to eachCoordinateSequence
s they contain.For maximum efficiency, the execution of filters can be short-circuited by using the
isDone()
method.CoordinateSequenceFilter
is an example of the Gang-of-Four Visitor pattern.Note: In general, it is preferable to treat Geometrys as immutable. Mutation should be performed by creating a new Geometry object (see
GeometryEditor
andGeometryTransformer
for convenient ways to do this). An exception to this rule is when a new Geometry has been created viaGeometry.copy()
. In this case mutating the Geometry will not cause aliasing issues, and a filter is a convenient way to implement coordinate transformation.- Version:
- 1.7
- Author:
- Martin Davis
- See Also:
Geometry.apply(CoordinateFilter)
,GeometryTransformer
,GeometryEditor
,Geometry.apply(CoordinateSequenceFilter)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
filter(CoordinateSequence seq, int i)
Performs an operation on a coordinate in aCoordinateSequence
.boolean
isDone()
Reports whether the application of this filter can be terminated.boolean
isGeometryChanged()
Reports whether the execution of this filter has modified the coordinates of the geometry.
-
-
-
Method Detail
-
filter
void filter(CoordinateSequence seq, int i)
Performs an operation on a coordinate in aCoordinateSequence
.- Parameters:
seq
- theCoordinateSequence
to which the filter is appliedi
- the index of the coordinate to apply the filter to
-
isDone
boolean isDone()
Reports whether the application of this filter can be terminated. Once this method returns true, it must continue to return true on every subsequent call.- Returns:
- true if the application of this filter can be terminated.
-
isGeometryChanged
boolean isGeometryChanged()
Reports whether the execution of this filter has modified the coordinates of the geometry. If so,Geometry.geometryChanged()
will be executed after this filter has finished being executed.Most filters can simply return a constant value reflecting whether they are able to change the coordinates.
- Returns:
- true if this filter has changed the coordinates of the geometry
-
-