improve user manual of CDT_3

This commit is contained in:
Laurent Rineau 2025-04-23 09:13:07 +02:00
parent e26c6ade83
commit 8fc4c928a3
4 changed files with 43 additions and 42 deletions

34
.gitignore vendored
View File

@ -1148,24 +1148,24 @@ Polygonal_surface_reconstruction/examples/build*
Polygonal_surface_reconstruction/test/build*
Solver_interface/examples/build*
/Mesh_3/examples/Mesh_3/indicator_0.inr.gz
dump-*.xyz
dump-*.binary.cgal
dump_*.txt
dump_*.off
dump-*.polylines.txt
all_segments.polylines.txt
Data/data/meshes/*.*.vtk
Data/data/meshes/*.*.ele
Data/data/meshes/*.*.face
Data/data/meshes/*.*.edge
Data/data/meshes/*.*.node
Data/data/meshes/*.*.mesh
Data/data/meshes/*.*.smesh
Data/data/meshes/*.off-cdt-output.off
Data/data/meshes/*.log
/*.off
/*.xyz
log.txt
/r0*
patches_after_merge.ply
all_segments.polylines.txt
Data/data/meshes/*.*.edge
Data/data/meshes/*.*.ele
Data/data/meshes/*.*.face
Data/data/meshes/*.*.mesh
Data/data/meshes/*.*.node
Data/data/meshes/*.*.smesh
Data/data/meshes/*.*.vtk
Data/data/meshes/*.log
Data/data/meshes/*.off-cdt-output.off
dump_*.off
dump_*.txt
dump-*.binary.cgal
dump-*.polylines.txt
dump-*.xyz
dump.off.mesh
log.txt
patches_after_merge.ply

View File

@ -11,7 +11,7 @@ parameter `Triangulation_3` in the function template
\cgalHasModelsBegin
\cgalHasModels{CGAL::Exact_predicates_inexact_constructions_kernel (recommended)}
\cgalHasModelsBare{All %CGAL kernels}
\cgalHasModelsBare{All models of the concept `Kernel`}
\cgalHasModelsEnd
\todo Add the requirements in the concept `ConformingConstrainedDelaunayTriangulationTraits_3`.

View File

@ -14,15 +14,15 @@ namespace CGAL {
\section CT_3_CCDT_3 Conforming Delaunay Triangulations in 3D
This package implements the construction of a 3D Constrained Delaunay triangulation,
conforming to a set of faces of a Piecewise Linear Complex.
This package implements the construction of a 3D constrained Delaunay triangulation,
conforming to the set of faces of a Piecewise Linear Complex.
The set of input polygonal constraints given as a PLC is meant to be represented as a
sub-complex of the triangulation.
For any Piecewise Linear Complex (PLC) in 3D,
the algorithm builds a Constrained Delaunay triangulation conforming to this PLC.
the algorithm builds a constrained Delaunay triangulation conforming to this PLC.
The constrained triangulation does not always exist, and it may be necessary
to add Steiner points to the PLC to make it tetrahedralizable.
to add Steiner vertices to the PLC to make it tetrahedralizable.
The problem is described by Cohen-Steiner et al \cgalCite{cgal:cohen2002conforming},
and by Si \cgalCite{cgal:si2008cdt3}.
@ -34,19 +34,18 @@ In this section, we define the main concepts that have to be understood to use t
\subsection CT_3_PLC Piecewise Linear Complex
A _Piecewise Linear Complex_ is the 3-dimensional generalization of a planar straight-line graph.
A _Piecewise Linear Complex_ (PLC) is the 3-dimensional generalization of a
planar straight-line graph. It is a finite set of vertices, edges, and polygons (facets)
that satisfies the following properties:
A PLC is built from simple geometric elements, called _faces_
that are topologically connected together in a structured way.
`Faces (vertices, edges, and facets) are the basic elements forming the complex.
Their geometric counterparts are points, segments, and polygons, respectively.
The polygons can be non-convex, have holes, and as many boundary segments as needed.
Each face is embedded into the geometric space via the points coordinates.
- The vertices and edges in the PLC form a simplicial complex: every edge in the PLC has
both its endpoints (vertices) in the PLC, and the relative interior of any edge in the
PLC does not intersect any vertex or any other edge in the PLC.
- For each polygon (facet) in the PLC, its boundary is a union of edges in the PLC.
- If two polygons in the PLC intersect, their intersection is a union of edges and vertices
in the PLC. In particular, the interiors of two polygons cannot intersect.
The faces must satisfy the following conditions. They must be connected together by
their common faces of lower dimension:
- two edges can only intersect at a common vertex which is also in the PLC;
- two facets can only intersect at a common edge or vertex which is also in the PLC. \todo pour Laurent
The polygons (facets) can be non-convex, have holes, and as many boundary segments as needed.
\cgalFigureBegin{plc_fig, plc.png}
A Piecewise Linear Complex, made of planar faces, connected by edges and vertices.
@ -58,17 +57,20 @@ The goal of the algorithms developed in this package is to compute a constrained
mesh containing a given set of polygonal constraints in 3D as sub-complex.
See package \ref PkgTriangulation3 for more details on Delaunay triangulations.
A triangulation is a _Delaunay triangulation_ if the circumscribing sphere of any cell
A triangulation is a _Delaunay triangulation_ if the circumscribing sphere of any simplex
of the triangulation contains no vertex in its interior.
A _constrained Delaunay triangulation_ is a constrained triangulation which is as much
Delaunay as possible, given that some facets are marked as _constrained_.
The circumscribing sphere of any cell contains in its interior no data point
which is on the same side of the constrained facet as the cell. \todo pour Laurent
A _constrained Delaunay triangulation_ of a PLC is a constrained triangulation which is as much
Delaunay as possible, given that some facets are marked as _constrained_. More precisely, a
triangulation is _constrained Delaunay_ if for any simplex \f$s\f$ of the triangulation,
the interior of its circumscribing sphere contains no vertex of the triangulation that is
_visible_ from any point of the interior of the simplex \f$s\f$. Two points are _visible_
if the open line segment joining them does not intersect any polygon of the PLC, with the exception
of polygons that are coplanar with the segment.
In 3D, constrained triangulations do not always exist. It can be shown using the
example of the Schönhardt polyhedra \cgalCite{schonhardt1928zerlegung},
\cgalCite{b-ip-48a}, that requires the addition of
Steiner points to be tetrahedralizable (see Figure \cgalFigureRef{schonhardt_fig}).
Steiner vertices to be tetrahedralizable (see Figure \cgalFigureRef{schonhardt_fig}).
\cgalFigureBegin{schonhardt_fig, schonhardt.png}
A Schönhardt polyhedron.
@ -77,13 +79,13 @@ A Schönhardt polyhedron.
Shewchuk \cgalCite{cgal:shewchuk1998condition} showed that for any PLC,
there exists another PLC that is a refined version of the original one,
that admits a constrained Delaunay triangulation.
The refined PLC is obtained by adding Steiner points on the input edges and facets,
The refined PLC is obtained by adding Steiner vertices on the input edges and facets,
and the constrained triangulation built on this PLC is called
a _conforming Delaunay triangulation_.
The algorithm implemented in this package is based on the work of
Hang Si \cgalCite{si2005meshing}, \cgalCite{si2015tetgen}.
Steiner points are added on input edges and input facets
Steiner vertices are added on input edges and input facets
of the PLC to make it tetrahedralizable.
Figure \cgalFigureRef{plc2cdt_fig} shows an example of a conforming constrained

View File

@ -66,4 +66,3 @@ if(CGAL_ENABLE_TESTING)
"execution of test_delaunay_3"
PROPERTIES RESOURCE_LOCK Triangulation_3_Tests_IO)
endif()