Added periodic weighted alpha shapes to the doc

This commit is contained in:
Mael Rouxel-Labbé 2017-07-31 16:17:23 +02:00
parent 06bfbfec6f
commit fd1c9d5dfa
5 changed files with 32 additions and 23 deletions

View File

@ -198,10 +198,13 @@ We currently do not specify concepts for the underlying triangulation
type. Models that work for a family of alpha-shapes are the instantiations type. Models that work for a family of alpha-shapes are the instantiations
of the classes `Delaunay_triangulation_3` and of the classes `Delaunay_triangulation_3` and
`Periodic_3_Delaunay_triangulation_3` (see `Periodic_3_Delaunay_triangulation_3` (see
example \ref AlphaShape_3DExampleForPeriodicAlphaShapes). A model that works for a fixed alpha-shape are the instantiations example \ref AlphaShape_3DExampleForPeriodicAlphaShapes).
A model that works for a fixed alpha-shape are the instantiations
of the class `Delaunay_triangulation_3`. of the class `Delaunay_triangulation_3`.
A model that works for a weighted alpha-shape is Models that work for a weighted alpha-shape are the instantiations
the class `Regular_triangulation_3`. The triangulation needs a geometric traits class of the classes `Regular_triangulation_3` and
`Periodic_3_regular_triangulation_3`.
The triangulation needs a geometric traits class
and a triangulation data structure as template parameters. and a triangulation data structure as template parameters.
\subsection AlphaShape3D_ConceptAndModelsAlphaShapes Alpha Shapes \subsection AlphaShape3D_ConceptAndModelsAlphaShapes Alpha Shapes
@ -234,19 +237,20 @@ and `Fixed_alpha_shape_cell_base_3<Gt>`, respectively.
\subsection AlphaShape3D_ConceptAndModelsTDS Triangulation data structure \subsection AlphaShape3D_ConceptAndModelsTDS Triangulation data structure
Additionally requirements are put when using `Regular_triangulation_3` or Additionally requirements are put when using weighted or
`Periodic_3_Delaunay_triangulation_3` as underlying triangulations: periodic triangulations as underlying triangulation:
<ul> <ul>
<li> When using `Regular_triangulation_3` as underlying triangulation, the vertex <li> When using a weighted triangulation (`Regular_triangulation_3` or
`Periodic_3_regular_triangulation_3`), the vertex
and cell classes must be models to both `AlphaShapeVertex_3` and and cell classes must be models to both `AlphaShapeVertex_3` and
`RegularTriangulationVertexBase_3`, as well as `RegularTriangulationVertexBase_3`, as well as
`AlphaShapeCell_3` and `RegularTriangulationCellBase_3` respectively `AlphaShapeCell_3` and `RegularTriangulationCellBase_3` respectively
(see example \ref AlphaShape_3DExampleforWeightedAlphaShapes). (see example: \ref AlphaShape_3DExampleforWeightedAlphaShapes).
<li> When using `Periodic_3_Delaunay_triangulation_3` as underlying <li> When using a periodic triangulation (`Periodic_3_Delaunay_triangulation_3`
triangulation the vertex and cell classes need to be models to both or `Periodic_3_regular_triangulation_3`), the vertex and cell classes must
`AlphaShapeVertex_3` and `Periodic_3TriangulationDSVertexBase_3`, as well as be models to both `AlphaShapeVertex_3` and `Periodic_3TriangulationDSVertexBase_3`,
`AlphaShapeCell_3` and `Periodic_3TriangulationDSCellBase_3` as well as `AlphaShapeCell_3` and `Periodic_3TriangulationDSCellBase_3`
(see example \ref AlphaShape_3DExampleForPeriodicAlphaShapes). (see example: \ref AlphaShape_3DExampleForPeriodicAlphaShapes).
</ul> </ul>
\section Alpha_shapes_3AlphaShape3OrFixedAlphaShape3 Alpha_shape_3 vs. Fixed_alpha_shape_3 \section Alpha_shapes_3AlphaShape3OrFixedAlphaShape3 Alpha_shape_3 vs. Fixed_alpha_shape_3
@ -320,14 +324,15 @@ them with a traits with inexact constructions, the tag
\subsection AlphaShape_3DExampleForPeriodicAlphaShapes Example for Periodic Alpha Shapes \subsection AlphaShape_3DExampleForPeriodicAlphaShapes Example for Periodic Alpha Shapes
The following example shows how to use the periodic Delaunay The following example shows how to use a periodic Delaunay
triangulation (Chapter \ref Chapter_3D_Periodic_Triangulations "3D Periodic Triangulations") as underlying triangulation (Chapter \ref Chapter_3D_Periodic_Triangulations "3D Periodic Triangulations") as underlying
triangulation for the alpha shape computation. triangulation for the alpha shape computation. Usage of a weighted Delaunay periodic
triangulation is presented in the example: \ref Alpha_shapes_3/ex_weighted_periodic_alpha_shapes_3.cpp "ex_weighted_periodic_alpha_shapes_3.cpp".
In order to define the original domain and to benefit from the In order to define the original domain and to benefit from the
built-in heuristic optimizations of the periodic Delaunay built-in heuristic optimizations of the periodic triangulation computation,
triangulation computation, it is recommended to first construct the it is recommended to first construct the triangulation and
triangulation and then construct the alpha shape from it. The alpha then construct the alpha shape from it. The alpha
shape constructor that takes a point range can be used as well but in shape constructor that takes a point range can be used as well but in
this case the original domain cannot be specified and the default unit this case the original domain cannot be specified and the default unit
cube will be chosen and no optimizations will be used. cube will be chosen and no optimizations will be used.

View File

@ -17,8 +17,9 @@ The modifying functions `insert` and `remove` will overwrite
the one inherited from the underlying triangulation class `Dt`. the one inherited from the underlying triangulation class `Dt`.
At the moment, only the static version is implemented. At the moment, only the static version is implemented.
\tparam Dt must be either `Delaunay_triangulation_3`, `Regular_triangulation_3` \tparam Dt must be either `Delaunay_triangulation_3`, `Regular_triangulation_3`,
or `Periodic_3_triangulation_3`. Note that `Dt::Geom_traits`, `Dt::Vertex`, and `Dt::Face` `Periodic_3_Delaunay_triangulation_3` or `Periodic_3_regular_triangulation_3`.
Note that `Dt::Geom_traits`, `Dt::Vertex`, and `Dt::Face`
must be model the concepts `AlphaShapeTraits_3`, must be model the concepts `AlphaShapeTraits_3`,
`AlphaShapeVertex_3` and `AlphaShapeCell_3`, respectively. `AlphaShapeVertex_3` and `AlphaShapeCell_3`, respectively.

View File

@ -12,8 +12,9 @@ represents connectivity and order among its faces. Each
\f$ k\f$-dimensional face of the `Dt` is associated with \f$ k\f$-dimensional face of the `Dt` is associated with
a classification that specifies its status in the alpha complex, alpha being fixed. a classification that specifies its status in the alpha complex, alpha being fixed.
\tparam Dt must be either `Delaunay_triangulation_3`, `Regular_triangulation_3` \tparam Dt must be either `Delaunay_triangulation_3`, `Regular_triangulation_3`,
or `Periodic_3_triangulation_3`. Note that `Dt::Geom_traits`, `Dt::Vertex`, and `Dt::Face` `Periodic_3_Delaunay_triangulation_3` or `Periodic_3_regular_triangulation_3`.
Note that `Dt::Geom_traits`, `Dt::Vertex`, and `Dt::Face`
must be model the concepts `AlphaShapeTraits_3`, must be model the concepts `AlphaShapeTraits_3`,
`AlphaShapeVertex_3` and `AlphaShapeFace_3`, respectively. `AlphaShapeVertex_3` and `AlphaShapeFace_3`, respectively.

View File

@ -5,5 +5,6 @@
\example Alpha_shapes_3/ex_fixed_weighted_alpha_shapes_3.cpp \example Alpha_shapes_3/ex_fixed_weighted_alpha_shapes_3.cpp
\example Alpha_shapes_3/ex_periodic_alpha_shapes_3.cpp \example Alpha_shapes_3/ex_periodic_alpha_shapes_3.cpp
\example Alpha_shapes_3/ex_weighted_alpha_shapes_3.cpp \example Alpha_shapes_3/ex_weighted_alpha_shapes_3.cpp
\example Alpha_shapes_3/ex_weighted_periodic_alpha_shapes_3.cpp
\example Alpha_shapes_2/ex_alpha_projection_traits.cpp \example Alpha_shapes_2/ex_alpha_projection_traits.cpp
*/ */

View File

@ -455,8 +455,9 @@ of a 3D regular triangulation.
\subsection Periodic_3_triangulation_3PeriodicAlphaShapes Periodic Alpha Shapes \subsection Periodic_3_triangulation_3PeriodicAlphaShapes Periodic Alpha Shapes
It is possible to use the class `Periodic_3_Delaunay_triangulation_3` It is possible to use the classes `Periodic_3_Delaunay_triangulation_3`
as underlying triangulation for computing alpha shapes. For an example see and `Periodic_3_regular_triangulation_3` as underlying triangulations
to compute alpha shapes. Examples of usage can be found in
Section \ref AlphaShape_3DExampleForPeriodicAlphaShapes of the chapter on Section \ref AlphaShape_3DExampleForPeriodicAlphaShapes of the chapter on
3D alpha shapes. 3D alpha shapes.