GEOS 3.13.1
geos::geomgraph::Edge Class Referencefinal

#include <Edge.h>

Inheritance diagram for geos::geomgraph::Edge:
geos::geomgraph::GraphComponent

Public Member Functions

void testInvariant () const
 Edge (geom::CoordinateSequence *newPts, const Label &newLabel)
 Takes ownership of CoordinateSequence.
 Edge (geom::CoordinateSequence *newPts)
 Takes ownership of CoordinateSequence.
size_t getNumPoints () const
const geom::CoordinateSequencegetCoordinates () const
const geom::CoordinategetCoordinate (std::size_t i) const
const geom::CoordinategetCoordinate () const
const DepthgetDepth () const
int getDepthDelta () const
 The depthDelta is the change in depth as an edge is crossed from R to L.
void setDepthDelta (int newDepthDelta)
size_t getMaximumSegmentIndex () const
EdgeIntersectionListgetEdgeIntersectionList ()
const EdgeIntersectionListgetEdgeIntersectionList () const
index::MonotoneChainEdgegetMonotoneChainEdge ()
 Return this Edge's index::MonotoneChainEdge, ownership is retained by this object.
bool isClosed () const
bool isCollapsed () const
 An Edge is collapsed if it is an Area edge and it consists of two segments which are equal and opposite (eg a zero-width V).
EdgegetCollapsedEdge ()
void setIsolated (bool newIsIsolated)
bool isIsolated () const override
void addIntersections (algorithm::LineIntersector *li, std::size_t segmentIndex, std::size_t geomIndex)
 Adds EdgeIntersections for one or both intersections found for a segment of an edge to the edge intersection list.
void addIntersection (algorithm::LineIntersector *li, std::size_t segmentIndex, std::size_t geomIndex, std::size_t intIndex)
 Add an EdgeIntersection for intersection intIndex.
void computeIM (geom::IntersectionMatrix &im) override
 Update the IM with the contribution for this component.
bool isPointwiseEqual (const Edge *e) const
 return true if the coordinate sequences of the Edges are identical
std::string print () const
std::string printReverse () const
bool equals (const Edge &e) const
bool equals (const Edge *e) const
const geom::EnvelopegetEnvelope ()
Public Member Functions inherited from geos::geomgraph::GraphComponent
 GraphComponent (const Label &newLabel)
LabelgetLabel ()
const LabelgetLabel () const
void setLabel (const Label &newLabel)
void setInResult (bool p_isInResult)
bool isInResult () const
void setCovered (bool isCovered)
bool isCovered () const
bool isCoveredSet () const
bool isVisited () const
void setVisited (bool p_isVisited)
void updateIM (geom::IntersectionMatrix &im)

Static Public Member Functions

static void updateIM (const Label &lbl, geom::IntersectionMatrix &im)

Public Attributes

std::unique_ptr< geom::CoordinateSequencepts
 Externally-set, owned by Edge. FIXME: refuse ownership.
EdgeIntersectionList eiList

Friends

std::ostream & operator<< (std::ostream &os, const Edge &el)

Additional Inherited Members

Protected Attributes inherited from geos::geomgraph::GraphComponent
Label label

Detailed Description

The edge component of a geometry graph

Member Function Documentation

◆ addIntersection()

void geos::geomgraph::Edge::addIntersection ( algorithm::LineIntersector * li,
std::size_t segmentIndex,
std::size_t geomIndex,
std::size_t intIndex )

Add an EdgeIntersection for intersection intIndex.

An intersection that falls exactly on a vertex of the edge is normalized to use the higher of the two possible segmentIndexes

◆ computeIM()

void geos::geomgraph::Edge::computeIM ( geom::IntersectionMatrix & im)
inlineoverridevirtual

Update the IM with the contribution for this component.

A component only contributes if it has a labelling for both parent geometries

Implements geos::geomgraph::GraphComponent.

◆ equals()

bool geos::geomgraph::Edge::equals ( const Edge & e) const

equals is defined to be:

e1 equals e2 iff the coordinates of e1 are the same or the reverse of the coordinates in e2

References Edge(), and equals().

Referenced by equals().

◆ getDepthDelta()

int geos::geomgraph::Edge::getDepthDelta ( ) const
inline

The depthDelta is the change in depth as an edge is crossed from R to L.

Returns
the change in depth as the edge is crossed from R to L

◆ isIsolated()

bool geos::geomgraph::Edge::isIsolated ( ) const
inlineoverridevirtual

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