The class Alpha_shape_2<Dt> represents the family of -shapes of points in a plane for all positive . It maintains the underlying triangulation Dt which represents connectivity and order among its faces. Each -dimensional face of the Dt is associated with an interval that specifies for which values of the face belongs to the -shape. There are links between the intervals and the -dimensional faces of the triangulation.
Note that this class is at the same time used for basic and for weighted Alpha Shapes .
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 for computation. |
| |
A bidirectional and non-mutable iterator that allow to traverse
the increasing sequence of different -values. Precondition: Its value_type is FT
| |
| |
A bidirectional and non-mutable iterator that allow to traverse
the vertices which belongs to the -shape for the current . Precondition: Its value_type is Dt::Vertex_handle
| |
| |
A bidirectional and non-mutable iterator that allow to traverse
the edges which belongs to the -shape for the current . Precondition: Its value_type is Dt::Edge.
| |
| |
Distinguishes the different cases for classifying a -dimensional face
of the underlying triangulation of the -shape. EXTERIOR if the face does not belong to the -complex. SINGULAR if the face belongs to the boundary of the -shape, but is not incident to any 2-dimensional face of the -complex REGULAR if the face belongs to the boundary of the -shape and is incident to a 2-dimensional face of the -complex INTERIOR if the face belongs to the -complex, but does not belong to the boundary of the -shape.
| |
| |
In general, an alpha shape can be disconnected and contain many singular edges
or vertices. Its regularized version is formed by the set of regular edges
and their vertices.
|
| |||
Introduces an empty -shape A for a positive -value
alpha. Precondition: alpha .
| |||
| |||
| |||
Initializes the family of alpha-shapes with the points in the range
first, last and
introduces an -shape A for a positive -value
alpha. Precondition: The value_type of first and last is Point. alpha .
|
| ||||
|
| |||
Initialize the family of alpha-shapes with the points in the range
first, last. Returns the number of
inserted points. If the function is applied to an non-empty family of alpha-shape, it is cleared before initialization. Precondition: The value_type of first and last is Point. | ||||
|
| Clears the structure. | ||
|
| |||
Sets the -value to alpha.
Returns the previous -value. Precondition: alpha . | ||||
|
| |||
Returns the current -value. | ||||
|
| |||
Returns the -th alpha-value, sorted in an increasing order. Precondition: n number of alphas. | ||||
|
| |||
Returns the number of different alpha-values. | ||||
|
| |||
Sets A to its general or regularized version. Returns the previous mode. | ||||
|
| Returns whether A is general or regularized. | ||
| ||||
| ||||
Starts at an arbitrary finite vertex which belongs to the -shape for the current . | ||||
| ||||
| ||||
Past-the-end iterator. | ||||
| ||||
| ||||
Starts at an arbitrary finite edge which belongs to the -shape for the current . In regularised mode, edges are represented as a pair (f,i), where f is an interior face of the -shape. | ||||
| ||||
| ||||
Past-the-end iterator. |
| ||||
| ||||
Locates a point p in the underlying triangulation and Classifies the associated k-face with respect to A. | ||||
| ||||
| ||||
Classifies the face f of the underlying triangulation with respect to A. | ||||
| ||||
| ||||
Classifies the edge e of the underlying triangulation with respect to A. | ||||
| ||||
| ||||
Classifies the edge of the face f opposite to the vertex with index i of the underlying triangulation with respect to A. | ||||
| ||||
| ||||
Classifies the vertex v of the underlying triangulation with respect to A. |
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 -value into the stream os. Precondition: The insert operator must be defined for Point. |
#include <CGAL/IO/Window_stream.h>
#include <CGAL/IO/alpha_shapes_2_window_stream.h>
|
| |
Inserts the alpha shape A for the current -value into the window stream W. Precondition: The insert operator must be defined for Point and Segment. |
The cross links between the intervals and the -dimensional faces of the triangulation are realized using methods in the -dimensional faces themselves.
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 faces of the underlying triangulation. A.find optimal alpha uses binary search and takes time n log n , where is the number of points.