diff --git a/Alpha_shapes_2/doc/Alpha_shapes_2/Alpha_shapes_2.txt b/Alpha_shapes_2/doc/Alpha_shapes_2/Alpha_shapes_2.txt index 7a1b3a8607c..364f09d7bbd 100644 --- a/Alpha_shapes_2/doc/Alpha_shapes_2/Alpha_shapes_2.txt +++ b/Alpha_shapes_2/doc/Alpha_shapes_2/Alpha_shapes_2.txt @@ -40,7 +40,7 @@ that the \f$ \alpha\f$-shape degenerates to the point-set \f$ S\f$ for will prevent us even from moving the spoon between two points since it's way too large. So we will never spoon up ice-cream lying in the inside of the convex hull of \f$ S\f$, and hence the \f$ \alpha\f$-shape for -\f$ \alpha \rightarrow \infty\f$ is the convex hull of \f$ S\f$.\footnote{ice cream, ice cream!!! The wording of this introductory paragraphs is borrowed from Kaspar Fischer's " Introduction to Alpha Shapes" which can be found at http://people.inf.ethz.ch/fischerk/pubs/as.pdf. The picture has been taken from Walter Luh's homepage at http://www.stanford.edu/&wtilde;luh/cs448b/alphashapes.html.} +\f$ \alpha \rightarrow \infty\f$ is the convex hull of \f$ S\f$. # Definitions # {#Alpha_shapes_2Definitions} @@ -77,7 +77,7 @@ finite number of different \f$ \alpha\f$-shapes and corresponding \section I1_SectAlpha_Shape_2 Functionality -The class `CGAL::Alpha_shape_2
` represents the family of +The class `Alpha_shape_2
` represents the family of \f$ \alpha\f$-shapes of points in a plane for all positive \f$ \alpha\f$. It maintains the underlying triangulation `Dt` which represents connectivity and order among squared radius of its faces. Each @@ -86,7 +86,7 @@ that specifies for which values of \f$ \alpha\f$ the face belongs to the \f$ \alpha\f$-shape. There are links between the intervals and the \f$ k\f$-dimensional faces of the triangulation. -The class `CGAL::Alpha_shape_2
` provides functions to set and +The class `Alpha_shape_2
` provides functions to set and get the current \f$ \alpha\f$-value, as well as an iterator that enumerates the \f$ \alpha\f$-values where the \f$ \alpha\f$-shape changes. @@ -114,23 +114,23 @@ points cannot be inserted or removed. We currently do not specify concepts for the underlying triangulation type. Models that work for a basic alpha-shape are the classes -`CGAL::Delaunay_triangulation_2` and -`CGAL::Triangulation_hierarchy_2` templated with a Delaunay +`Delaunay_triangulation_2` and +`Triangulation_hierarchy_2` templated with a Delaunay triangulation. A model that works for a weighted alpha-shape is -the class `CGAL::Regular_triangulation_2`. +the class `Regular_triangulation_2`. The triangulation needs a geometric traits class as argument. The requirements of this class are described in the -concept `CGAL::AlphaShapeTraits_2` for which +concept `AlphaShapeTraits_2` for which the \cgal kernels -and `CGAL::Weighted_alpha_shape_euclidean_traits_2` are models. +and `Weighted_alpha_shape_euclidean_traits_2` are models. There are no requirements on the triangulation data structure. However it must be parameterized with vertex and face classes, which are model of the concepts `AlphaShapeVertex_2` and `AlphaShapeFace_2`, -by default the classes `CGAL::Alpha_shape_vertex_base_2` -and `CGAL::Alpha_shape_face_base_2`. +by default the classes `Alpha_shape_vertex_base_2` +and `Alpha_shape_face_base_2`. # Examples # {#Alpha_shapes_2Examples} @@ -144,9 +144,9 @@ For the geometric traits class we can use a \cgal kernel. For the triangulation data structure traits, we have to choose the vertex and face classes needed for alpha shapes, -namely `CGAL::Alpha_shape_vertex_base_2` and `CGAL::Alpha_shape_face_base_2`. -As default vertex and face type they use `CGAL::Triangulation_vertex_base_2` -and `CGAL::Triangulation_face_base_2` respectively. +namely `Alpha_shape_vertex_base_2` and `Alpha_shape_face_base_2`. +As default vertex and face type they use `Triangulation_vertex_base_2` +and `Triangulation_face_base_2` respectively. The following code snippet shows how to obtain a basic alpha shape type. @@ -190,7 +190,7 @@ typedef CGAL::Alpha_shape_2 Alpha_shape_2; A weighted alpha shape, needs a regular triangulation as underlying triangulation `Dt`, and it needs a particular -face class, namely `CGAL::Regular_triangulation_face_base_2`. +face class, namely `Regular_triangulation_face_base_2`. Note that there is no special weighted alpha shape class. \code{.cpp} 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 b019db776d3..77a8ead91ff 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 @@ -19,13 +19,13 @@ for weighted Alpha Shapes. ### Parameters ### The template parameter `Dt` has to be either `Delaunay_triangulation_2` or `Regular_triangulation_2`. -Note that `DT::Geom_traits`, `DT::Vertex` and `DT::Face` must model the concepts `AlphaShapeTraits_2`, -`AlphaShapeVertex_2` and `AlphaShapeFace_2` respectively. +Note that `Dt::Geom_traits`, `Dt::Vertex` and `Dt::Face` must be model the concepts `AlphaShapeTraits_2`, +`AlphaShapeVertex_2` and `AlphaShapeFace_2`, respectively. The template parameter `ExactAlphaComparisonTag` is a tag that, when set to -`CGAL::Tag_true`, triggers exact comparisons between alpha values. This is useful +\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 `CGAL::Tag_false` as it induces a small +kernel. By default the `ExactAlphaComparisonTag` is set to \link Tag_false `Tag_false`\endlink as it induces a small overhead. Note that since such a strategy does not make sense if used together with a traits class with exact constructions, the tag `ExactAlphaComparisonTag` is not taken into account if `Dt::Geom_traits::FT` is not a floating point number type. @@ -35,7 +35,7 @@ Inherits from `Dt`. This class is the underlying triangulation class. -The modifying functions `insert` and `remove` will overwrite +The modifying functions `Alpha_shape_2::insert()` and `Alpha_shape_2::remove()` will overwrite the inherited functions. At the moment, only the static version is implemented. ### I/O ### @@ -53,12 +53,12 @@ The cross links between the intervals and the \f$ k\f$-dimensional faces of the triangulation are realized using methods in the \f$ k\f$-dimensional faces themselves. -`A.alpha_find` uses linear search, while -`A.alpha_lower_bound` and `A.alpha_upper_bound` +`Alpha_shape_2::alpha_find()` uses linear search, while +`Alpha_shape_2::alpha_lower_bound()` and `Alpha_shape_2::alpha_upper_bound()` use binary search. -`A.number_of_solid_components` performs a graph traversal and takes time +`Alpha_shape_2::number_of_solid_components` performs a graph traversal and takes time linear in the number of faces of the underlying triangulation. -`A.find_optimal_alpha` uses binary search and takes time +`Alpha_shape_2::find_optimal_alpha` uses binary search and takes time \f$ O(n \log n)\f$, where \f$ n\f$ is the number of points. */ diff --git a/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_face_base_2.h b/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_face_base_2.h index 09bb9e9d2f9..b77d1819f8a 100644 --- a/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_face_base_2.h +++ b/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_face_base_2.h @@ -6,17 +6,15 @@ namespace CGAL { The class `Alpha_shape_face_base_2` is the default model for the concept `AlphaShapeFace_2`. -### Parameters ### +\tparam Traits has to be a model of `AlphaShapeTraits_2`. -The template parameter `Traits` has to be a model of `AlphaShapeTraits_2`. - -The template parameter `Fb` has to be a model of `TriangulationFaceBase_2` (or `RegularTriangulationFaceBase_2`) +\tparam Fb has to be a model of `TriangulationFaceBase_2` (or `RegularTriangulationFaceBase_2`) if `Alpha_shape_face_base_2` is intended to be used with an alpha-shape class based on a `Delaunay_triangulation_2` (or a `Regular_triangulation_2`). -The template parameter `ExactAlphaComparisonTag` is a tag that, when set to -`CGAL::Tag_true`, triggers exact comparisons between alpha values. See the description -provided in the documentation of `Alpha_shape_2` for more details. The default value is `CGAL::Tag_false`. +\tparam ExactAlphaComparisonTag is a tag that, when set to +\link Tag_true `Tag_true`\endlink, triggers exact comparisons between alpha values. See the description +provided in the documentation of `Alpha_shape_2` for more details. The default value is \link Tag_false `Tag_false`\endlink. \models ::AlphaShapeFace_2 */ diff --git a/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_vertex_base_2.h b/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_vertex_base_2.h index 115d1972c31..6da2648dff0 100644 --- a/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_vertex_base_2.h +++ b/Alpha_shapes_2/doc/Alpha_shapes_2/CGAL/Alpha_shape_vertex_base_2.h @@ -7,17 +7,15 @@ namespace CGAL { The class `Alpha_shape_vertex_base_2` is the default model for the concept `AlphaShapeVertex_2`. -### Parameters ### +\tparam Traits has to be a model of `AlphaShapeTraits_2`. -The template parameter `Traits` has to be a model of `AlphaShapeTraits_2`. - -The template parameter `Vb` has to be a model of `TriangulationVertexBase_2` (or `RegularTriangulationVertexBase_2`) +\tparam Vb has to be a model of `TriangulationVertexBase_2` (or `RegularTriangulationVertexBase_2`) if `Alpha_shape_vertex_base_2` is intended to be used with an alpha-shape class based on a `Delaunay_triangulation_2` (or a `Regular_triangulation_2`). -The template parameter `ExactAlphaComparisonTag` is a tag that, when set to -`CGAL::Tag_true`, triggers exact comparisons between alpha values. See the description -provided in the documentation of `Alpha_shape_2` for more details. The default value is `CGAL::Tag_false`. +\tparam ExactAlphaComparisonTag is a tag that, when set to +\link Tag_true `Tag_true`\endlink, triggers exact comparisons between alpha values. See the description +provided in the documentation of `Alpha_shape_2` for more details. The default value is \link Tag_false `Tag_false`\endlink. \models ::AlphaShapeVertex_2 */ diff --git a/Alpha_shapes_2/doc/Alpha_shapes_2/PackageDescription.txt b/Alpha_shapes_2/doc/Alpha_shapes_2/PackageDescription.txt index 70019fa1d0e..7c42c870339 100644 --- a/Alpha_shapes_2/doc/Alpha_shapes_2/PackageDescription.txt +++ b/Alpha_shapes_2/doc/Alpha_shapes_2/PackageDescription.txt @@ -4,7 +4,7 @@ /*! \addtogroup PkgAlphaShape2 -\todo check generated documentation + \PkgDescriptionBegin{2D Alpha Shapes,PkgAlphaShape2Summary} \PkgPicture{alpha-detail.png} \PkgAuthors{Tran Kai Frank Da} @@ -31,10 +31,10 @@ triangulation and the other on its generalization, the regular triangulation, replacing the natural distance by the power to weighted points. The metric used determines an underlying triangulation of the alpha shape and thus, the version computed. -The basic alpha shape (cf. \ref I1_SectClassicAS2D ) is associated with the Delaunay triangulation -(cf. \ref Section_2D_Triangulations_Delaunay ). +The basic alpha shape (cf. \ref I1_SectClassicAS2D) is associated with the Delaunay triangulation +(cf. Section \ref Section_2D_Triangulations_Delaunay "Delaunay Triangulations"). The weighted alpha shape (cf. \ref I1_SectWeightedAS2D ) is associated with the regular triangulation -(cf. \ref Section_2D_Triangulations_Regular ). +(cf. Section \ref Section_2D_Triangulations_Regular "Regular Triangulations"). There is a close connection between alpha shapes and the underlying triangulations. More precisely, the \f$ \alpha\f$-complex of \f$ S\f$ is a