19 #ifndef GEOS_TRIANGULATE_QUADEDGE_QUADEDGESUBDIVISION_H
20 #define GEOS_TRIANGULATE_QUADEDGE_QUADEDGESUBDIVISION_H
27 #include <geos/geom/Envelope.h>
28 #include <geos/geom/MultiLineString.h>
29 #include <geos/triangulate/quadedge/QuadEdgeLocator.h>
30 #include <geos/triangulate/quadedge/Vertex.h>
36 class CoordinateSequence;
37 class GeometryCollection;
38 class GeometryFactory;
42 namespace triangulate {
46 class TriangleVisitor;
48 const double EDGE_COINCIDENCE_TOL_FACTOR = 1000;
78 typedef std::list<QuadEdge*> QuadEdgeList;
89 static void getTriangleEdges(
const QuadEdge &startQE,
93 QuadEdgeList quadEdges;
94 QuadEdgeList createdEdges;
97 double edgeCoincidenceTolerance;
100 std::auto_ptr<QuadEdgeLocator> locator;
120 virtual void initSubdiv(
QuadEdge* initEdges[3]);
159 inline void setLocator(std::auto_ptr<QuadEdgeLocator> locator) {
160 this->locator = locator;
223 return locator->locate(v);
236 return locator->locate(
Vertex(p));
276 bool isFrameEdge(
const QuadEdge &e)
const;
287 bool isFrameBorderEdge(
const QuadEdge &e)
const;
296 bool isFrameVertex(
const Vertex &v)
const;
331 std::auto_ptr<QuadEdgeList> getPrimaryEdges(
bool includeFrame);
340 typedef std::stack<QuadEdge*> QuadEdgeStack;
341 typedef std::set<QuadEdge*> QuadEdgeSet;
342 typedef std::list< geom::CoordinateSequence*> TriList;
362 QuadEdge** fetchTriangleToVisit(
QuadEdge *edge, QuadEdgeStack &edgeStack,
bool includeFrame,
363 QuadEdgeSet &visitedEdges);
372 void getTriangleCoordinates(TriList* triList,
bool includeFrame);
375 class TriangleCoordinatesVisitor;
402 #endif //GEOS_TRIANGULATE_QUADEDGE_QUADEDGESUBDIVISION_H
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:53
QuadEdge * locate(const geom::Coordinate &p)
Definition: QuadEdgeSubdivision.h:235
Definition: TriangleVisitor.h:34
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
QuadEdge * locate(const Vertex &v) const
Definition: QuadEdgeSubdivision.h:222
void setLocator(std::auto_ptr< QuadEdgeLocator > locator)
Definition: QuadEdgeSubdivision.h:159
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:67
Definition: QuadEdgeSubdivision.h:76
double getTolerance() const
Definition: QuadEdgeSubdivision.h:129
const QuadEdgeList & getEdges() const
Definition: QuadEdgeSubdivision.h:148
Definition: QuadEdge.h:51
const geom::Envelope & getEnvelope() const
Definition: QuadEdgeSubdivision.h:138