CGAL 5.1 - Advancing Front Surface Reconstruction
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: PkgTriangulation3
BibTeX: cgal:dc-afsr-21b
License: GPL

Classified Reference Pages

Classes

Functions

Classes

class  CGAL::Advancing_front_surface_reconstruction< Dt, P >
 
class  CGAL::Advancing_front_surface_reconstruction_cell_base_3< Traits, Cb >
 
class  CGAL::Advancing_front_surface_reconstruction_vertex_base_3< Traits, Vb >
 

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)
 
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)
 

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 std::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 std::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.