19#ifndef GEOS_TRIANGULATE_QUADEDGE_QUADEDGE_H
20#define GEOS_TRIANGULATE_QUADEDGE_QUADEDGE_H
24#include <geos/triangulate/quadedge/Vertex.h>
25#include <geos/geom/LineSegment.h>
28namespace triangulate {
297 return oNext().
sym();
319 return sym().
oNext();
377 return orig().getCoordinate().distance(dest().getCoordinate());
A class that represents the edge data structure which implements the quadedge algebra.
Definition: QuadEdge.h:51
std::unique_ptr< geom::LineSegment > toLineSegment() const
Creates a geom::LineSegment representing the geometry of this edge.
QuadEdge & sym() const
Gets the edge from the destination to the origin of this edge.
Definition: QuadEdge.h:229
void setOrig(const Vertex &o)
Sets the vertex for this edge's origin.
Definition: QuadEdge.h:331
bool equalsOriented(const QuadEdge &qe) const
Tests if this quadedge and another have the same line segment geometry with the same orientation.
QuadEdge & oNext() const
Gets the next CCW edge around the origin of this edge.
Definition: QuadEdge.h:240
void setDest(const Vertex &d)
Sets the vertex for this edge's destination.
Definition: QuadEdge.h:342
QuadEdge & dPrev() const
Gets the next CW edge around (into) the destination of this edge.
Definition: QuadEdge.h:273
QuadEdge & rPrev()
Gets the edge around the right face ccw before this edge.
Definition: QuadEdge.h:317
QuadEdge & dNext() const
Gets the next CCW edge around (into) the destination of this edge.
Definition: QuadEdge.h:262
static std::unique_ptr< QuadEdge > makeEdge(const Vertex &o, const Vertex &d)
Creates a new QuadEdge quartet from Vertex o to Vertex d.
QuadEdge & lNext() const
Gets the CCW edge around the left face following this edge.
Definition: QuadEdge.h:284
virtual void setData(void *data)
Sets the external data value for this edge.
static void swap(QuadEdge &e)
Turns an edge counterclockwise inside its enclosing quadrilateral.
QuadEdge & oPrev() const
Gets the next CW edge around (from) the origin of this edge.
Definition: QuadEdge.h:251
QuadEdge & lPrev() const
Gets the CCW edge around the left face before this edge.
Definition: QuadEdge.h:295
virtual void free()
Free the QuadEdge quartet associated with this QuadEdge by a connect() or makeEdge() call.
void remove()
Marks this quadedge as being deleted.
QuadEdge & rot() const
Gets the dual of this edge, directed from its right to its left.
Definition: QuadEdge.h:207
const QuadEdge & getPrimary() const
Gets the primary edge of this quadedge and its sym.
bool isLive() const
Tests whether this edge has been deleted.
Definition: QuadEdge.h:169
QuadEdge & rNext()
Gets the edge around the right face ccw following this edge.
Definition: QuadEdge.h:306
const Vertex & orig() const
Gets the vertex for the edge's origin.
Definition: QuadEdge.h:353
static void splice(QuadEdge &a, QuadEdge &b)
Splices two edges together or apart.
double getLength() const
Gets the length of the geometry of this quadedge.
Definition: QuadEdge.h:375
QuadEdge & invRot() const
Gets the dual of this edge, directed from its left to its right.
Definition: QuadEdge.h:218
bool equalsNonOriented(const QuadEdge &qe) const
Tests if this quadedge and another have the same line segment geometry, regardless of orientation.
const Vertex & dest() const
Gets the vertex for the edge's destination.
Definition: QuadEdge.h:364
void setNext(QuadEdge *p_next)
Sets the connected edge.
Definition: QuadEdge.h:191
static std::unique_ptr< QuadEdge > connect(QuadEdge &a, QuadEdge &b)
Creates a new QuadEdge connecting the destination of a to the origin of b, in such a way that all thr...
virtual void * getData()
Gets the external data value for this edge.
Models a site (node) in a QuadEdgeSubdivision.
Definition: Vertex.h:59
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25