|
GEOS
3.5.0
|
A collection of geomgraph::EdgeEnd objects which originate at the same point and have the same direction. More...
#include <EdgeEndBundle.h>
Public Member Functions | |
| EdgeEndBundle (geomgraph::EdgeEnd *e) | |
| std::vector< geomgraph::EdgeEnd * > * | getEdgeEnds () |
| void | insert (geomgraph::EdgeEnd *e) |
| void | computeLabel (const algorithm::BoundaryNodeRule &bnr) |
| void | updateIM (geom::IntersectionMatrix &im) |
| Update the IM with the contribution for the computed label for the EdgeStubs. | |
| std::string | print () |
Public Member Functions inherited from geos::geomgraph::EdgeEnd | |
| EdgeEnd (Edge *newEdge, const geom::Coordinate &newP0, const geom::Coordinate &newP1, const Label &newLabel) | |
| EdgeEnd (Edge *newEdge, const geom::Coordinate &newP0, const geom::Coordinate &newP1) | |
| Edge * | getEdge () |
| Label & | getLabel () |
| const Label & | getLabel () const |
| virtual geom::Coordinate & | getCoordinate () |
| virtual geom::Coordinate & | getDirectedCoordinate () |
| virtual int | getQuadrant () |
| virtual double | getDx () |
| virtual double | getDy () |
| virtual void | setNode (Node *newNode) |
| virtual Node * | getNode () |
| virtual int | compareTo (const EdgeEnd *e) const |
| virtual int | compareDirection (const EdgeEnd *e) const |
Protected Member Functions | |
| void | computeLabelOn (int geomIndex, const algorithm::BoundaryNodeRule &boundaryNodeRule) |
| void | computeLabelSides (int geomIndex) |
| void | computeLabelSide (int geomIndex, int side) |
Protected Member Functions inherited from geos::geomgraph::EdgeEnd | |
| EdgeEnd (Edge *newEdge) | |
| virtual void | init (const geom::Coordinate &newP0, const geom::Coordinate &newP1) |
Protected Attributes | |
| std::vector< geomgraph::EdgeEnd * > * | edgeEnds |
Protected Attributes inherited from geos::geomgraph::EdgeEnd | |
| Edge * | edge |
| Label | label |
A collection of geomgraph::EdgeEnd objects which originate at the same point and have the same direction.
|
protected |
Compute the overall ON location for the list of EdgeStubs.
(This is essentially equivalent to computing the self-overlay of a single Geometry)
edgeStubs can be either on the boundary (eg Polygon edge) OR in the interior (e.g. segment of a LineString) of their parent Geometry.
In addition, GeometryCollections use a algorithm::BoundaryNodeRule to determine whether a segment is on the boundary or not.
Finally, in GeometryCollections it can occur that an edge is both on the boundary and in the interior (e.g. a LineString segment lying on top of a Polygon edge.) In this case the Boundary is given precendence.
These observations result in the following rules for computing the ON location:
1.8.11