CGAL 5.6.3 - Advancing Front Surface Reconstruction

Loading...
Searching...
No Matches
Modules | Classes | Functions
Advancing Front Surface Reconstruction Reference

##

Tran Kai Frank Da and 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-25b
License: GPL

## Classified Reference Pages

## Concepts

- `AdvancingFrontSurfaceReconstructionTraits_3`

## 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()`

## 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.
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.

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

  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<std::size_t, 3>` 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
  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

  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<std::size_t, 3>` can be assigned.
  Priority | must be a functor with `double operator()(Advancing_front_surface_reconstruction::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
  priority | enables the user to choose how candidate triangles are prioritized.
  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