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>
28 namespace triangulate {
51 class GEOS_DLL QuadEdge {
61 static std::unique_ptr<QuadEdge> makeEdge(
const Vertex& o,
const Vertex& d);
73 static std::unique_ptr<QuadEdge> connect(QuadEdge& a, QuadEdge& b);
89 static void splice(QuadEdge& a, QuadEdge& b);
96 static void swap(QuadEdge& e);
134 const QuadEdge& getPrimary()
const;
141 virtual void setData(
void* data);
148 virtual void* getData();
191 setNext(QuadEdge* p_next)
297 return oNext().
sym();
319 return sym().
oNext();
377 return orig().getCoordinate().
distance(dest().getCoordinate());
387 bool equalsNonOriented(
const QuadEdge& qe)
const;
396 bool equalsOriented(
const QuadEdge& qe)
const;
404 std::unique_ptr<geom::LineSegment> toLineSegment()
const;
411 #endif //GEOS_TRIANGULATE_QUADEDGE_QUADEDGE_H
A class that represents the edge data structure which implements the quadedge algebra.
Definition: QuadEdge.h:95
Models a site (node) in a QuadEdgeSubdivision.
Definition: Vertex.h:58
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:24
QuadEdge & invRot() const
Gets the dual of this edge, directed from its left to its right.
Definition: QuadEdge.h:276
QuadEdge & oNext() const
Gets the next CCW edge around the origin of this edge.
Definition: QuadEdge.h:298
QuadEdge & sym() const
Gets the edge from the destination to the origin of this edge.
Definition: QuadEdge.h:287
QuadEdge & rot() const
Gets the dual of this edge, directed from its right to its left.
Definition: QuadEdge.h:265
double distance(const Coordinate &p) const