GEOS  3.14.0dev
IncrementalDelaunayTriangulator.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2012 Excensus LLC.
7  *
8  * This is free software; you can redistribute and/or modify it under
9  * the terms of the GNU Lesser General Licence as published
10  * by the Free Software Foundation.
11  * See the COPYING file for more information.
12  *
13  **********************************************************************
14  *
15  * Last port: triangulate/IncrementalDelaunayTriangulator.java r524
16  *
17  **********************************************************************/
18 
19 #pragma once
20 
21 #include <list>
22 
23 #include <geos/triangulate/quadedge/Vertex.h>
24 
25 
26 namespace geos {
27 namespace triangulate { //geos.triangulate
28 
29 namespace quadedge {
30 class QuadEdge;
31 class QuadEdgeSubdivision;
32 }
33 
42 private:
44  bool isUsingTolerance;
45  bool m_isForceConvex;
46 
47 public:
56 
57  typedef std::vector<quadedge::Vertex> VertexList;
58 
70  void forceConvex(bool isForceConvex);
71 
83  void insertSites(const VertexList& vertices);
84 
94 
95 private:
96 
97  bool isConcaveBoundary(const quadedge::QuadEdge& e) const;
98 
99  bool isConcaveAtOrigin(const quadedge::QuadEdge& e) const;
100 
101  bool isBetweenFrameAndInserted(const quadedge::QuadEdge& e, const quadedge::Vertex& vInsert) const;
102 };
103 
104 } //namespace geos.triangulate
105 } //namespace goes
106 
Computes a Delauanay Triangulation of a set of quadedge::Vertexes, using an incrementatal insertion a...
Definition: IncrementalDelaunayTriangulator.h:41
IncrementalDelaunayTriangulator(quadedge::QuadEdgeSubdivision *subdiv)
void insertSites(const VertexList &vertices)
quadedge::QuadEdge & insertSite(const quadedge::Vertex &v)
A class that contains the QuadEdges representing a planar subdivision that models a triangulation.
Definition: QuadEdgeSubdivision.h:78
A class that represents the edge data structure which implements the quadedge algebra.
Definition: QuadEdge.h:53
Models a site (node) in a QuadEdgeSubdivision.
Definition: Vertex.h:60
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25