Free Functions Template for Creating Conforming Constrained Delaunay Triangulations
The following functions create a 3D conforming constrained Delaunay triangulation from either a polygon soup or a polygon mesh.
Input Data
The input data (polygon mesh or polygon soup) represents the polygonal constraints enforced during the triangulation process.
By default, each face of the input is considered a polygonal constraint for the triangulation. The named parameter plc_face_id can be used to describe larger polygonal constraints, possibly with holes. If used, this parameter must be a property map that associates each face of the input with a PLC face identifier. Faces with the same face identifier are considered part of the same surface patch. Each of these surface patches (defined as the union of the input faces with a given patch identifier) is expected to be a polygon or a polygon with holes, with coplanar vertices (or nearly coplanar up to the precision of the number type used).
The generated triangulation will conform to the faces of the input, or to the surface patches described by the plc_face_id property map if provided.
In the case where the input contains a non-planar PLC face, building the triangulation may fail with an exception of type CGAL::Non_planar_plc_facet_exception.
- Precondition
- The input data must not be coplanar.
-
The input data must not have self-intersections.
Template Parameters
For both function templates, the template arguments can be deduced from the function arguments, or defaulted.
- The first template argument Triangulation defaults to CGAL::Default, and in that case the triangulation type is deduced from the input type and the named parameters (see below).
- The following one or two template arguments are deduced from the input data: either a polygon mesh type, or a polygon soup defined by two types (a sequence of points and a sequence of sequences of indices).
- The last template argument is the named parameters class, deduced from the function arguments.
Returned Triangulation Type
For both functions, the template parameter Triangulation defines the type of the triangulation that is created and returned by the function.
In both cases, the traits class Traits must fulfill the following requirements: