GEOS  3.14.0dev
Public Types | Public Member Functions | List of all members
geos::triangulate::IncrementalDelaunayTriangulator Class Reference

Computes a Delauanay Triangulation of a set of quadedge::Vertexes, using an incrementatal insertion algorithm. More...

#include <IncrementalDelaunayTriangulator.h>

Public Types

typedef std::vector< quadedge::VertexVertexList
 

Public Member Functions

 IncrementalDelaunayTriangulator (quadedge::QuadEdgeSubdivision *subdiv)
 
void forceConvex (bool isForceConvex)
 
void insertSites (const VertexList &vertices)
 
quadedge::QuadEdgeinsertSite (const quadedge::Vertex &v)
 

Detailed Description

Computes a Delauanay Triangulation of a set of quadedge::Vertexes, using an incrementatal insertion algorithm.

Author
JTS: Martin Davis
Benjamin Campbell

Constructor & Destructor Documentation

◆ IncrementalDelaunayTriangulator()

geos::triangulate::IncrementalDelaunayTriangulator::IncrementalDelaunayTriangulator ( quadedge::QuadEdgeSubdivision subdiv)

Creates a new triangulator using the given quadedge::QuadEdgeSubdivision. The triangulator uses the tolerance of the supplied subdivision.

Parameters
subdiva subdivision in which to build the TIN

Member Function Documentation

◆ forceConvex()

void geos::triangulate::IncrementalDelaunayTriangulator::forceConvex ( bool  isForceConvex)

Sets whether the triangulation is forced to have a convex boundary. Because of the use of a finite-size frame, this condition requires special logic to enforce. The default is true, since this is a requirement for some uses of Delaunay Triangulations (such as Concave Hull generation). However, forcing the triangulation boundary to be convex may cause the overall frame triangulation to be non-Delaunay. This can cause a problem for Voronoi generation, so the logic can be disabled via this method.

Parameters
isForceConvextrue if the triangulation boundary is forced to be convex

◆ insertSite()

quadedge::QuadEdge& geos::triangulate::IncrementalDelaunayTriangulator::insertSite ( const quadedge::Vertex v)

Inserts a new point into a subdivision representing a Delaunay triangulation, and fixes the affected edges so that the result is still a Delaunay triangulation.

Returns
a quadedge containing the inserted vertex

◆ insertSites()

void geos::triangulate::IncrementalDelaunayTriangulator::insertSites ( const VertexList &  vertices)

Inserts all sites in a collection. The inserted vertices MUST be unique up to the provided tolerance value. (i.e. no two vertices should be closer than the provided tolerance value). They do not have to be rounded to the tolerance grid, however.

Parameters
verticesa Collection of Vertex
Exceptions
LocateFailureExceptionif the location algorithm fails to converge in a reasonable number of iterations

The documentation for this class was generated from the following file: