\( \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.11 - 3D Point Set
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Point Set Processing

This module offers convenience overloads of functions available in the Point Set Processing package.

These overloads allow the user to call point set processing algorithms without having to handle manually property maps and iterators.

The overloads, available after including CGAL/Point_set_3/Point_set_processing_3.h, all follow the same pattern based on the original point set processing functions:

For a complete documentation of these functions, please refer to the Point Set Processing Reference manual.

Functions

template<typename Concurrency_tag , typename Point , typename Vector >
double CGAL::bilateral_smooth_point_set (CGAL::Point_set_3< Point, Vector > &point_set, const unsigned int k, double sharpness_angle)
 
template<typename Concurrency_tag , typename Point , typename Vector >
double CGAL::compute_average_spacing (const CGAL::Point_set_3< Point, Vector > &point_set, unsigned int k)
 
template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::edge_aware_upsample_point_set (CGAL::Point_set_3< Point, Vector > &point_set, double sharpness_angle=30, double edge_sensitivity=1, double neighbor_radius=-1, const std::size_t number_of_output_points=1000)
 
template<typename Point , typename Vector >
void CGAL::grid_simplify_point_set (CGAL::Point_set_3< Point, Vector > &point_set, double epsilon)
 
template<typename Point , typename Vector >
void CGAL::hierarchy_simplify_point_set (CGAL::Point_set_3< Point, Vector > &point_set, const unsigned int size=10, const double var_max=0.333)
 
template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::jet_estimate_normals (CGAL::Point_set_3< Point, Vector > &point_set, unsigned int k, unsigned int degree_fitting=2)
 
template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::jet_smooth_point_set (CGAL::Point_set_3< Point, Vector > &point_set, unsigned int k, unsigned int degree_fitting=2, unsigned int degree_monge=2)
 
template<typename Point , typename Vector >
CGAL::Point_set_3< Point,
Vector >::iterator 
CGAL::mst_orient_normals (CGAL::Point_set_3< Point, Vector > &point_set, unsigned int k)
 
template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::pca_estimate_normals (CGAL::Point_set_3< Point, Vector > &point_set, unsigned int k)
 
template<typename Point , typename Vector >
void CGAL::random_simplify_point_set (CGAL::Point_set_3< Point, Vector > &point_set, double removed_percentage)
 
template<typename Point , typename Vector >
void CGAL::remove_outliers (CGAL::Point_set_3< Point, Vector > &point_set, unsigned int k, double threshold_percent)
 
template<typename Point , typename Vector >
void CGAL::vcm_estimate_normals (CGAL::Point_set_3< Point, Vector > &point_set, double offset_radius, double convolution_radius)
 
template<typename Point , typename Vector >
void CGAL::vcm_estimate_normals (CGAL::Point_set_3< Point, Vector > &point_set, double offset_radius, unsigned int nb_neighbors_convolve)
 
template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::wlop_simplify_and_regularize_point_set (const CGAL::Point_set_3< Point, Vector > &input_point_set, CGAL::Point_set_3< Point, Vector > &output_point_set, const double select_percentage=5, double neighbor_radius=-1, const unsigned int max_iter_number=35, const bool require_uniform_sampling=false)
 

Function Documentation

template<typename Concurrency_tag , typename Point , typename Vector >
double CGAL::bilateral_smooth_point_set ( CGAL::Point_set_3< Point, Vector > &  point_set,
const unsigned int  k,
double  sharpness_angle 
)
Parameters
point_setpoint set
knumber of neighbors.
sharpness_anglecontrol sharpness(0-90)

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Concurrency_tag , typename Point , typename Vector >
double CGAL::compute_average_spacing ( const CGAL::Point_set_3< Point, Vector > &  point_set,
unsigned int  k 
)
Parameters
point_setpoint set
knumber of neighbors.

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::edge_aware_upsample_point_set ( CGAL::Point_set_3< Point, Vector > &  point_set,
double  sharpness_angle = 30,
double  edge_sensitivity = 1,
double  neighbor_radius = -1,
const std::size_t  number_of_output_points = 1000 
)
Parameters
point_setpoint set
sharpness_anglecontrol sharpness(0-90)
edge_sensitivityedge sensitivity(0-5)
neighbor_radiusinitial size of neighbors.
number_of_output_pointsnumber of output points.

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Point , typename Vector >
void CGAL::grid_simplify_point_set ( CGAL::Point_set_3< Point, Vector > &  point_set,
double  epsilon 
)
Note
No iterator is returned, points simplified are directly removed from the point set.
Parameters
point_setpoint set
epsilontolerance value when merging 3D points.

#include <CGAL/Point_set_3/Point_set_processing_3.h>

Examples:
Point_set_3/point_set_algo.cpp.
template<typename Point , typename Vector >
void CGAL::hierarchy_simplify_point_set ( CGAL::Point_set_3< Point, Vector > &  point_set,
const unsigned int  size = 10,
const double  var_max = 0.333 
)
Note
No iterator is returned, points simplified are directly removed from the point set.
Parameters
point_setpoint set
sizemaximum cluster size
var_maxmaximal surface variation

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::jet_estimate_normals ( CGAL::Point_set_3< Point, Vector > &  point_set,
unsigned int  k,
unsigned int  degree_fitting = 2 
)
Note
This function adds a normal map to the point set.
Parameters
point_setpoint set
knumber of neighbors.
degree_fittingfitting degree

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::jet_smooth_point_set ( CGAL::Point_set_3< Point, Vector > &  point_set,
unsigned int  k,
unsigned int  degree_fitting = 2,
unsigned int  degree_monge = 2 
)
Parameters
point_setpoint set
knumber of neighbors.
degree_fittingfitting degree
degree_mongeMonge degree

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Point , typename Vector >
CGAL::Point_set_3<Point, Vector>::iterator CGAL::mst_orient_normals ( CGAL::Point_set_3< Point, Vector > &  point_set,
unsigned int  k 
)
Parameters
point_setpoint set
knumber of neighbors

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::pca_estimate_normals ( CGAL::Point_set_3< Point, Vector > &  point_set,
unsigned int  k 
)
Note
This function adds a normal map to the point set.
Parameters
point_setpoint set
knumber of neighbors.

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Point , typename Vector >
void CGAL::random_simplify_point_set ( CGAL::Point_set_3< Point, Vector > &  point_set,
double  removed_percentage 
)
Note
No iterator is returned, points simplified are directly removed from the point set.
Parameters
point_setpoint set
removed_percentagepercentage of points to remove

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Point , typename Vector >
void CGAL::remove_outliers ( CGAL::Point_set_3< Point, Vector > &  point_set,
unsigned int  k,
double  threshold_percent 
)
Note
No iterator is returned, points simplified are directly removed from the point set.
Parameters
point_setpoint set
knumber of neighbors.
threshold_percentpercentage of points to remove

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Point , typename Vector >
void CGAL::vcm_estimate_normals ( CGAL::Point_set_3< Point, Vector > &  point_set,
double  offset_radius,
double  convolution_radius 
)
Note
This function adds a normal map to the point set.
Parameters
point_setpoint set
offset_radiusoffset radius.
convolution_radiusconvolution radius.

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Point , typename Vector >
void CGAL::vcm_estimate_normals ( CGAL::Point_set_3< Point, Vector > &  point_set,
double  offset_radius,
unsigned int  nb_neighbors_convolve 
)
Note
This function adds a normal map to the point set.
Parameters
point_setpoint set
offset_radiusoffset radius.
nb_neighbors_convolvenumber of neighbors used during the convolution.

#include <CGAL/Point_set_3/Point_set_processing_3.h>

template<typename Concurrency_tag , typename Point , typename Vector >
void CGAL::wlop_simplify_and_regularize_point_set ( const CGAL::Point_set_3< Point, Vector > &  input_point_set,
CGAL::Point_set_3< Point, Vector > &  output_point_set,
const double  select_percentage = 5,
double  neighbor_radius = -1,
const unsigned int  max_iter_number = 35,
const bool  require_uniform_sampling = false 
)
Parameters
input_point_setinput point set
output_point_setoutput point set
select_percentagepercentage of points to retain
neighbor_radiussize of neighbors.
max_iter_numbernumber of iterations.
require_uniform_samplingif needed to compute density to generate more rugularized result.

#include <CGAL/Point_set_3/Point_set_processing_3.h>