GEOS
3.9.0dev

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. More...
#include <BoundaryNodeRule.h>
Public Member Functions  
virtual bool  isInBoundary (int boundaryCount) const =0 
Tests whether a point that lies in boundaryCount geometry component boundaries is considered to form part of the boundary of the parent geometry. More...  
Static Public Member Functions  
static const BoundaryNodeRule &  getBoundaryRuleMod2 () 
The Mod2 Boundary Node Rule (which is the rule specified in the OGC SFS). More...  
static const BoundaryNodeRule &  getBoundaryEndPoint () 
The Endpoint Boundary Node Rule. More...  
static const BoundaryNodeRule &  getBoundaryMultivalentEndPoint () 
The MultiValent Endpoint Boundary Node Rule. More...  
static const BoundaryNodeRule &  getBoundaryMonovalentEndPoint () 
The Monovalent Endpoint Boundary Node Rule. More...  
static const BoundaryNodeRule &  getBoundaryOGCSFS () 
The Boundary Node Rule specified by the OGC Simple Features Specification, which is the same as the Mod2 rule. More...  
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 Mod2BoundaryNodeRule
rule. However, other kinds of Boundary Node Rules are appropriate in specific situations (for instance, linear network topology usually follows the EndPointBoundaryNodeRule
.) Some JTS operations allow the BoundaryNodeRule to be specified, and respect this rule when computing the results of the operation.

static 
The Endpoint Boundary Node Rule.
A BoundaryNodeRule which specifies that any points which are endpoints of lineal components are in the boundary of the parent geometry. This corresponds to the "intuitive" topological definition of boundary. Under this rule LinearRings have a nonempty boundary (the common endpoint of the underlying LineString).
This rule is useful when dealing with linear networks. For example, it can be used to check whether linear networks are correctly noded. The usual network topology constraint is that linear segments may touch only at endpoints. In the case of a segment touching a closed segment (ring) at one point, the Mod2 rule cannot distinguish between the permitted case of touching at the node point and the invalid case of touching at some other interior (nonnode) point. The EndPoint rule does distinguish between these cases, so is more appropriate for use.

static 
The Monovalent Endpoint Boundary Node Rule.
A BoundaryNodeRule which determines that only endpoints with valency of exactly 1 are on the boundary. This corresponds to the boundary of a MultiLineString being all the "unattached" endpoints.

static 
The MultiValent Endpoint Boundary Node Rule.
A BoundaryNodeRule which determines that only endpoints with valency greater than 1 are on the boundary. This corresponds to the boundary of a MultiLineString being all the "attached" endpoints, but not the "unattached" ones.

static 
The Boundary Node Rule specified by the OGC Simple Features Specification, which is the same as the Mod2 rule.
A BoundaryNodeRule which determines that only endpoints with valency greater than 1 are on the boundary. This corresponds to the boundary of a MultiLineString being all the "attached" endpoints, but not the "unattached" ones.

static 
The Mod2 Boundary Node Rule (which is the rule specified in the OGC SFS).
A BoundaryNodeRule specifies that points are in the boundary of a lineal geometry iff the point lies on the boundary of an odd number of components. Under this rule LinearRings and closed LineStrings have an empty boundary.
This is the rule specified by the OGC SFS, and is the default rule used in JTS.

pure virtual 
Tests whether a point that lies in boundaryCount
geometry component boundaries is considered to form part of the boundary of the parent geometry.
boundaryCount  the number of component boundaries that this point occurs in 
true
if points in this number of boundaries lie in the parent boundary