GEOS 3.3.8

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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)
geomgraph::Label * | getLabel ()
std::vector < geomgraph::EdgeEnd * > * | getEdgeEnds ()
void | insert (geomgraph::EdgeEnd *e)
void | computeLabel (const algorithm::BoundaryNodeRule &bnr)
void | updateIM (geom::IntersectionMatrix *im)
std::string | print ()
Public Member Functions inherited from geos::geomgraph::EdgeEnd
| EdgeEnd (Edge *newEdge, const geom::Coordinate &newP0, const geom::Coordinate &newP1, Label *newLabel=NULL)
Edge * | getEdge ()
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

## Detailed Description

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

## Member Function Documentation

void geos::operation::relate::EdgeEndBundle::computeLabelOn | ( | int | 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 precendence.

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.

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

- EdgeEndBundle.h