CGAL 5.1.3 - Advancing Front Surface Reconstruction
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-21a

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

The class Advancing_front_surface_reconstruction enables advanced users to provide the unstructured point cloud in a 3D Delaunay triangulation. More...

The class Advancing_front_surface_reconstruction_cell_base_3 is the default cell type for the class Advancing_front_surface_reconstruction. More...

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 )

#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
 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 std::array 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
Examples:

 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>
 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 std::array can be assigned. Priority must be a functor with double operator()(AdvancingFront,Cell_handle,int) returning the priority of the facet (Cell_handle,int).
 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.