CGAL 4.7 - Point Set Processing: CGAL Namespace Reference

\( \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.7 - Point Set Processing

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Namespaces | Classes | Functions
CGAL Namespace Reference

## Namespaces

| internal
| Voronoi_covariance_3

## Classes

class | Eigen_vcm_traits
| A model of the concept `VCMTraits` using thirdpartyEigen. More...
struct | value_type_traits
| Class providing the value type of an iterator, and in the case of an output iterator, a type of objects that can be put in it. More...
struct | value_type_traits< std::back_insert_iterator< Container > >
struct | value_type_traits< std::insert_iterator< Container > >
struct | value_type_traits< std::front_insert_iterator< Container > >

## Functions

template<typename Concurrency_tag , typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel >
double | bilateral_smooth_point_set (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, unsigned int k, typename Kernel::FT sharpness_angle, const Kernel &)
| This function smooths an input point set by iteratively projecting each point onto the implicit surface patch fitted over its k nearest neighbors. More...
template<typename InputIterator , typename PointPMap , typename Kernel >
Kernel::FT | compute_average_spacing (InputIterator first, InputIterator beyond, PointPMap point_pmap, unsigned int k, const Kernel &)
| Computes average spacing from k nearest neighbors. More...
template<typename OutputIterator , typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel >
OutputIterator | edge_aware_upsample_point_set (ForwardIterator first, ForwardIterator beyond, OutputIterator output, PointPMap point_pmap, NormalPMap normal_pmap, const typename Kernel::FT sharpness_angle, typename Kernel::FT edge_sensitivity, typename Kernel::FT neighbor_radius, const unsigned int number_of_output_points, const Kernel &)
| This method progressively upsamples the point set while approaching the edge singularities (detected by normal variation), which generates a denser point set from an input point set. More...
template<typename ForwardIterator , typename PointPMap , typename Kernel >
ForwardIterator | grid_simplify_point_set (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, double epsilon, const Kernel &)
| Merges points which belong to the same cell of a grid of cell size = `epsilon`. More...
template<class Iter >
Index_property_map< Iter > | make_index_property_map (Iter first, Iter beyond)
| Free function to create an Index_property_map property map. More...
template<typename OutputIteratorValueType , typename OutputIterator , typename PointPMap , typename NormalPMap , typename Kernel >
bool | read_off_points_and_normals (std::istream &stream, OutputIterator output, PointPMap point_pmap, NormalPMap normal_pmap, const Kernel &)
| Reads points (positions + normals, if available) from a .off ASCII stream. More...
template<typename OutputIteratorValueType , typename OutputIterator , typename PointPMap , typename Kernel >
bool | read_off_points (std::istream &stream, OutputIterator output, PointPMap point_pmap, const Kernel &kernel)
| Reads points (position only) from a .off ASCII stream. More...
template<typename OutputIteratorValueType , typename OutputIterator , typename PointPMap , typename NormalPMap , typename Kernel >
bool | read_xyz_points_and_normals (std::istream &stream, OutputIterator output, PointPMap point_pmap, NormalPMap normal_pmap, const Kernel &)
| Reads points (positions + normals, if available) from a .xyz ASCII stream. More...
template<typename OutputIteratorValueType , typename OutputIterator , typename PointPMap , typename Kernel >
bool | read_xyz_points (std::istream &stream, OutputIterator output, PointPMap point_pmap, const Kernel &kernel)
| Reads points (positions only) from a .xyz ASCII stream. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel >
bool | write_off_points_and_normals (std::ostream &stream, ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, const Kernel &)
| Saves the [first, beyond) range of points (positions + normals) to a .off ASCII stream. More...
template<typename ForwardIterator , typename PointPMap , typename Kernel >
bool | write_off_points (std::ostream &stream, ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, const Kernel &)
| Saves the [first, beyond) range of points (positions only) to a .off ASCII stream. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel >
bool | write_xyz_points_and_normals (std::ostream &stream, ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, const Kernel &)
| Saves the [first, beyond) range of points (positions + normals) to a .xyz ASCII stream. More...
template<typename ForwardIterator , typename PointPMap , typename Kernel >
bool | write_xyz_points (std::ostream &stream, ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, const Kernel &)
| Saves the [first, beyond) range of points (positions only) to a .xyz ASCII stream. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel , typename SvdTraits >
void | jet_estimate_normals (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, unsigned int k, const Kernel &, unsigned int degree_fitting=2)
| Estimates normal directions of the `[first, beyond)` range of points using jet fitting on the k nearest neighbors. More...
template<typename InputIterator , typename PointPMap , typename Kernel , typename SvdTraits >
void | jet_smooth_point_set (InputIterator first, InputIterator beyond, PointPMap point_pmap, unsigned int k, const Kernel &, unsigned int degree_fitting=2, unsigned int degree_monge=2)
| Smoothes the `[first, beyond)` range of points using jet fitting on the k nearest neighbors and reprojection onto the jet. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel >
ForwardIterator | mst_orient_normals (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, unsigned int k, const Kernel &kernel)
| Orients the normals of the `[first, beyond)` range of points using the propagation of a seed orientation through a minimum spanning tree of the Riemannian graph [Hoppe92]. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename Kernel >
void | pca_estimate_normals (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, unsigned int k, const Kernel &)
| Estimates normal directions of the `[first, beyond)` range of points by linear least squares fitting of a plane over the k nearest neighbors. More...
template<typename ForwardIterator , typename PointPMap , typename Kernel >
ForwardIterator | random_simplify_point_set (ForwardIterator first, ForwardIterator beyond, PointPMap, double removed_percentage, const Kernel &)
| Randomly deletes a user-specified fraction of the input points. More...
template<typename InputIterator , typename PointPMap , typename Kernel >
InputIterator | remove_outliers (InputIterator first, InputIterator beyond, PointPMap point_pmap, unsigned int k, double threshold_percent, const Kernel &)
| Removes outliers: More...
template<typename InputIterator , typename PointPMap , typename Kernel >
InputIterator | remove_outliers_wrt_median_knn_sq_distance (InputIterator first, InputIterator beyond, PointPMap point_pmap, unsigned int k, double threshold_percent, const Kernel &kernel)
| Removes outliers: More...
template<class FT , class VCM_traits >
bool | vcm_is_on_feature_edge (cpp11::array< FT, 6 > &cov, double threshold, VCM_traits)
| determines if a point is on a sharp feature edge from a point set for which the Voronoi covariance Measures have been computed. More...
template<class ForwardIterator , class PointPMap , class Kernel >
void | compute_vcm (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, std::vector< cpp11::array< typename Kernel::FT, 6 > > &ccov, double offset_radius, double convolution_radius, const Kernel &kernel)
| computes the Voronoi Covariance Measure (VCM) of a point cloud, a construction that can be used for normal estimation and sharp feature detection. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename VCM_traits >
void | vcm_estimate_normals (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, double offset_radius, double convolution_radius, VCM_traits)
| Estimates normal directions of the points in the range `[first, beyond)` using the Voronoi Covariance Measure with a radius for the convolution. More...
template<typename ForwardIterator , typename PointPMap , typename NormalPMap , typename VCM_traits >
void | vcm_estimate_normals (ForwardIterator first, ForwardIterator beyond, PointPMap point_pmap, NormalPMap normal_pmap, double offset_radius, unsigned int k, VCM_traits)
| Estimates normal directions of the points in the range `[first, beyond)` using the Voronoi Covariance Measure with a number of neighbors for the convolution. More...
template<typename Concurrency_tag , typename OutputIterator , typename RandomAccessIterator , typename PointPMap , typename Kernel >
OutputIterator | wlop_simplify_and_regularize_point_set (RandomAccessIterator first, RandomAccessIterator beyond, OutputIterator output, PointPMap point_pmap, double select_percentage, double radius, unsigned int iter_number, bool require_uniform_sampling, const Kernel &)
| This is an implementation of the Weighted Locally Optimal Projection (WLOP) simplification algorithm. More...

## Function Documentation

template<class Iter >

Index_property_map<Iter> CGAL::make_index_property_map | ( | Iter | first,
|  | Iter | beyond
| ) |  |

Free function to create an Index_property_map property map.

Template Parameters

  Iter | iterator over input elements.

Returns
  an "index" property map, which associates a 0-based index (unsigned int) to the `[first, beyond)` range of elements.

Parameters

  first | iterator over the first element (index 0)
  beyond | past-the-end iterator over the elements

template<typename InputIterator , typename PointPMap , typename Kernel >

InputIterator CGAL::remove_outliers_wrt_median_knn_sq_distance | ( | InputIterator | first,
|  | InputIterator | beyond,
|  | PointPMap | point_pmap,
|  | unsigned int | k,
|  | double | threshold_percent,
|  | const Kernel & | kernel
| ) |  |

Removes outliers:

- computes median squared distance to the K nearest neighbors,
- sorts the points in increasing order of computed distance.

This method modifies the order of input points so as to pack all remaining points first, and returns an iterator over the first point to remove (see erase-remove idiom). For this reason it should not be called on sorted containers.

Precondition
  `k >= 2`

Template Parameters

  InputIterator | iterator over input points.
  PointPMap | is a model of `ReadablePropertyMap` with value type `Point_3<Kernel>`. It can be omitted if the value type of `InputIterator` is convertible to `Point_3<Kernel>`.
  Kernel | Geometric traits class. It can be omitted and deduced automatically from the value type of `PointPMap`.

Returns
  iterator over the first point to remove.

Parameters

  first | iterator over the first input point.
  beyond | past-the-end iterator over the input points.
  point_pmap | property map: value_type of InputIterator -> Point_3
  k | number of neighbors.
  threshold_percent | percentage of points to remove.
  kernel | geometric traits.