mirror of https://github.com/CGAL/cgal
finished
This commit is contained in:
parent
92e32a4f8a
commit
fa5b32b8de
|
|
@ -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<Dt>` represents the family of
|
||||
The class `Alpha_shape_2<Dt>` represents the family of
|
||||
\f$ \alpha\f$-shapes of points in a plane for <I>all</I> 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<Dt>` provides functions to set and
|
||||
The class `Alpha_shape_2<Dt>` 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<Gt>`
|
||||
and `CGAL::Alpha_shape_face_base_2<Gt>`.
|
||||
by default the classes `Alpha_shape_vertex_base_2<Gt>`
|
||||
and `Alpha_shape_face_base_2<Gt>`.
|
||||
|
||||
# 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<Gt, Dv>` and `CGAL::Alpha_shape_face_base_2<Gt,Df>`.
|
||||
As default vertex and face type they use `CGAL::Triangulation_vertex_base_2<Gt>`
|
||||
and `CGAL::Triangulation_face_base_2<Gt>` respectively.
|
||||
namely `Alpha_shape_vertex_base_2<Gt, Dv>` and `Alpha_shape_face_base_2<Gt,Df>`.
|
||||
As default vertex and face type they use `Triangulation_vertex_base_2<Gt>`
|
||||
and `Triangulation_face_base_2<Gt>` respectively.
|
||||
|
||||
The following code snippet shows how to obtain a basic
|
||||
alpha shape type.
|
||||
|
|
@ -190,7 +190,7 @@ typedef CGAL::Alpha_shape_2<Ht> 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<Gt>`.
|
||||
face class, namely `Regular_triangulation_face_base_2<Gt>`.
|
||||
Note that there is no special weighted alpha shape class.
|
||||
|
||||
\code{.cpp}
|
||||
|
|
|
|||
|
|
@ -19,13 +19,13 @@ for <I>weighted</I> 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.
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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 <I>basic alpha shape</I> (cf. \ref I1_SectClassicAS2D ) is associated with the Delaunay triangulation
|
||||
(cf. \ref Section_2D_Triangulations_Delaunay ).
|
||||
The <I>basic alpha shape</I> (cf. \ref I1_SectClassicAS2D) is associated with the Delaunay triangulation
|
||||
(cf. Section \ref Section_2D_Triangulations_Delaunay "Delaunay Triangulations").
|
||||
The <I>weighted alpha shape</I> (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
|
||||
|
|
|
|||
Loading…
Reference in New Issue