The class Alpha_shape_3<Dt> represents the family of alpha shapes of points in the 3D space for all positive α. It maintains an underlying triangulation of the class Dt which represents connectivity and order among its faces. Each k-dimensional face of the Dt is associated with an interval that specifies for which values of α the face belongs to the alpha shape.
Note that this class is at the same time used for basic and for weighted Alpha Shapes .
#include <CGAL/Alpha_shape_3.h>
Dt
This class is the underlying triangulation class.
The modifying functions insert and remove will overwrite the inherited functions. At the moment, only the static version is implemented.
| |
the alpha shape traits type.
|
|
| the number type of alpha values. |
| |||
The size type.
| |||
| |||
A bidirectional and non-mutable iterator that allow to traverse
the increasing sequence of different alpha values.
| |||
| |||
In GENERAL mode, the alpha complex can have singular faces,
i. e. faces of dimension k, for k=(0,1,2)
that are not subfaces of a k+1 face of the complex.
In REGULARIZED mode, the complex is regularized, that is
singular faces are dropped and the alpha complex
includes only a subset of the tetrahedral cells
of the triangulation and the subfaces of those cells.
| |||
| |||
Enum to classify the faces of the underlying
triangulation with respect to the alpha shape. In GENERAL mode, for k=(0,1,2), each k-dimensional simplex of the triangulation can be classified as EXTERIOR, SINGULAR, REGULAR or INTERIOR. In GENERAL mode a k simplex is REGULAR if it is on the boundary f the alpha complex and belongs to a k+1 simplex in this complex and it is SINGULAR if it is a boundary simplex that is not included in a k+1 simplex of the complex. In REGULARIZED mode, for k=(0,1,2) each k-dimensional simplex of the triangulation can be classified as EXTERIOR, REGULAR or INTERIOR, i.e. there is no singular faces. A k simplex is REGULAR if it is on the boundary of alpha complex and belongs to a tetrahedral cell of the complex.
|
| |||
Introduces an empty alpha shape data structure
A for and set the
current alpha value to alpha and the mode to m.
| |||
| |||
Build an alpha shape of mode m
from the triangulation dt.
Be careful that this operation destroy the triangulation.
| |||
| |||
| |||
Build an alpha shape data structure in mode m
for the points in the range
[.first, last.) and
set the current alpha value to alpha.
|
| ||||
|
| |||
Initialize the alpha shape data structure
for points in the range
[.first, last.).
Returns the number of data points inserted in the underlying
triangulation. If the function is applied to an non-empty alpha shape data structure, it is cleared before initialization.
| ||||
|
| Clears the structure. | ||
|
|
Sets the α-value to alpha.
Returns the previous α-value.
| ||
|
| |||
Sets A in GENERAL or REGULARIZED. Returns the previous mode. Changing the mode of an alpha shape data structure entails a partial re-computation of the data structure. |
|
| Returns whether A is general or regularized. | ||
|
| Returns the current α-value. | ||
|
|
Returns the n-th alpha-value, sorted in an increasing order.
| ||
|
| Returns the number of different alpha-values. | ||
|
| |||
Locates a point p in the underlying triangulation and Classifies the associated k-face with respect to alpha. | ||||
|
| |||
Classifies the cell f of the underlying triangulation with respect to alpha. | ||||
|
| |||
Classifies the facet e of the underlying triangulation with respect to alpha. | ||||
|
| |||
Classifies the facet of the cell f opposite to the vertex with index i of the underlying triangulation with respect to alpha. | ||||
|
| |||
Classifies the edge e with respect to alpha . | ||||
|
| |||
Classifies the vertex v of the underlying triangulation with respect to alpha. | ||||
| ||||
|
| |||
Write the cells which are of type type for the alpha value alpha to the sequence pointed to by the output iterator it. Return past the end of the output sequence. | ||||
| ||||
|
| |||
Write the facets which are of type type for the alpha value alpha to the sequence pointed to by the output iterator it. Return past the end of the output sequence. | ||||
| ||||
|
| |||
Write the edges which are of type type for the alpha value alpha to the sequence pointed to by the output iterator it. Return past the end of the output sequence. | ||||
| ||||
|
| |||
Write the vertices which are of type type for the alpha value alpha to the sequence pointed to by the output iterator it. Return past the end of the output sequence. | ||||
| ||||
|
| Output all the faces of the triangulation in increasing order of the alpha value for which they appear in the alpha complex. In case of equal alpha value lower dimensional faces are output first. The value type of the OutputIterator has to be a CGAL::Object |
The I/O operators are defined for iostream, and for the window stream provided by Cgal. The format for the iostream is an internal format.
#include <CGAL/IO/io.h>
|
|
Inserts the alpha shape A for the current alpha value into the stream os.
|
#include <CGAL/IO/Geomview_stream.h>
#include <CGAL/IO/alpha_shape_geomview_ostream_3.h>
|
|
Inserts the alpha shape A for the current alpha value into the Geomview stream W.
|
In GENERAL mode, the alpha intervals of each triangulation face is computed and stored at initialization time. In REGULARIZED mode, the alpha shape intervals of edges are not stored nor computed at initialization. Edges are simply classified on the fly upon request. This allows to have much faster building of alpha shapes in REGULARIZED mode.
A.alpha find uses linear search, while A.alpha lower bound and A.alpha upper bound use binary search. A.number of solid components performs a graph traversal and takes time linear in the number of cells of the underlying triangulation. A.find of optimal alpha uses binary search and takes time O( n log n ), where n is the number of points.