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
Constructors
- EdgeEndBundle.withEdgeEnd(EdgeEnd e)
- EdgeEndBundle.withRule(BoundaryNodeRule? boundaryNodeRule, EdgeEnd e)
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