EdgeEndBundle class

A collection of {@link EdgeEnd}s which obey the following invariant: They originate at the same node and have the same direction.

@version 1.7

Inheritance

Properties

dx double
getter/setter pairinherited
dy double
getter/setter pairinherited
edge Edge
getter/setter pairinherited
edgeEnds List
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
label Label?
getter/setter pairinherited
node Node?
getter/setter pairinherited
p0 Coordinate?
getter/setter pairinherited
p1 Coordinate?
getter/setter pairinherited
quadrant int
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

compareDirection(EdgeEnd e) int
Implements the total order relation:
inherited
compareTo(dynamic obj) int
Compares this object to another object.
inherited
computeLabel(BoundaryNodeRule boundaryNodeRule) → void
This computes the overall edge label for the set of edges in this EdgeStubBundle. It essentially merges the ON and side labels for each edge. These labels must be compatible
override
computeLabelOn(int geomIndex, BoundaryNodeRule boundaryNodeRule) → void
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 (e.g. Polygon edge) OR in the interior (e.g. segment of a LineString) of their parent Geometry. In addition, GeometryCollections use a {@link 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:
computeLabelSide(int geomIndex, int side) → void
To compute the summary label for a side, the algorithm is: FOR all edges IF any edge's location is INTERIOR for the side, side location = INTERIOR ELSE IF there is at least one EXTERIOR attribute, side location = EXTERIOR ELSE side location = NULL
Note that it is possible for two sides to have apparently contradictory information i.e. one edge side may indicate that it is in the interior of a geometry, while another edge side may indicate the exterior of the same geometry. This is not an incompatibility - GeometryCollections may contain two Polygons that touch along an edge. This is the reason for Interior-primacy rule above - it results in the summary label having the Geometry interior on both sides.
computeLabelSides(int geomIndex) → void
Compute the labelling for each side
getCoordinate() Coordinate?
inherited
getDirectedCoordinate() Coordinate?
inherited
getDx() double
inherited
getDy() double
inherited
getEdge() Edge
inherited
getEdgeEnds() List
getLabel() Label?
override
getNode() Node?
inherited
getQuadrant() int
inherited
init(Coordinate p0, Coordinate p1) → void
inherited
insert(EdgeEnd e) → void
iterator() Iterator
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setNode(Node node) → void
inherited
toString() String
A string representation of this object.
inherited
updateIM(IntersectionMatrix im) → void
Update the IM with the contribution for the computed label for the EdgeStubs.

Operators

operator ==(Object other) bool
The equality operator.
inherited