/*!

\defgroup PkgPointSetProcessing Point Set Processing Reference

\defgroup PkgPointSetProcessingAlgorithms Algorithms
\ingroup PkgPointSetProcessing

Collection of algorithms of point set processing (smoothing,
simplification, etc.).

\defgroup PkgPointSetProcessingIO IO (XYZ/OFF Formats)
\ingroup PkgPointSetProcessing

Read and write points (with or without normal vectors) in XYZ and OFF
formats.

\defgroup PkgPointSetProcessingIOPly IO (PLY Format)
\ingroup PkgPointSetProcessing

Read and write points (with or without additional properties) in PLY
format.

\defgroup PkgPointSetProcessingIOLas IO (LAS Format)
\ingroup PkgPointSetProcessing

Read and write points (with or without additional properties) in LAS
format.

\addtogroup PkgPointSetProcessing
\cgalPkgDescriptionBegin{Point Set Processing,PkgPointSetProcessingSummary}
\cgalPkgPicture{point_set_processing_detail.png}
\cgalPkgSummaryBegin
\cgalPkgAuthors{Pierre Alliez, Simon Giraudot, Clément Jamin, Florent Lafarge, Quentin Mérigot, Jocelyn Meyron, Laurent Saboret, Nader Salman, Shihao Wu}
\cgalPkgDesc{This \cgal component implements methods to analyze and process unorganized point sets. The input is an unorganized point set, possibly with normal attributes (unoriented or oriented). The point set can be analyzed to measure its average spacing, and processed through functions devoted to the simplification, outlier removal, smoothing, normal estimation, normal orientation and feature edges estimation.}
\cgalPkgManuals{Chapter_Point_Set_Processing,PkgPointSetProcessing}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{3.5}
\cgalPkgDependsOn{\ref PkgSolverSummary} 
\cgalPkgBib{cgal:ass-psp}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{Polyhedron demo,polyhedron_3.zip}
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd

\cgalClassifedRefPages

## Algorithms ##

- `CGAL::compute_average_spacing()`
- `CGAL::estimate_global_k_neighbor_scale()`
- `CGAL::estimate_global_range_scale()`
- `CGAL::estimate_local_k_neighbor_scales()`
- `CGAL::estimate_local_range_scales()`
- `CGAL::remove_outliers()`
- `CGAL::grid_simplify_point_set()`
- `CGAL::random_simplify_point_set()`
- `CGAL::hierarchy_simplify_point_set()`	
- `CGAL::wlop_simplify_and_regularize_point_set()`
- `CGAL::jet_smooth_point_set()`
- `CGAL::bilateral_smooth_point_set()`
- `CGAL::jet_estimate_normals()`
- `CGAL::pca_estimate_normals()`
- `CGAL::mst_orient_normals()`
- `CGAL::edge_aware_upsample_point_set()`
- `CGAL::compute_vcm()`
- `CGAL::vcm_estimate_normals()`
- `CGAL::vcm_is_on_feature_edge()`
- `CGAL::structure_point_set()`

## IO (XYZ/OFF Formats) ##

- `CGAL::read_off_points()`
- `CGAL::read_xyz_points()`
- `CGAL::write_off_points()`
- `CGAL::write_xyz_points()`

## IO (PLY Format) ##

- `CGAL::read_ply_points()`
- `CGAL::read_ply_points_with_properties()`
- `CGAL::write_ply_points()`
- `CGAL::write_ply_points_with_properties()`
- `CGAL::PLY_property<T>`
- `CGAL::make_ply_point_reader()`
- `CGAL::make_ply_point_writer()`
- `CGAL::make_ply_normal_reader()`
- `CGAL::make_ply_normal_writer()`

## IO (LAS Format) ##

- `CGAL::read_las_points()`
- `CGAL::read_las_points_with_properties()`
- `CGAL::write_las_points()`
- `CGAL::write_las_points_with_properties()`
- `CGAL::make_las_point_reader()`
- `CGAL::make_las_point_writer()`

*/

