\( \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 5.0 - Point Set Processing
Named Parameters for Point Set Processing

In this package, all functions optional parameters are implemented as BGL optional named parameters (see Named Parameters for more information on how to use them).

Since the parameters of the various point set processing functions defined in this package are redundant, their long descriptions are centralized below.

In the following, we assume that the following types are provided as template parameters of point set processing functions and classes. Note that, for some of these functions, the type is more specific.

CGAL::parameters::all_default() can be used to indicate that default values of optional named parameters must be used.

Here is the list of the named parameters available in this package:

geom_traits

the geometric traits instance in which the point set processing operation should be performed.
Type: a Geometric traits class.
Default type: is

point_map

is the property map containing the points associated to the elements of the point range points.
Type: a class model of ReadablePropertyMap with PointRange::iterator::value_type as key type and geom_traits::Point_3 as value type.
Default value:

normal_map

is the property map containing the normal vectors associated to the elements of the point range points.
Type: a class model of ReadablePropertyMap with PointRange::iterator::value_type as key type and geom_traits::Vector_3 as value type.
No default value.

diagonalize_traits

is the solver used for diagonalizing covariance matrices.
Type: a class model of DiagonalizeTraits.
Default: CGAL::Eigen_diagonalize_traits if Eigen 3.2 (or greater) is available and CGAL_EIGEN3_ENABLED is defined.

svd_traits

is the linear algebra algorithm required by the jet fitting method. For more information, please refer to the documentation of CGAL::Monge_via_jet_fitting.
Type: a class fitting the requirements of CGAL::Monge_via_jet_fitting.
Default: if Eigen 3.2 (or greater) is available and CGAL_EIGEN3_ENABLED is defined, then CGAL::Eigen_svd is used.

callback

is a mechanism to get feedback on the advancement of the algorithm while it's running and to interrupt it if needed. It is called regularly when the algorithm is running: the current advancement (between 0. and 1.) is passed as parameter. If it returns true, then the algorithm continues its execution normally; if it returns false, the algorithm is stopped.
The callback will be copied and therefore needs to be lightweight.
Note that when a callback is run on a parallelized algorithm with CGAL::Parallel_tag, it is called asynchronously on a separate thread and shouldn't access or modify the variables that are parameters of the algorithm.
Type: std::function<bool(double)>.
Default: empty function.

query_point_map

is the property map containing the points associated to the elements of the point range queries.
Type: a class model of ReadablePropertyMap with PointRange::iterator::value_type as key type and geom_traits::Point_3 as value type.
Default value:

sharpness_angle

controls the sharpness of the result. The larger the value is, the smoother the result will be. The range of possible value is [0, 90].
Type: floating scalar value
Default value: 30.

edge_sensitivity

controls the priority of points inserted along sharp features. Larger values of edge-sensitivity give higher priority to inserting points along sharp features. The range of possible values is [0, 1].
Type: floating scalar value
Default value: 1.

neighbor_radius

is the spherical neighborhood radius.
Type: floating scalar value
Default value: -1, in which case it is not used.

number_of_output_points

is the number of output points to generate.
Type: unsigned int
Default value: 1000

size

maximum cluster size for hierarchical clustering. Must be strictly greather than 0.
Type: unsigned int
Default value: 10

maximum_variation

maximum cluster size for hierarchical clustering. Must be strictly greather than 0.
Type: unsigned int
Default value: 10

degree_fitting

is the degree of fitting (see CGAL::Monge_via_jet_fitting).
Type: unsigned int
Default value: 2

degree_monge

is the Monge degree (see CGAL::Monge_via_jet_fitting).
Type: unsigned int
Default value: 2

threshold_distance

is the minimum distance for a point to be considered as outlier (distance here is the square root of the average squared distance to K nearest neighbors).
Type: floating scalar value
Default value: 0

threshold_percent

is the maximum percentage (between 0 and 100) of points to remove in remove_outliers().
Type: floating scalar value
Default value: 10

attraction_factor

multiple of a tolerance epsilon used to connect simplices. Type: floating scalar value
Default value: 3

plane_map

is the property map containing the planes associated to the elements of the plane range planes.
Type: a class model of ReadablePropertyMap with PlaneRange::iterator::value_type as key type and geom_traits::Plane_3 as value type.
Default value:

plane_index_map

is the property map that associates the index of a point in the input range to the index of plane (-1 if point is not assigned to a plane).
Type: a class model of ReadablePropertyMap with std::size_t as key type and int as value type.
No default value.

select_percentage

percentage of points to retain (between 0 and 100) in wlop_simplify_and_regularize_point_set().
Type: floating scalar value
Default value: 5.

number_of_iterations

number of iterations to solve the optimsation problem in wlop_simplify_and_regularize_point_set().
Type: unsigned int
Default value: 35.

require_uniform_sampling

turn on or off an optional preprocessing of wlop_simplify_and_regularize_point_set(), which will give better result if the distribution of the input points is highly non-uniform.
Type: bool
Default value: false

point_is_constrained_map

is the property map containing information about points being constrained or not. Constrained points are left unaltered and are used as seeds in mst_orient_normals().
Type: a class model of ReadablePropertyMap with PointRange::iterator::value_type as key type and bool as value type.
Default value: a property map with only the highest point constrained.