DirectedEdgeStar

class DirectedEdgeStar() extends EdgeEndStar

A DirectedEdgeStar is an ordered list of <b>outgoing</b> DirectedEdges around a node. It supports labelling the edges as well as linking the edges to form both MaximalEdgeRings and MinimalEdgeRings.

Version

1.7

class Object
trait Matchable
class Any

Value members

Concrete methods

def computeDepths(de: DirectedEdge): Unit
override def computeLabelling(geom: Array[GeometryGraph]): Unit

Compute the labelling for all dirEdges in this star, as well as the overall labelling

Compute the labelling for all dirEdges in this star, as well as the overall labelling

Definition Classes

Traverse the star of edges, maintaining 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.

Traverse the star of edges, maintaining 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.

override def insert(ee: EdgeEnd): Unit

Insert a directed edge in the list

Insert a directed edge in the list

Definition Classes

Traverse the star of DirectedEdges, linking the included edges together. To link two dirEdges, the <code>next</code> pointer for an incoming dirEdge is set to the next outgoing edge.

Traverse the star of DirectedEdges, linking the included edges together. To link two dirEdges, the <code>next</code> 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

def mergeSymLabels(): Unit

For each dirEdge in the star, merge the label from the sym dirEdge into the label

For each dirEdge in the star, merge the label from the sym dirEdge into the label

def updateLabelling(nodeLabel: Label): Unit

Update incomplete dirEdge labels from the labelling for the node

Update incomplete dirEdge labels from the labelling for the node

Inherited methods

def findIndex(eSearch: EdgeEnd): Int
Inherited from
EdgeEndStar

return the coordinate for the node this star is based at

return the coordinate for the node this star is based at

Inherited from
EdgeEndStar
def getDegree: Int
Inherited from
EdgeEndStar
def getEdges: List[EdgeEnd]
Inherited from
EdgeEndStar
Inherited from
EdgeEndStar
protected def insertEdgeEnd(e: EdgeEnd, obj: EdgeEnd): Unit

Insert an EdgeEnd into the map, and clear the edgeList cache, since the list of edges has now changed

Insert an EdgeEnd into the map, and clear the edgeList cache, since the list of edges has now changed

Inherited from
EdgeEndStar
def isAreaLabelsConsistent(geomGraph: GeometryGraph): Boolean
Inherited from
EdgeEndStar
def iterator: Iterator[EdgeEnd]

Iterator access to the ordered list of edges is optimized by copying the map collection to a list. (This assumes that once an iterator is requested, it is likely that insertion into the map is complete).

Iterator access to the ordered list of edges is optimized by copying the map collection to a list. (This assumes that once an iterator is requested, it is likely that insertion into the map is complete).

Inherited from
EdgeEndStar
override def toString: String
Definition Classes
Inherited from
EdgeEndStar

Inherited fields

protected var edgeList: List[EdgeEnd]

A list of all outgoing edges in the result, in CCW order

A list of all outgoing edges in the result, in CCW order

Inherited from
EdgeEndStar
protected var edgeMap: TreeMap[EdgeEnd, EdgeEnd]

A map which maintains the edges in sorted order around the node

A map which maintains the edges in sorted order around the node

Inherited from
EdgeEndStar