19#ifndef GEOS_TRIANGULATE_QUADEDGE_QUADEDGESUBDIVISION_H
20#define GEOS_TRIANGULATE_QUADEDGE_QUADEDGESUBDIVISION_H
28#include <geos/geom/MultiLineString.h>
29#include <geos/triangulate/quadedge/QuadEdgeLocator.h>
30#include <geos/triangulate/quadedge/Vertex.h>
45namespace triangulate {
51const double EDGE_COINCIDENCE_TOL_FACTOR = 1000;
81 typedef std::vector<QuadEdge*> QuadEdgeList;
96 QuadEdgeList quadEdges;
97 QuadEdgeList createdEdges;
100 double edgeCoincidenceTolerance;
103 std::auto_ptr<QuadEdgeLocator> locator;
123 virtual void initSubdiv(
QuadEdge* initEdges[3]);
162 inline void setLocator(std::auto_ptr<QuadEdgeLocator> locator) {
163 this->locator = locator;
226 return locator->locate(v);
239 return locator->locate(
Vertex(p));
343 typedef std::stack<QuadEdge*> QuadEdgeStack;
344 typedef std::set<QuadEdge*> QuadEdgeSet;
345 typedef std::list< geom::CoordinateSequence*> TriList;
365 QuadEdge** fetchTriangleToVisit(
QuadEdge *edge, QuadEdgeStack &edgeStack,
bool includeFrame,
366 QuadEdgeSet &visitedEdges);
375 void getTriangleCoordinates(TriList* triList,
bool includeFrame);
378 class TriangleCoordinatesVisitor;
379 class TriangleCircumcentreVisitor;
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:59
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition Envelope.h:53
Represents a collection of heterogeneous Geometry objects.
Definition GeometryCollection.h:56
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:67
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:167
Models a collection of (}s.
Definition MultiLineString.h:51
QuadEdge * locateFromEdge(const Vertex &v, const QuadEdge &startEdge) const
bool isFrameBorderEdge(const QuadEdge &e) const
QuadEdge & insertSite(const Vertex &v)
bool isFrameEdge(const QuadEdge &e) const
void setLocator(std::auto_ptr< QuadEdgeLocator > locator)
Definition QuadEdgeSubdivision.h:162
std::auto_ptr< std::vector< geom::Geometry * > > getVoronoiCellPolygons(const geom::GeometryFactory &geomFact)
std::auto_ptr< std::vector< geom::Geometry * > > getVoronoiCellEdges(const geom::GeometryFactory &geomFact)
virtual QuadEdge & connect(QuadEdge &a, QuadEdge &b)
static void getTriangleEdges(const QuadEdge &startQE, const QuadEdge *triEdge[3])
bool isFrameVertex(const Vertex &v) const
std::auto_ptr< QuadEdgeSubdivision::QuadEdgeList > getVertexUniqueEdges(bool includeFrame)
const QuadEdgeList & getEdges() const
Definition QuadEdgeSubdivision.h:151
std::auto_ptr< QuadEdgeList > getPrimaryEdges(bool includeFrame)
std::auto_ptr< geom::Geometry > getVoronoiCellPolygon(QuadEdge *qe, const geom::GeometryFactory &geomFact)
QuadEdge * locate(const geom::Coordinate &p)
Definition QuadEdgeSubdivision.h:238
std::auto_ptr< geom::GeometryCollection > getTriangles(const geom::GeometryFactory &geomFact)
std::auto_ptr< geom::MultiLineString > getVoronoiDiagramEdges(const geom::GeometryFactory &geomFact)
QuadEdge * locate(const geom::Coordinate &p0, const geom::Coordinate &p1)
std::auto_ptr< geom::MultiLineString > getEdges(const geom::GeometryFactory &geomFact)
std::auto_ptr< geom::Geometry > getVoronoiCellEdge(QuadEdge *qe, const geom::GeometryFactory &geomFact)
QuadEdgeSubdivision(const geom::Envelope &env, double tolerance)
std::auto_ptr< geom::GeometryCollection > getVoronoiDiagram(const geom::GeometryFactory &geomFact)
double getTolerance() const
Definition QuadEdgeSubdivision.h:132
virtual QuadEdge & makeEdge(const Vertex &o, const Vertex &d)
bool isOnEdge(const QuadEdge &e, const geom::Coordinate &p) const
QuadEdge * locate(const Vertex &v) const
Definition QuadEdgeSubdivision.h:225
const geom::Envelope & getEnvelope() const
Definition QuadEdgeSubdivision.h:141
bool isVertexOfEdge(const QuadEdge &e, const Vertex &v) const
Definition TriangleVisitor.h:34
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25