public interface TopologyPredicate
RelateNG.| Modifier and Type | Method and Description |
|---|---|
void |
finish()
Indicates that the value of the predicate can be finalized
based on its current state.
|
default void |
init(Envelope envA,
Envelope envB)
Initializes the predicate for a specific geometric case.
|
default void |
init(int dimA,
int dimB)
Initializes the predicate for a specific geometric case.
|
boolean |
isKnown()
Tests if the predicate value is known.
|
String |
name()
Gets the name of the predicate.
|
default boolean |
requireCovers(boolean isSourceA)
Reports whether this predicate requires that the source
cover the target.
|
default boolean |
requireExteriorCheck(boolean isSourceA)
Reports whether this predicate requires checking if the source input intersects
the Exterior of the target input.
|
default boolean |
requireInteraction()
Reports whether this predicate requires interaction between
the input geometries.
|
default boolean |
requireSelfNoding()
Reports whether this predicate requires self-noding for
geometries which contain crossing edges
(for example,
LineStrings, or s
containing lines or polygons which may self-intersect). |
void |
updateDimension(int locA,
int locB,
int dimension)
Updates the entry in the DE-9IM intersection matrix
for given
Locations in the input geometries. |
boolean |
value()
Gets the current value of the predicate result.
|
String name()
default boolean requireSelfNoding()
LineStrings, or s
containing lines or polygons which may self-intersect).
Self-noding ensures that intersections are computed consistently
in cases which contain self-crossings and mutual crossings.
Most predicates require this, but it can
be avoided for simple intersection detection
(such as in RelatePredicate.intersects()
and RelatePredicate.disjoint().
Avoiding self-noding improves performance for polygonal inputs.
default boolean requireInteraction()
IM[I, I] >= 0 or IM[I, B] >= 0 or IM[B, I] >= 0 or IM[B, B] >= 0This allows a fast result if the envelopes of the geometries are disjoint.
default boolean requireCovers(boolean isSourceA)
IM[Ext(Src), Int(Tgt)] = F and IM[Ext(Src), Bdy(Tgt)] = FIf true, this allows a fast result if the source envelope does not cover the target envelope.
isSourceA - indicates the source input geometrydefault boolean requireExteriorCheck(boolean isSourceA)
IM[Int(Src), Ext(Tgt)] >= 0 or IM[Bdy(Src), Ext(Tgt)] >= 0If false, this may permit a faster result in some geometric situations.
isSourceA - indicates the source input geometrydefault void init(int dimA,
int dimB)
dimA - the dimension of geometry AdimB - the dimension of geometry BDimensiondefault void init(Envelope envA, Envelope envB)
envA - the envelope of geometry AenvB - the envelope of geometry Bvoid updateDimension(int locA,
int locB,
int dimension)
Locations in the input geometries.
If this method is called with a Dimension value
which is less than the current value for the matrix entry,
the implementing class should avoid changing the entry
if this would cause information loss.
locA - the location on the A axis of the matrixlocB - the location on the B axis of the matrixdimension - the dimension value for the entryDimension,
Locationvoid finish()
boolean isKnown()
boolean value()
isKnown() is true.Copyright © 2024. All rights reserved.