mirror of https://github.com/CGAL/cgal
improve user manual of CDT_3
This commit is contained in:
parent
e26c6ade83
commit
8fc4c928a3
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue