\( \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.12.1 - Advancing Front Surface Reconstruction
Advancing Front Surface Reconstruction Reference

afsr-detail.png
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-18b
License: GPL

Classified Reference Pages

Classes

Functions

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

◆ advancing_front_surface_reconstruction() [1/2]

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 
)

#include <CGAL/Advancing_front_surface_reconstruction.h>

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

Template Parameters
PointInputIteratormust 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.
IndicesOutputIteratormust be an output iterator to which CGAL::cpp11::array<std::size_t, 3> can be assigned.
Parameters
biterator on the first point of the sequence
epast the end iterator of the point sequence
outoutput iterator
radius_ratio_boundcandidates 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
betahalf 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
Examples:
Advancing_front_surface_reconstruction/reconstruction_fct.cpp, and Advancing_front_surface_reconstruction/reconstruction_surface_mesh.cpp.

◆ advancing_front_surface_reconstruction() [2/2]

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 
)

#include <CGAL/Advancing_front_surface_reconstruction.h>

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

Template Parameters
PointInputIteratormust 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.
IndicesOutputIteratormust be an output iterator to which CGAL::cpp11::array<std::size_t, 3> can be assigned.
Prioritymust be a functor with double operator()(AdvancingFront,Cell_handle,int) returning the priority of the facet (Cell_handle,int).
Parameters
biterator on the first point of the sequence
epast the end iterator of the point sequence
outoutput iterator
radius_ratio_boundcandidates 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
betahalf 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
priorityallows the user to choose how candidate triangles are prioritized.