CGAL 4.14 - 3D Alpha Shapes
CGAL::Fixed_alpha_shape_3< Dt > Class Template Reference

#include <CGAL/Fixed_alpha_shape_3.h>

Dt.

## Definition

The class Fixed_alpha_shape_3 represents one (fixed) alpha shape of points in the 3D space for a real $$\alpha$$.

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 a classification that specifies its status in the alpha complex, alpha being fixed.

Template Parameters
 Dt must be either Delaunay_triangulation_3, Regular_triangulation_3, Periodic_3_Delaunay_triangulation_3 or Periodic_3_regular_triangulation_3. Note that Dt::Geom_traits, Dt::Vertex, and Dt::Face must be model the concepts AlphaShapeTraits_3, AlphaShapeVertex_3 and AlphaShapeFace_3, respectively.

Note that this class is used for basic, weighted, and periodicAlpha Shapes.

The modifying functions insert and remove will overwrite the one inherited from the underlying triangulation class Dt. At the moment, only the static version is implemented.

I/O

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.

Examples:
Alpha_shapes_3/ex_fixed_weighted_alpha_shapes_3.cpp.

## Related Functions

(Note that these are not member functions.)

ostream & operator<< (ostream &os, const Fixed_alpha_shape_3< Dt > &A)
Inserts the fixed alpha shape A into the stream os. More...

## Types

enum  Classification_type { EXTERIOR, SINGULAR, REGULAR, INTERIOR }
Enum to classify the simplices of the underlying triangulation with respect to a given alpha value. More...

typedef unspecified_type Gt
the alpha shape traits type. More...

typedef Gt::FT FT
the number type of alpha.

## Creation

Fixed_alpha_shape_3 (FT alpha=0)
Introduces an empty fixed alpha shape and sets the alpha value to alpha.

Fixed_alpha_shape_3 (Dt &dt, FT alpha=0)
Builds a fixed alpha shape from the triangulation dt, and sets the alpha value to alpha. More...

template<class InputIterator >
Fixed_alpha_shape_3 (InputIterator first, InputIterator last, const FT &alpha=0)
Builds a fixed alpha shape for the points in the range [first,last) and sets the alpha value to alpha. More...

## Modifiers

Vertex_handle insert (Point p, Cell_handle start=Cell_handle())
Inserts the point p in the underlying triangulation and returns the corresponding vertex. More...

void remove (Vertex_handle v)
Removes the vertex v from the underlying triangulation. More...

void clear ()
Clears the structure.

## Query Functions

const FTget_alpha (void) const
Returns the $$\alpha$$-value.

Classification_type classify (Cell_handle c) const
Classifies the cell c of the underlying triangulation in the alpha complex.

Classification_type classify (Facet f) const
Classifies the facet f of the underlying triangulation in the alpha complex.

Classification_type classify (Cell_handle f, int i) const
Classifies the facet of the cell f opposite to the vertex with index i of the underlying triangulation in the alpha complex.

Classification_type classify (const Edge &e) const
Classifies the edge e of the underlying triangulation in the alpha complex.

Classification_type classify (Vertex_handle v) const
Classifies the vertex v of the underlying triangulation in the alpha complex.

template<class OutputIterator >
OutputIterator get_alpha_shape_cells (OutputIterator it, Classification_type type)
Writes the cells which are of type type in the alpha complex to the sequence pointed to by the output iterator it. More...

template<class OutputIterator >
OutputIterator get_alpha_shape_facets (OutputIterator it, Classification_type type)
Writes the facets which are of type type in the alpha complex to the sequence pointed to by the output iterator it. More...

template<class OutputIterator >
OutputIterator get_alpha_shape_edges (OutputIterator it, Classification_type type)
Writes the edges which are of type type in the alpha complex to the sequence pointed to by the output iterator it. More...

template<class OutputIterator >
OutputIterator get_alpha_shape_vertices (OutputIterator it, Classification_type type)
Writes the vertices which are of type type in the alpha complex to the sequence pointed to by the output iterator it. More...

## ◆ Gt

template<typename Dt >
 typedef unspecified_type CGAL::Fixed_alpha_shape_3< Dt >::Gt

the alpha shape traits type.

It has to derive from a triangulation traits class. For example Dt::Point is a Point class.

## ◆ Classification_type

template<typename Dt >

Enum to classify the simplices of the underlying triangulation with respect to a given alpha value.

Each k-dimensional simplex of the triangulation can be classified as EXTERIOR, SINGULAR, REGULAR or INTERIOR. A $$k$$ simplex is REGULAR if it is on the boundary of 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.

Enumerator
EXTERIOR
SINGULAR
REGULAR
INTERIOR

## ◆ Fixed_alpha_shape_3() [1/2]

template<typename Dt >
 CGAL::Fixed_alpha_shape_3< Dt >::Fixed_alpha_shape_3 ( Dt & dt, FT alpha = 0 )

Builds a fixed alpha shape from the triangulation dt, and sets the alpha value to alpha.

Attention
This operation destroys the triangulation.

## ◆ Fixed_alpha_shape_3() [2/2]

template<typename Dt >
template<class InputIterator >
 CGAL::Fixed_alpha_shape_3< Dt >::Fixed_alpha_shape_3 ( InputIterator first, InputIterator last, const FT & alpha = 0 )

Builds a fixed alpha shape for the points in the range [first,last) and sets the alpha value to alpha.

Template Parameters
 InputIterator must be an input iterator with value type Point (the type point of the underlying triangulation.)

## ◆ get_alpha_shape_cells()

template<typename Dt >
template<class OutputIterator >
 OutputIterator CGAL::Fixed_alpha_shape_3< Dt >::get_alpha_shape_cells ( OutputIterator it, Classification_type type )

Writes the cells which are of type type in the alpha complex to the sequence pointed to by the output iterator it.

Returns past the end of the output sequence.

## ◆ get_alpha_shape_edges()

template<typename Dt >
template<class OutputIterator >
 OutputIterator CGAL::Fixed_alpha_shape_3< Dt >::get_alpha_shape_edges ( OutputIterator it, Classification_type type )

Writes the edges which are of type type in the alpha complex to the sequence pointed to by the output iterator it.

Returns past the end of the output sequence.

## ◆ get_alpha_shape_facets()

template<typename Dt >
template<class OutputIterator >
 OutputIterator CGAL::Fixed_alpha_shape_3< Dt >::get_alpha_shape_facets ( OutputIterator it, Classification_type type )

Writes the facets which are of type type in the alpha complex to the sequence pointed to by the output iterator it.

Returns past the end of the output sequence.

## ◆ get_alpha_shape_vertices()

template<typename Dt >
template<class OutputIterator >
 OutputIterator CGAL::Fixed_alpha_shape_3< Dt >::get_alpha_shape_vertices ( OutputIterator it, Classification_type type )

Writes the vertices which are of type type in the alpha complex to the sequence pointed to by the output iterator it.

Returns past the end of the output sequence.

## ◆ insert()

template<typename Dt >
 Vertex_handle CGAL::Fixed_alpha_shape_3< Dt >::insert ( Point p, Cell_handle start = Cell_handle() )

Inserts the point p in the underlying triangulation and returns the corresponding vertex.

The optional argument start is used as a starting place for the search. The classification types of the new simplices are computed and that of the simplices incident to the new ones are updated.

## ◆ remove()

template<typename Dt >
 void CGAL::Fixed_alpha_shape_3< Dt >::remove ( Vertex_handle v )

Removes the vertex v from the underlying triangulation.

The classification types of new simplices and their incident faces are set or reset.