From 2364a551c4387db219af4f3b7edc9cfa6623fbee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Wed, 14 Jun 2017 17:33:57 +0200 Subject: [PATCH] Updated documentation with changes from 19ae790 --- .../doc/Alpha_shapes_2/CGAL/Alpha_shape_2.h | 27 ++++++++++--------- .../doc/Alpha_shapes_2/examples.txt | 1 + .../doc/Alpha_shapes_3/CGAL/Alpha_shape_3.h | 21 ++++++++------- Alpha_shapes_3/doc/Alpha_shapes_3/Doxyfile.in | 3 +++ .../doc/Alpha_shapes_3/dependencies | 1 + .../doc/Alpha_shapes_3/examples.txt | 1 + 6 files changed, 31 insertions(+), 23 deletions(-) diff --git a/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_2.h b/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_2.h index 63eca6b0ea5..c3ae232cc5a 100644 --- a/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_2.h +++ b/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_2.h @@ -28,21 +28,22 @@ Note that `Dt::Geom_traits`, `Dt::Vertex`, and `Dt::Face` must be model the conc \link Tag_true `Tag_true`\endlink, triggers exact comparisons between alpha values. This is useful when the underlying triangulation is instantiated with an exact predicates inexact constructions kernel. By default the `ExactAlphaComparisonTag` is set to \link Tag_false `Tag_false`\endlink as it induces a small -overhead. - -\warning The tag `ExactAlphaComparisonTag` is currently ignored (meaning that the code will +overhead. Note that the tag `ExactAlphaComparisonTag` is currently ignored (meaning that the code will behave as if `ExactAlphaComparisonTag` were set to \link Tag_false `Tag_false`\endlink) -if either condition is met: - - `Dt::Geom_traits::FT` is not a floating point number type. Indeed, this strategy - does not make sense if the traits class already provides exact constructions. +if `Dt::Geom_traits::FT` is not a floating point number type as this strategy +does not make sense if the traits class already provides exact constructions. - - the traits defines a point type that is not implicitely convertible to the two-dimensional point type - of a CGAL kernel. This is because we internally use the class `Cartesian_converter` to switch - between the traits class and exact CGAL kernels. For example, `ExactAlphaComparisonTag` - will be ignored if the traits class `CGAL::Projection_traits_xy_3` is used since - this traits class camouflages a `CGAL::Point_3` as a `%Point_2` and `Cartesian_converter` - does not know how to convert from the camouflaged `CGAL::Point_3` to the two-dimensional - point of an exact kernel. +\warning When the tag `ExactAlphaComparisonTag` is set to \link Tag_true `Tag_true`\endlink, +the class `Cartesian_converter` is used internally to switch between the traits class +and exact CGAL kernels. `Cartesian_converter` must thus provide the necessary functor +to convert a point of the traits class to a point of an exact kernel. However, this +functor is not necessarily provided by `Cartesian_converter`. For example +when using the traits class `CGAL::Projection_traits_xy_3`, a `CGAL::Point_3` +is camouflaged as a `%Point_2` and the basic `Cartesian_converter` does not know +how to convert from the camouflaged `CGAL::Point_3` to the two-dimensional point +of an exact kernel. In this case, a partial specialization of `Cartesian_converter` +must be provided by the user. An example of such specialization is given in the example +\ref Alpha_shapes_2/ex_alpha_projection_traits.cpp "ex_alpha_projection_traits.cpp". \cgalHeading{I/O} diff --git a/Alpha_shapes_2/doc/Alpha_shapes_2/examples.txt b/Alpha_shapes_2/doc/Alpha_shapes_2/examples.txt index 7c8defc5dcb..5e805d4b94a 100644 --- a/Alpha_shapes_2/doc/Alpha_shapes_2/examples.txt +++ b/Alpha_shapes_2/doc/Alpha_shapes_2/examples.txt @@ -1,4 +1,5 @@ /*! \example Alpha_shapes_2/ex_alpha_shapes_2.cpp \example Alpha_shapes_2/ex_weighted_alpha_shapes_2.cpp +\example Alpha_shapes_2/ex_alpha_projection_traits.cpp */ diff --git a/Alpha_shapes_3/doc/Alpha_shapes_3/CGAL/Alpha_shape_3.h b/Alpha_shapes_3/doc/Alpha_shapes_3/CGAL/Alpha_shape_3.h index bcca03095ae..bbabe28f92b 100644 --- a/Alpha_shapes_3/doc/Alpha_shapes_3/CGAL/Alpha_shape_3.h +++ b/Alpha_shapes_3/doc/Alpha_shapes_3/CGAL/Alpha_shape_3.h @@ -23,20 +23,21 @@ must be model the concepts `AlphaShapeTraits_3`, \link Tag_true `Tag_true`\endlink, triggers exact comparisons between alpha values. This is useful when the Delaunay triangulation is instantiated with an exact predicates inexact constructions kernel. By default the `ExactAlphaComparisonTag` is set to \link Tag_false `Tag_false`\endlink as it induces a small -overhead. - -\warning The tag `ExactAlphaComparisonTag` is currently ignored (meaning that the code will +overhead. Note that the tag `ExactAlphaComparisonTag` is currently ignored (meaning that the code will behave as if `ExactAlphaComparisonTag` were set to \link Tag_false `Tag_false`\endlink) -if either condition is met: - - `Dt::Geom_traits::FT` is not a floating point number type. Indeed, this strategy - does not make sense if the traits class already provides exact constructions. +if `Dt::Geom_traits::FT` is not a floating point number type as this strategy +does not make sense if the traits class already provides exact constructions. - - the traits defines a point type that is not implicitely convertible to the three-dimensional point type - of a CGAL kernel. This is because we internally use the class `Cartesian_converter` to switch - between the traits class and exact CGAL kernels. +\warning When the tag `ExactAlphaComparisonTag` is set to \link Tag_true `Tag_true`\endlink, +the class `Cartesian_converter` is used internally to switch between the traits class +and exact CGAL kernels. `Cartesian_converter` must thus provide the necessary functor +to convert a point of the traits class to a point of an exact kernel. However, this +functor is not necessarily provided by `Cartesian_converter`. In this case, a partial specialization of `Cartesian_converter` +must be provided by the user. An example of such specialization is given in the +two-dimensional Alpha Shapes example \ref Alpha_shapes_2/ex_alpha_projection_traits.cpp "ex_alpha_projection_traits.cpp". Note that this class is used for basic, weighted, -and periodicAlpha Shapes. +and periodic Alpha Shapes. \cgalHeading{I/O} diff --git a/Alpha_shapes_3/doc/Alpha_shapes_3/Doxyfile.in b/Alpha_shapes_3/doc/Alpha_shapes_3/Doxyfile.in index 7ceab39329b..6fe61e68211 100644 --- a/Alpha_shapes_3/doc/Alpha_shapes_3/Doxyfile.in +++ b/Alpha_shapes_3/doc/Alpha_shapes_3/Doxyfile.in @@ -1,3 +1,6 @@ @INCLUDE = ${CGAL_DOC_PACKAGE_DEFAULTS} PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - 3D Alpha Shapes" + +EXAMPLE_PATH = ${CGAL_Alpha_shapes_2_EXAMPLE_DIR} \ + ${CGAL_Alpha_shapes_3_EXAMPLE_DIR} diff --git a/Alpha_shapes_3/doc/Alpha_shapes_3/dependencies b/Alpha_shapes_3/doc/Alpha_shapes_3/dependencies index 8a33e3f7934..4fb2fed26dd 100644 --- a/Alpha_shapes_3/doc/Alpha_shapes_3/dependencies +++ b/Alpha_shapes_3/doc/Alpha_shapes_3/dependencies @@ -8,3 +8,4 @@ Triangulation_3 Geomview Periodic_3_triangulation_3 Number_types +Alpha_shapes_2 diff --git a/Alpha_shapes_3/doc/Alpha_shapes_3/examples.txt b/Alpha_shapes_3/doc/Alpha_shapes_3/examples.txt index b009270b5ec..ab726f84c6d 100644 --- a/Alpha_shapes_3/doc/Alpha_shapes_3/examples.txt +++ b/Alpha_shapes_3/doc/Alpha_shapes_3/examples.txt @@ -5,4 +5,5 @@ \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_weighted_alpha_shapes_3.cpp +\example Alpha_shapes_2/ex_alpha_projection_traits.cpp */