com.vividsolutions.jts.geomgraph

Class DirectedEdgeStar


public class DirectedEdgeStar
extends EdgeEndStar

A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node. It supports labelling the edges as well as linking the edges to form both MaximalEdgeRings and MinimalEdgeRings.
Version:
1.6

Field Summary

Fields inherited from class com.vividsolutions.jts.geomgraph.EdgeEndStar

edgeList, edgeMap

Constructor Summary

DirectedEdgeStar()

Method Summary

void
computeDepths(DirectedEdge de)
void
computeLabelling(GeometryGraph[] geom)
Compute the labelling for all dirEdges in this star, as well as the overall labelling
void
findCoveredLineEdges()
Traverse the star of edges, maintaing the current location in the result area at this node (if any).
Label
getLabel()
int
getOutgoingDegree()
int
getOutgoingDegree(EdgeRing er)
DirectedEdge
getRightmostEdge()
void
insert(EdgeEnd ee)
Insert a directed edge in the list
void
linkAllDirectedEdges()
void
linkMinimalDirectedEdges(EdgeRing er)
void
linkResultDirectedEdges()
Traverse the star of DirectedEdges, linking the included edges together.
void
mergeSymLabels()
For each dirEdge in the star, merge the label from the sym dirEdge into the label
void
print(PrintStream out)
void
updateLabelling(Label nodeLabel)
Update incomplete dirEdge labels from the labelling for the node

Methods inherited from class com.vividsolutions.jts.geomgraph.EdgeEndStar

computeLabelling, findIndex, getCoordinate, getDegree, getEdges, getNextCW, insert, insertEdgeEnd, isAreaLabelsConsistent, iterator, print

Constructor Details

DirectedEdgeStar

public DirectedEdgeStar()

Method Details

computeDepths

public void computeDepths(DirectedEdge de)

computeLabelling

public void computeLabelling(GeometryGraph[] geom)
Compute the labelling for all dirEdges in this star, as well as the overall labelling
Overrides:
computeLabelling in interface EdgeEndStar

findCoveredLineEdges

public void findCoveredLineEdges()
Traverse the star of edges, maintaing the current location in the result area at this node (if any). If any L edges are found in the interior of the result, mark them as covered.

getLabel

public Label getLabel()

getOutgoingDegree

public int getOutgoingDegree()

getOutgoingDegree

public int getOutgoingDegree(EdgeRing er)

getRightmostEdge

public DirectedEdge getRightmostEdge()

insert

public void insert(EdgeEnd ee)
Insert a directed edge in the list
Overrides:
insert in interface EdgeEndStar

linkAllDirectedEdges

public void linkAllDirectedEdges()

linkMinimalDirectedEdges

public void linkMinimalDirectedEdges(EdgeRing er)

linkResultDirectedEdges

public void linkResultDirectedEdges()
Traverse the star of DirectedEdges, linking the included edges together. To link two dirEdges, the pointer for an incoming dirEdge is set to the next outgoing edge.

DirEdges are only linked if:

  • they belong to an area (i.e. they have sides)
  • they are marked as being in the result

Edges are linked in CCW order (the order they are stored). This means that rings have their face on the Right (in other words, the topological location of the face is given by the RHS label of the DirectedEdge)

PRECONDITION: No pair of dirEdges are both marked as being in the result


mergeSymLabels

public void mergeSymLabels()
For each dirEdge in the star, merge the label from the sym dirEdge into the label

print

public void print(PrintStream out)
Overrides:
print in interface EdgeEndStar

updateLabelling

public void updateLabelling(Label nodeLabel)
Update incomplete dirEdge labels from the labelling for the node