Interface BoundaryNodeRule

All Known Implementing Classes:
BoundaryNodeRule.EndPointBoundaryNodeRule, BoundaryNodeRule.Mod2BoundaryNodeRule, BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule, BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule

public interface BoundaryNodeRule
An interface for rules which determine whether node points which are in boundaries of Lineal geometry components are in the boundary of the parent geometry collection. The SFS specifies a single kind of boundary node rule, the BoundaryNodeRule.Mod2BoundaryNodeRule rule. However, other kinds of Boundary Node Rules are appropriate in specific situations (for instance, linear network topology usually follows the BoundaryNodeRule.EndPointBoundaryNodeRule.) Some JTS operations (such as RelateOp, BoundaryOp and IsSimpleOp) allow the BoundaryNodeRule to be specified, and respect the supplied rule when computing the results of the operation.

An example use case for a non-SFS-standard Boundary Node Rule is that of checking that a set of LineStrings have valid linear network topology, when turn-arounds are represented as closed rings. In this situation, the entry road to the turn-around is only valid when it touches the turn-around ring at the single (common) endpoint. This is equivalent to requiring the set of LineStrings to be simple under the BoundaryNodeRule.EndPointBoundaryNodeRule. The SFS-standard BoundaryNodeRule.Mod2BoundaryNodeRule is not sufficient to perform this test, since it states that closed rings have no boundary points.

This interface and its subclasses follow the Strategy design pattern.

Version:
1.7
See Also: