|
GEOS 3.15.0dev
|
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) | |
| const std::vector< geomgraph::EdgeEnd * > & | getEdgeEnds () |
| void | insert (geomgraph::EdgeEnd *e) |
| void | computeLabel (const algorithm::BoundaryNodeRule &bnr) override |
| void | updateIM (geom::IntersectionMatrix &im) |
| Update the IM with the contribution for the computed label for the EdgeStubs. | |
| std::string | print () const override |
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 |
| geom::Coordinate & | getCoordinate () |
| const geom::Coordinate & | getCoordinate () const |
| geom::Coordinate & | getDirectedCoordinate () |
| int | getQuadrant () |
| double | getDx () |
| double | getDy () |
| void | setNode (Node *newNode) |
| Node * | getNode () |
| int | compareTo (const EdgeEnd *e) const |
| int | compareDirection (const EdgeEnd *e) const |
Protected Member Functions | |
| void | computeLabelOn (uint8_t geomIndex, const algorithm::BoundaryNodeRule &boundaryNodeRule) |
| void | computeLabelSides (uint8_t geomIndex) |
| void | computeLabelSide (uint8_t geomIndex, uint32_t side) |
Protected Member Functions inherited from geos::geomgraph::EdgeEnd | |
| EdgeEnd (Edge *newEdge) | |
| 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.
|
overridevirtual |
Reimplemented from geos::geomgraph::EdgeEnd.
|
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 precedence.
These observations result in the following rules for computing the ON location:
|
overridevirtual |
Reimplemented from geos::geomgraph::EdgeEnd.