GEOS 3.11.1
Public Member Functions | List of all members
geos::geomgraph::DirectedEdgeStar Class Reference

A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node. More...

#include <DirectedEdgeStar.h>

Inheritance diagram for geos::geomgraph::DirectedEdgeStar:
geos::geomgraph::EdgeEndStar

Public Member Functions

void insert (EdgeEnd *ee) override
 Insert a directed edge in the list. More...
 
LabelgetLabel ()
 
int getOutgoingDegree ()
 
int getOutgoingDegree (EdgeRing *er)
 
DirectedEdgegetRightmostEdge ()
 
void computeLabelling (std::vector< GeometryGraph * > *geom) override
 Compute the labelling for all dirEdges in this star, as well as the overall labelling. More...
 
void mergeSymLabels ()
 For each dirEdge in the star, merge the label from the sym dirEdge into the label.
 
void updateLabelling (const Label &nodeLabel)
 Update incomplete dirEdge labels from the labelling for the node.
 
void linkResultDirectedEdges ()
 Traverse the star of DirectedEdges, linking the included edges together. More...
 
void linkMinimalDirectedEdges (EdgeRing *er)
 
void linkAllDirectedEdges ()
 
void findCoveredLineEdges ()
 Traverse the star of edges, maintaing the current location in the result area at this node (if any). More...
 
void computeDepths (DirectedEdge *de)
 Compute the DirectedEdge depths for a subsequence of the edge array.
 
std::string print () const override
 
- Public Member Functions inherited from geos::geomgraph::EdgeEndStar
virtual void insert (EdgeEnd *e)=0
 Insert a EdgeEnd into this EdgeEndStar. More...
 
virtual geom::CoordinategetCoordinate ()
 
const geom::CoordinategetCoordinate () const
 
virtual std::size_t getDegree ()
 
virtual iterator begin ()
 
virtual iterator end ()
 
virtual reverse_iterator rbegin ()
 
virtual reverse_iterator rend ()
 
virtual const_iterator begin () const
 
virtual const_iterator end () const
 
virtual container & getEdges ()
 
virtual EdgeEndgetNextCW (EdgeEnd *ee)
 
virtual void computeLabelling (std::vector< GeometryGraph * > *geomGraph)
 
virtual bool isAreaLabelsConsistent (const GeometryGraph &geomGraph)
 
virtual void propagateSideLabels (uint32_t geomIndex)
 
virtual iterator find (EdgeEnd *eSearch)
 
virtual std::string print () const
 

Additional Inherited Members

- Public Types inherited from geos::geomgraph::EdgeEndStar
typedef std::set< EdgeEnd *, EdgeEndLT > container
 
typedef container::iterator iterator
 
typedef container::const_iterator const_iterator
 
typedef container::reverse_iterator reverse_iterator
 
- Protected Member Functions inherited from geos::geomgraph::EdgeEndStar
virtual void insertEdgeEnd (EdgeEnd *e)
 Insert an EdgeEnd into the map.
 
- Protected Attributes inherited from geos::geomgraph::EdgeEndStar
EdgeEndStar::container edgeMap
 A map which maintains the edges in sorted order around the node.
 

Detailed Description

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.

Member Function Documentation

◆ computeLabelling()

void geos::geomgraph::DirectedEdgeStar::computeLabelling ( std::vector< GeometryGraph * > *  geom)
overridevirtual

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

Reimplemented from geos::geomgraph::EdgeEndStar.

◆ findCoveredLineEdges()

void geos::geomgraph::DirectedEdgeStar::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.

◆ insert()

void geos::geomgraph::DirectedEdgeStar::insert ( EdgeEnd ee)
overridevirtual

Insert a directed edge in the list.

Implements geos::geomgraph::EdgeEndStar.

◆ linkResultDirectedEdges()

void geos::geomgraph::DirectedEdgeStar::linkResultDirectedEdges ( )

Traverse the star of DirectedEdges, linking the included edges together.

To link two dirEdges, the next 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

Referenced by geos::geomgraph::PlanarGraph::linkResultDirectedEdges().

◆ print()

std::string geos::geomgraph::DirectedEdgeStar::print ( ) const
overridevirtual

Reimplemented from geos::geomgraph::EdgeEndStar.


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