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* Polygonal_surface_reconstruction/test/build*
Solver_interface/examples/build* Solver_interface/examples/build*
/Mesh_3/examples/Mesh_3/indicator_0.inr.gz /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 /*.off
/*.xyz /*.xyz
log.txt
/r0* /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 dump.off.mesh
log.txt
patches_after_merge.ply

View File

@ -11,7 +11,7 @@ parameter `Triangulation_3` in the function template
\cgalHasModelsBegin \cgalHasModelsBegin
\cgalHasModels{CGAL::Exact_predicates_inexact_constructions_kernel (recommended)} \cgalHasModels{CGAL::Exact_predicates_inexact_constructions_kernel (recommended)}
\cgalHasModelsBare{All %CGAL kernels} \cgalHasModelsBare{All models of the concept `Kernel`}
\cgalHasModelsEnd \cgalHasModelsEnd
\todo Add the requirements in the concept `ConformingConstrainedDelaunayTriangulationTraits_3`. \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 \section CT_3_CCDT_3 Conforming Delaunay Triangulations in 3D
This package implements the construction of a 3D Constrained Delaunay triangulation, This package implements the construction of a 3D constrained Delaunay triangulation,
conforming to a set of faces of a Piecewise Linear Complex. 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 The set of input polygonal constraints given as a PLC is meant to be represented as a
sub-complex of the triangulation. sub-complex of the triangulation.
For any Piecewise Linear Complex (PLC) in 3D, 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 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}, The problem is described by Cohen-Steiner et al \cgalCite{cgal:cohen2002conforming},
and by Si \cgalCite{cgal:si2008cdt3}. 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 \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_ - The vertices and edges in the PLC form a simplicial complex: every edge in the PLC has
that are topologically connected together in a structured way. both its endpoints (vertices) in the PLC, and the relative interior of any edge in the
`Faces (vertices, edges, and facets) are the basic elements forming the complex. PLC does not intersect any vertex or any other edge in the PLC.
Their geometric counterparts are points, segments, and polygons, respectively. - For each polygon (facet) in the PLC, its boundary is a union of edges in the PLC.
The polygons can be non-convex, have holes, and as many boundary segments as needed. - If two polygons in the PLC intersect, their intersection is a union of edges and vertices
Each face is embedded into the geometric space via the points coordinates. 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 The polygons (facets) can be non-convex, have holes, and as many boundary segments as needed.
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
\cgalFigureBegin{plc_fig, plc.png} \cgalFigureBegin{plc_fig, plc.png}
A Piecewise Linear Complex, made of planar faces, connected by edges and vertices. 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. mesh containing a given set of polygonal constraints in 3D as sub-complex.
See package \ref PkgTriangulation3 for more details on Delaunay triangulations. 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. of the triangulation contains no vertex in its interior.
A _constrained Delaunay triangulation_ is a constrained triangulation which is as much 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_. Delaunay as possible, given that some facets are marked as _constrained_. More precisely, a
The circumscribing sphere of any cell contains in its interior no data point triangulation is _constrained Delaunay_ if for any simplex \f$s\f$ of the triangulation,
which is on the same side of the constrained facet as the cell. \todo pour Laurent 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 In 3D, constrained triangulations do not always exist. It can be shown using the
example of the Schönhardt polyhedra \cgalCite{schonhardt1928zerlegung}, example of the Schönhardt polyhedra \cgalCite{schonhardt1928zerlegung},
\cgalCite{b-ip-48a}, that requires the addition of \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} \cgalFigureBegin{schonhardt_fig, schonhardt.png}
A Schönhardt polyhedron. A Schönhardt polyhedron.
@ -77,13 +79,13 @@ A Schönhardt polyhedron.
Shewchuk \cgalCite{cgal:shewchuk1998condition} showed that for any PLC, Shewchuk \cgalCite{cgal:shewchuk1998condition} showed that for any PLC,
there exists another PLC that is a refined version of the original one, there exists another PLC that is a refined version of the original one,
that admits a constrained Delaunay triangulation. 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 and the constrained triangulation built on this PLC is called
a _conforming Delaunay triangulation_. a _conforming Delaunay triangulation_.
The algorithm implemented in this package is based on the work of The algorithm implemented in this package is based on the work of
Hang Si \cgalCite{si2005meshing}, \cgalCite{si2015tetgen}. 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. of the PLC to make it tetrahedralizable.
Figure \cgalFigureRef{plc2cdt_fig} shows an example of a conforming constrained 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" "execution of test_delaunay_3"
PROPERTIES RESOURCE_LOCK Triangulation_3_Tests_IO) PROPERTIES RESOURCE_LOCK Triangulation_3_Tests_IO)
endif() endif()