GEOS  3.9.1dev
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
geos::operation::overlayng::OverlayEdge Class Reference

#include <OverlayEdge.h>

Inheritance diagram for geos::operation::overlayng::OverlayEdge:
[legend]
Collaboration diagram for geos::operation::overlayng::OverlayEdge:
[legend]

Public Member Functions

 OverlayEdge (const Coordinate &p_orig, const Coordinate &p_dirPt, bool p_direction, OverlayLabel *p_label, const CoordinateSequence *p_pts)
 
bool isForward () const
 
const CoordinatedirectionPt () const override
 
 ~OverlayEdge () override
 
OverlayLabelgetLabel () const
 
Location getLocation (int index, int position) const
 
const CoordinategetCoordinate () const
 
const CoordinateSequencegetCoordinatesRO () const
 
std::unique_ptr< CoordinateSequencegetCoordinates ()
 
std::unique_ptr< CoordinateSequencegetCoordinatesOriented ()
 
void addCoordinates (CoordinateArraySequence *coords)
 
OverlayEdgesymOE () const
 
OverlayEdgeoNextOE () const
 
bool isInResultArea () const
 
bool isInResultAreaBoth () const
 
void unmarkFromResultAreaBoth ()
 
void markInResultArea ()
 
void markInResultAreaBoth ()
 
bool isInResultLine () const
 
void markInResultLine ()
 
bool isInResult () const
 
bool isInResultEither () const
 
void setNextResult (OverlayEdge *e)
 
OverlayEdgenextResult () const
 
bool isResultLinked () const
 
void setNextResultMax (OverlayEdge *e)
 
OverlayEdgenextResultMax () const
 
bool isResultMaxLinked () const
 
bool isVisited () const
 
void markVisitedBoth ()
 
const OverlayEdgeRinggetEdgeRing () const
 
void setEdgeRing (const OverlayEdgeRing *p_edgeRing)
 
const MaximalEdgeRinggetEdgeRingMax () const
 
void setEdgeRingMax (const MaximalEdgeRing *maximalEdgeRing)
 
std::string resultSymbol () const
 
- Public Member Functions inherited from geos::edgegraph::HalfEdge
 HalfEdge (const geom::Coordinate &p_orig)
 
virtual ~HalfEdge ()
 
void link (HalfEdge *p_sym)
 
const geom::Coordinateorig () const
 
const geom::Coordinatedest () const
 
double directionX () const
 
double directionY () const
 
HalfEdgesym () const
 
HalfEdgenext () const
 
HalfEdgeprev () const
 
HalfEdgeoNext () const
 
void setNext (HalfEdge *e)
 
HalfEdgefind (const geom::Coordinate &dest)
 
bool equals (const geom::Coordinate &p0, const geom::Coordinate &p1) const
 
void insert (HalfEdge *eAdd)
 
bool isEdgesSorted () const
 
int compareAngularDirection (const HalfEdge *e) const
 
int compareTo (const HalfEdge *e) const
 
int degree ()
 
HalfEdgeprevNode ()
 

Private Member Functions

void markVisited ()
 

Private Attributes

const CoordinateSequencepts
 
bool direction
 
Coordinate dirPt
 
OverlayLabellabel
 
bool m_isInResultArea
 
bool m_isInResultLine
 
bool m_isVisited
 
OverlayEdgenextResultEdge
 
const OverlayEdgeRingedgeRing
 
const MaximalEdgeRingmaxEdgeRing
 
OverlayEdgenextResultMaxEdge
 

Friends

std::ostream & operator<< (std::ostream &os, const OverlayEdge &oe)
 

Additional Inherited Members

- Static Public Member Functions inherited from geos::edgegraph::HalfEdge
static HalfEdgecreate (const geom::Coordinate &p0, const geom::Coordinate &p1)
 
static void toStringNode (const HalfEdge *he, std::ostream &os)
 

Detailed Description

Creates a single OverlayEdge.

Definition at line 49 of file OverlayEdge.h.

Constructor & Destructor Documentation

geos::operation::overlayng::OverlayEdge::OverlayEdge ( const Coordinate p_orig,
const Coordinate p_dirPt,
bool  p_direction,
OverlayLabel p_label,
const CoordinateSequence p_pts 
)
inline

Definition at line 77 of file OverlayEdge.h.

geos::operation::overlayng::OverlayEdge::~OverlayEdge ( )
inlineoverride

Definition at line 97 of file OverlayEdge.h.

References geos::geom::operator<<().

Here is the call graph for this function:

Member Function Documentation

void geos::operation::overlayng::OverlayEdge::addCoordinates ( CoordinateArraySequence coords)

Adds the coordinates of this edge to the given list, in the direction of the edge. Duplicate coordinates are removed (which means that this is safe to use for a path of connected edges in the topology graph).

Parameters
coordsthe coordinate list to add to
const Coordinate& geos::operation::overlayng::OverlayEdge::directionPt ( ) const
overridevirtual

Gets the direction point of this edge. In the base case this is the dest coordinate of the edge. Subclasses may override to allow a HalfEdge to represent an edge with more than two coordinates.

Returns
the direction point for the edge

Reimplemented from geos::edgegraph::HalfEdge.

const Coordinate& geos::operation::overlayng::OverlayEdge::getCoordinate ( ) const
std::unique_ptr<CoordinateSequence> geos::operation::overlayng::OverlayEdge::getCoordinates ( )
std::unique_ptr<CoordinateSequence> geos::operation::overlayng::OverlayEdge::getCoordinatesOriented ( )
const CoordinateSequence* geos::operation::overlayng::OverlayEdge::getCoordinatesRO ( ) const
const OverlayEdgeRing* geos::operation::overlayng::OverlayEdge::getEdgeRing ( ) const
const MaximalEdgeRing* geos::operation::overlayng::OverlayEdge::getEdgeRingMax ( ) const
OverlayLabel* geos::operation::overlayng::OverlayEdge::getLabel ( ) const
Location geos::operation::overlayng::OverlayEdge::getLocation ( int  index,
int  position 
) const
bool geos::operation::overlayng::OverlayEdge::isForward ( ) const
bool geos::operation::overlayng::OverlayEdge::isInResult ( ) const
bool geos::operation::overlayng::OverlayEdge::isInResultArea ( ) const
bool geos::operation::overlayng::OverlayEdge::isInResultAreaBoth ( ) const
bool geos::operation::overlayng::OverlayEdge::isInResultEither ( ) const
bool geos::operation::overlayng::OverlayEdge::isInResultLine ( ) const
bool geos::operation::overlayng::OverlayEdge::isResultLinked ( ) const
bool geos::operation::overlayng::OverlayEdge::isResultMaxLinked ( ) const
bool geos::operation::overlayng::OverlayEdge::isVisited ( ) const
void geos::operation::overlayng::OverlayEdge::markInResultArea ( )
void geos::operation::overlayng::OverlayEdge::markInResultAreaBoth ( )
void geos::operation::overlayng::OverlayEdge::markInResultLine ( )
void geos::operation::overlayng::OverlayEdge::markVisited ( )
private
void geos::operation::overlayng::OverlayEdge::markVisitedBoth ( )
OverlayEdge* geos::operation::overlayng::OverlayEdge::nextResult ( ) const
OverlayEdge* geos::operation::overlayng::OverlayEdge::nextResultMax ( ) const
OverlayEdge* geos::operation::overlayng::OverlayEdge::oNextOE ( ) const
std::string geos::operation::overlayng::OverlayEdge::resultSymbol ( ) const
void geos::operation::overlayng::OverlayEdge::setEdgeRing ( const OverlayEdgeRing p_edgeRing)
void geos::operation::overlayng::OverlayEdge::setEdgeRingMax ( const MaximalEdgeRing maximalEdgeRing)
void geos::operation::overlayng::OverlayEdge::setNextResult ( OverlayEdge e)
void geos::operation::overlayng::OverlayEdge::setNextResultMax ( OverlayEdge e)
OverlayEdge* geos::operation::overlayng::OverlayEdge::symOE ( ) const
void geos::operation::overlayng::OverlayEdge::unmarkFromResultAreaBoth ( )

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const OverlayEdge oe 
)
friend

Member Data Documentation

bool geos::operation::overlayng::OverlayEdge::direction
private

'true' indicates direction is forward along segString 'false' is reverse direction The label must be interpreted accordingly.

Definition at line 60 of file OverlayEdge.h.

Coordinate geos::operation::overlayng::OverlayEdge::dirPt
private

Definition at line 61 of file OverlayEdge.h.

const OverlayEdgeRing* geos::operation::overlayng::OverlayEdge::edgeRing
private

Definition at line 67 of file OverlayEdge.h.

OverlayLabel* geos::operation::overlayng::OverlayEdge::label
private

Definition at line 62 of file OverlayEdge.h.

bool geos::operation::overlayng::OverlayEdge::m_isInResultArea
private

Definition at line 63 of file OverlayEdge.h.

bool geos::operation::overlayng::OverlayEdge::m_isInResultLine
private

Definition at line 64 of file OverlayEdge.h.

bool geos::operation::overlayng::OverlayEdge::m_isVisited
private

Definition at line 65 of file OverlayEdge.h.

const MaximalEdgeRing* geos::operation::overlayng::OverlayEdge::maxEdgeRing
private

Definition at line 68 of file OverlayEdge.h.

OverlayEdge* geos::operation::overlayng::OverlayEdge::nextResultEdge
private

Definition at line 66 of file OverlayEdge.h.

OverlayEdge* geos::operation::overlayng::OverlayEdge::nextResultMaxEdge
private

Definition at line 69 of file OverlayEdge.h.

const CoordinateSequence* geos::operation::overlayng::OverlayEdge::pts
private

Definition at line 54 of file OverlayEdge.h.


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