GEOS
3.9.1dev
|
#include <Edge.h>
Public Member Functions | |
Edge () | |
Edge (geom::CoordinateSequence *p_pts, const EdgeSourceInfo *info) | |
std::unique_ptr< geom::CoordinateSequence > | getCoordinates () |
const geom::CoordinateSequence * | getCoordinatesRO () const |
geom::CoordinateSequence * | releaseCoordinates () |
const geom::Coordinate & | getCoordinate (size_t index) const |
std::size_t | size () const |
bool | direction () const |
bool | relativeDirection (const Edge *edge2) const |
int | dimension (int geomIndex) const |
void | merge (const Edge *edge) |
void | populateLabel (OverlayLabel &ovl) const |
bool | compareTo (const Edge &e) const |
Static Public Member Functions | |
static bool | isCollapsed (const geom::CoordinateSequence *pts) |
Private Member Functions | |
void | initLabel (OverlayLabel &lbl, int geomIndex, int dim, int depthDelta, bool isHole) const |
int | labelDim (int dim, int depthDelta) const |
bool | isHole (int index) const |
bool | isBoundary (int geomIndex) const |
bool | isShell (int geomIndex) const |
geom::Location | locationRight (int depthDelta) const |
geom::Location | locationLeft (int depthDelta) const |
int | delSign (int depthDel) const |
void | copyInfo (const EdgeSourceInfo *info) |
bool | isHoleMerged (int geomIndex, const Edge *edge1, const Edge *edge2) const |
Private Attributes | |
int | aDim = OverlayLabel::DIM_UNKNOWN |
int | aDepthDelta = 0 |
bool | aIsHole = false |
int | bDim = OverlayLabel::DIM_UNKNOWN |
int | bDepthDelta = 0 |
bool | bIsHole = false |
std::unique_ptr< geom::CoordinateSequence > | pts |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Edge &e) |
Represents the underlying linework for edges in a topology graph, and carries the topology information derived from the two parent geometries. The edge may be the result of the merging of two or more edges which have the same underlying linework (although possibly different orientations). In this case the topology information is derived from the merging of the information in the source edges. Merged edges can occur in the following situations
The source edges may have the same parent geometry, or different ones, or a mix of the two.
Definition at line 62 of file operation/overlayng/Edge.h.
|
inline |
Definition at line 114 of file operation/overlayng/Edge.h.
References geos::geom::operator<<().
geos::operation::overlayng::Edge::Edge | ( | geom::CoordinateSequence * | p_pts, |
const EdgeSourceInfo * | info | ||
) |
|
inline |
Definition at line 159 of file operation/overlayng/Edge.h.
References geos::geom::Coordinate::compareTo(), geos::operation::overlayng::EdgeComparator(), and getCoordinate().
|
private |
|
private |
int geos::operation::overlayng::Edge::dimension | ( | int | geomIndex | ) | const |
bool geos::operation::overlayng::Edge::direction | ( | ) | const |
const geom::Coordinate& geos::operation::overlayng::Edge::getCoordinate | ( | size_t | index | ) | const |
std::unique_ptr<geom::CoordinateSequence> geos::operation::overlayng::Edge::getCoordinates | ( | ) |
const geom::CoordinateSequence* geos::operation::overlayng::Edge::getCoordinatesRO | ( | ) | const |
|
private |
Populates the label for an edge resulting from an input geometry.
|
private |
|
static |
|
private |
|
private |
|
private |
Tests whether the edge is part of a shell in the given geometry. This is only the case if the edge is a boundary.
|
private |
|
private |
|
private |
void geos::operation::overlayng::Edge::merge | ( | const Edge * | edge | ) |
Merges an edge into this edge, updating the topology info accordingly.
void geos::operation::overlayng::Edge::populateLabel | ( | OverlayLabel & | ovl | ) | const |
bool geos::operation::overlayng::Edge::relativeDirection | ( | const Edge * | edge2 | ) | const |
Compares two coincident edges to determine whether they have the same or opposite direction.
geom::CoordinateSequence* geos::operation::overlayng::Edge::releaseCoordinates | ( | ) |
std::size_t geos::operation::overlayng::Edge::size | ( | ) | const |
|
friend |
|
private |
Definition at line 68 of file operation/overlayng/Edge.h.
|
private |
Definition at line 67 of file operation/overlayng/Edge.h.
|
private |
Definition at line 69 of file operation/overlayng/Edge.h.
|
private |
Definition at line 71 of file operation/overlayng/Edge.h.
|
private |
Definition at line 70 of file operation/overlayng/Edge.h.
|
private |
Definition at line 72 of file operation/overlayng/Edge.h.
|
private |
Definition at line 73 of file operation/overlayng/Edge.h.