A class that represents the edge data structure which implements the quadedge algebra.
More...
|
const QuadEdge & | getPrimary () |
| Gets the primary edge of this quadedge and its sym .
|
|
void | remove () |
| Marks this quadedge as being deleted.
|
|
bool | isLive () const |
| Tests whether this edge has been deleted.
|
|
bool | isVisited () const |
|
void | setVisited (bool v) |
|
void | setNext (QuadEdge *p_next) |
| Sets the connected edge.
|
|
const QuadEdge & | rot () const |
| Gets the dual of this edge, directed from its right to its left.
|
|
QuadEdge & | rot () |
|
const QuadEdge & | invRot () const |
| Gets the dual of this edge, directed from its left to its right.
|
|
QuadEdge & | invRot () |
|
const QuadEdge & | sym () const |
| Gets the edge from the destination to the origin of this edge.
|
|
QuadEdge & | sym () |
|
const QuadEdge & | oNext () const |
| Gets the next CCW edge around the origin of this edge.
|
|
QuadEdge & | oNext () |
|
const QuadEdge & | oPrev () const |
| Gets the next CW edge around (from) the origin of this edge.
|
|
QuadEdge & | oPrev () |
|
const QuadEdge & | dNext () const |
| Gets the next CCW edge around (into) the destination of this edge.
|
|
const QuadEdge & | dPrev () const |
| Gets the next CW edge around (into) the destination of this edge.
|
|
QuadEdge & | dPrev () |
|
const QuadEdge & | lNext () const |
| Gets the CCW edge around the left face following this edge.
|
|
QuadEdge & | lNext () |
|
const QuadEdge & | lPrev () const |
| Gets the CCW edge around the left face before this edge.
|
|
QuadEdge & | lPrev () |
|
const QuadEdge & | rNext () const |
| Gets the edge around the right face ccw following this edge.
|
|
const QuadEdge & | rPrev () const |
| Gets the edge around the right face ccw before this edge.
|
|
void | setOrig (const Vertex &o) |
| Sets the vertex for this edge's origin.
|
|
void | setDest (const Vertex &d) |
| Sets the vertex for this edge's destination.
|
|
const Vertex & | orig () const |
| Gets the vertex for the edge's origin.
|
|
const Vertex & | dest () const |
| Gets the vertex for the edge's destination.
|
|
double | getLength () const |
| Gets the length of the geometry of this quadedge.
|
|
bool | equalsNonOriented (const QuadEdge &qe) const |
| Tests if this quadedge and another have the same line segment geometry, regardless of orientation.
|
|
bool | equalsOriented (const QuadEdge &qe) const |
| Tests if this quadedge and another have the same line segment geometry with the same orientation.
|
|
std::unique_ptr< geom::LineSegment > | toLineSegment () const |
| Creates a geom::LineSegment representing the geometry of this edge.
|
|
A class that represents the edge data structure which implements the quadedge algebra.
The quadedge algebra was described in a well-known paper by Guibas and Stolfi, "Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams", ACM Transactions on Graphics, 4(2), 1985, 75-123.
Each edge object is part of a QuadEdgeQuartet of 4 edges, linked via relative memory addresses. Quadedges in a subdivision are linked together via their next
references. The linkage between the quadedge quartets determines the topology of the subdivision.
The edge class does not contain separate information for vertice or faces; a vertex is implicitly defined as a ring of edges (created using the next
field).
- Author
- JTS: David Skea
-
JTS: Martin Davis
-
Benjamin Campbell
static void geos::triangulate::quadedge::QuadEdge::splice |
( |
QuadEdge & |
a, |
|
|
QuadEdge & |
b |
|
) |
| |
|
static |
Splices two edges together or apart.
Splice affects the two edge rings around the origins of a and b, and, independently, the two edge rings around the left faces of a
and b
. In each case, (i) if the two rings are distinct, Splice will combine them into one, or (ii) if the two are the same ring, Splice will break it into two separate pieces. Thus, Splice can be used both to attach the two edges together, and to break them apart.
- Parameters
-
a | an edge to splice |
b | an edge to splice |