\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - Advancing Front Surface Reconstruction

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Functions
Advancing Front Surface Reconstruction Reference

##

Tran Kai Frank Da, David Cohen-Steiner
This package provides a greedy algorithm for surface reconstruction from an unorganized point set. Starting from a seed facet, a piecewise linear surface is grown by adding Delaunay triangles one by one. The most plausible triangles are added first, in a way that avoids the appearance of topological singularities.

Introduced in: CGAL 4.7
Depends on: 3D Triangulations
BibTeX: cgal:dc-afsr-16a
License: GPL

## Classified Reference Pages

## Classes

- `CGAL::Advancing_front_surface_reconstruction`
- `CGAL::Advancing_front_surface_reconstruction_vertex_base_3`
- `CGAL::Advancing_front_surface_reconstruction_cell_base_3`

## Functions

- `CGAL::advancing_front_surface_reconstruction()`

## Classes
class | CGAL::Advancing_front_surface_reconstruction< Dt, P >
| The class `Advancing_front_surface_reconstruction` enables advanced users to provide the unstructured point cloud in a 3D Delaunay triangulation. More...
class | CGAL::Advancing_front_surface_reconstruction_cell_base_3< Traits, Cb >
| The class `Advancing_front_surface_reconstruction_cell_base_3` is the default cell type for the class `Advancing_front_surface_reconstruction`. More...
class | CGAL::Advancing_front_surface_reconstruction_vertex_base_3< Traits, Vb >
| The class `Advancing_front_surface_reconstruction_vertex_base_3` is the default vertex type for the class `Advancing_front_surface_reconstruction`. More...

## Functions
template<typename PointInputIterator , typename IndicesOutputIterator >
IndicesOutputIterator | CGAL::advancing_front_surface_reconstruction (PointInputIterator b, PointInputIterator e, IndicesOutputIterator out, double radius_ratio_bound=5, double beta=0.52)
| For a sequence of points computes a sequence of index triples describing the faces of the reconstructed surface. More...
template<typename PointInputIterator , typename IndicesOutputIterator , typename Priority >
IndicesOutputIterator | CGAL::advancing_front_surface_reconstruction (PointInputIterator b, PointInputIterator e, IndicesOutputIterator out, Priority priority, double radius_ratio_bound=5, double beta=0.52)
| For a sequence of points computes a sequence of index triples describing the faces of the reconstructed surface. More...

## Function Documentation

template<typename PointInputIterator , typename IndicesOutputIterator >

IndicesOutputIterator CGAL::advancing_front_surface_reconstruction | ( | PointInputIterator | b,
|  | PointInputIterator | e,
|  | IndicesOutputIterator | out,
|  | double | radius_ratio_bound = `5`,
|  | double | beta = `0.52`
| ) |  |

For a sequence of points computes a sequence of index triples describing the faces of the reconstructed surface.

Template Parameters

  PointInputIterator | must be an input iterator with 3D points as value type. This point type must be convertible to `Exact_predicates_inexact_constructions_kernel::Point_3` with the `Cartesian_converter`.
  IndicesOutputIterator | must be an output iterator to which `CGAL::cpp11::tuple<std::size_t,std::size_t,std::size_t>` can be assigned.

Parameters

  b | iterator on the first point of the sequence
  e | past the end iterator of the point sequence
  out | output iterator
  radius_ratio_bound | candidates incident to surface triangles which are not in the beta-wedge are discarded, if the ratio of their radius and the radius of the surface triangle is larger than `radius_ratio_bound`. Described in Section Dealing with Multiple Components, Boundaries and Sharp Edges
  beta | half the angle of the wedge in which only the radius of triangles counts for the plausibility of candidates. Described in Section Plausibility of a Candidate Triangle

`#include <CGAL/Advancing_front_surface_reconstruction.h>`

Examples:
  Advancing_front_surface_reconstruction/reconstruction_fct.cpp, and Advancing_front_surface_reconstruction/reconstruction_surface_mesh.cpp.

template<typename PointInputIterator , typename IndicesOutputIterator , typename Priority >

IndicesOutputIterator CGAL::advancing_front_surface_reconstruction | ( | PointInputIterator | b,
|  | PointInputIterator | e,
|  | IndicesOutputIterator | out,
|  | Priority | priority,
|  | double | radius_ratio_bound = `5`,
|  | double | beta = `0.52`
| ) |  |

For a sequence of points computes a sequence of index triples describing the faces of the reconstructed surface.

Template Parameters

  PointInputIterator | must be an input iterator with 3D points as value type. This point type must be convertible to `Exact_predicates_inexact_constructions_kernel::Point_3` with the `Cartesian_converter`.
  IndicesOutputIterator | must be an output iterator to which `CGAL::cpp11::tuple<std::size_t,std::size_t,std::size_t>` can be assigned.
  Priority | must be a functor with `double operator()(AdvancingFront,Cell_handle,int)` returning the priority of the facet `(Cell_handle,int)`.

Parameters

  b | iterator on the first point of the sequence
  e | past the end iterator of the point sequence
  out | output iterator
  radius_ratio_bound | candidates incident to surface triangles which are not in the beta-wedge are discarded, if the ratio of their radius and the radius of the surface triangle is larger than `radius_ratio_bound`. Described in Section Dealing with Multiple Components, Boundaries and Sharp Edges
  beta | half the angle of the wedge in which only the radius of triangles counts for the plausibility of candidates. Described in Section Plausibility of a Candidate Triangle
  priority | allows the user to choose how candidate triangles are prioritized.

`#include <CGAL/Advancing_front_surface_reconstruction.h>`