CGAL 5.3 - 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-21a
License: GPL

Classified Reference Pages

Concepts

Classes

Functions

Modules

 Concepts
 

Classes

class  AdvancingFrontSurfaceReconstructionTraits_3
 The concept AdvancingFrontSurfaceReconstructionTraits_3 describes the requirements for the the geometric traits of the class CGAL::Delaunay_triangulation_3 used in the class CGAL::Advancing_front_surface_reconstruction. It defines the geometric objects (points, segments...) forming the triangulation together with a few geometric predicates and constructions on these objects. More...
 
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 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()(Advancing_front_surface_reconstruction,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.