GEOS 3.14.0dev
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
geos::geomgraph::DirectedEdge Class Referencefinal

A directed EdgeEnd. More...

#include <DirectedEdge.h>

Inheritance diagram for geos::geomgraph::DirectedEdge:
geos::geomgraph::EdgeEnd

Public Member Functions

 DirectedEdge (Edge *newEdge, bool newIsForward)
 
void setInResult (bool v)
 
bool isInResult () const
 
bool isVisited () const
 
void setVisited (bool v)
 
void setEdgeRing (EdgeRing *er)
 
EdgeRinggetEdgeRing () const
 
void setMinEdgeRing (EdgeRing *mer)
 
EdgeRinggetMinEdgeRing () const
 
int getDepth (int position) const
 
void setDepth (int position, int newDepth)
 
int getDepthDelta () const
 
void setVisitedEdge (bool newIsVisited)
 
DirectedEdgegetSym () const
 Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite directions.
 
bool isForward () const
 
void setSym (DirectedEdge *de)
 
DirectedEdgegetNext () const
 
void setNext (DirectedEdge *newNext)
 
DirectedEdgegetNextMin () const
 
void setNextMin (DirectedEdge *nm)
 
bool isLineEdge ()
 Tells whether this edge is a Line.
 
bool isInteriorAreaEdge ()
 Tells whether this edge is an Area.
 
void setEdgeDepths (int position, int newDepth)
 Set both edge depths.
 
std::string print () const override
 
std::string printEdge ()
 
- Public Member Functions inherited from geos::geomgraph::EdgeEnd
 EdgeEnd (Edge *newEdge, const geom::Coordinate &newP0, const geom::Coordinate &newP1, const Label &newLabel)
 
 EdgeEnd (Edge *newEdge, const geom::Coordinate &newP0, const geom::Coordinate &newP1)
 
EdgegetEdge ()
 
LabelgetLabel ()
 
const LabelgetLabel () const
 
geom::CoordinategetCoordinate ()
 
const geom::CoordinategetCoordinate () const
 
geom::CoordinategetDirectedCoordinate ()
 
int getQuadrant ()
 
double getDx ()
 
double getDy ()
 
void setNode (Node *newNode)
 
NodegetNode ()
 
int compareTo (const EdgeEnd *e) const
 
int compareDirection (const EdgeEnd *e) const
 
virtual void computeLabel (const algorithm::BoundaryNodeRule &bnr)
 

Static Public Member Functions

static int depthFactor (geom::Location currLocation, geom::Location nextLocation)
 Computes the factor for the change in depth when moving from one location to another. E.g. if crossing from the INTERIOR to the EXTERIOR the depth decreases, so the factor is -1.
 

Protected Attributes

bool isForwardVar
 
- Protected Attributes inherited from geos::geomgraph::EdgeEnd
Edgeedge
 
Label label
 

Additional Inherited Members

- Protected Member Functions inherited from geos::geomgraph::EdgeEnd
 EdgeEnd (Edge *newEdge)
 
void init (const geom::Coordinate &newP0, const geom::Coordinate &newP1)
 

Detailed Description

A directed EdgeEnd.

Member Function Documentation

◆ getSym()

DirectedEdge * geos::geomgraph::DirectedEdge::getSym ( ) const
inline

Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite directions.

Returns
the DirectedEdge for the same Edge but in the opposite direction

◆ isInteriorAreaEdge()

bool geos::geomgraph::DirectedEdge::isInteriorAreaEdge ( )

Tells whether this edge is an Area.

This is an interior Area edge if

  • its label is an Area label for both Geometries
  • and for each Geometry both sides are in the interior.
Returns
true if this is an interior Area edge

◆ isLineEdge()

bool geos::geomgraph::DirectedEdge::isLineEdge ( )

Tells whether this edge is a Line.

This edge is a line edge if

  • at least one of the labels is a line label
  • any labels which are not line labels have all Locations = EXTERIOR

◆ print()

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

Reimplemented from geos::geomgraph::EdgeEnd.

◆ setEdgeDepths()

void geos::geomgraph::DirectedEdge::setEdgeDepths ( int  position,
int  newDepth 
)

Set both edge depths.

One depth for a given side is provided. The other is computed depending on the Location transition and the depthDelta of the edge.

◆ setVisitedEdge()

void geos::geomgraph::DirectedEdge::setVisitedEdge ( bool  newIsVisited)

Marks both DirectedEdges attached to a given Edge.

This is used for edges corresponding to lines, which will only appear oriented in a single direction in the result.


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