geos::triangulate::IncrementalDelaunayTriangulator Class Reference

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

`#include <IncrementalDelaunayTriangulator.h>`

## Public Types

typedef std::vector< quadedge::Vertex > | VertexList

## Public Member Functions

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

## Detailed Description

Computes a Delauanay Triangulation of a set of `quadedge::Vertex`es, 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

  subdiv | a 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

  isForceConvex | true 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

  vertices | a Collection of Vertex

Exceptions

  LocateFailureException | if the location algorithm fails to converge in a reasonable number of iterations

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

- IncrementalDelaunayTriangulator.h