geos::operation::relate::EdgeEndBundle Class Reference

A collection of geomgraph::EdgeEnd objects which originate at the same point and have the same direction. More...

`#include <EdgeEndBundle.h>`

Inheritance diagram for geos::operation::relate::EdgeEndBundle:

## 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

## Detailed Description

A collection of geomgraph::EdgeEnd objects which originate at the same point and have the same direction.

## Member Function Documentation

## computeLabel()

void geos::operation::relate::EdgeEndBundle::computeLabel | ( | const algorithm::BoundaryNodeRule & | bnr | ) |

override virtual

Reimplemented from geos::geomgraph::EdgeEnd.

## computeLabelOn()

void geos::operation::relate::EdgeEndBundle::computeLabelOn | ( | uint8_t | geomIndex,
|  | const algorithm::BoundaryNodeRule & | boundaryNodeRule )

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:

- if there are an odd number of Bdy edges, the attribute is Bdy
- if there are an even number >= 2 of Bdy edges, the attribute is Int
- if there are any Int edges, the attribute is Int
- otherwise, the attribute is NULL.

## print()

std::string geos::operation::relate::EdgeEndBundle::print | ( |  | ) | const

override virtual

Reimplemented from geos::geomgraph::EdgeEnd.

The documentation for this class was generated from the following file:

- EdgeEndBundle.h