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
26namespace geos {
27namespace triangulate { //geos.triangulate
28
29namespace quadedge {
30class QuadEdge;
31class QuadEdgeSubdivision;
32}
33
42private:
44 bool isUsingTolerance;
45 bool m_isForceConvex;
46
47public:
56
57 typedef std::vector<quadedge::Vertex> VertexList;
58
70 void forceConvex(bool isForceConvex);
71
83 void insertSites(const VertexList& vertices);
84
94
95private:
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 geos.h:39