/// \defgroup PkgPMPBooleanOperationsRef Reference Manual
/// \defgroup PkgPMPBooleanOperationsConcepts Concepts
/// \ingroup PkgPMPBooleanOperationsRef

/// \defgroup PMP_corefinement_grp Corefinement and Autorefinement
/// Functions to corefine triangulated surface meshes and triangle soups.
/// \ingroup PkgPMPBooleanOperationsRef

/// \defgroup PMP_boolop_grp Boolean Operations
/// Functions to compute triangulated the union, difference, and intersection of meshes.
/// \ingroup PkgPMPBooleanOperationsRef

/// \defgroup PMP_clip_grp Clipping and Splitting
/// Functions to clip and split meshes using planes, boxes, or other meshes.
/// \ingroup PkgPMPBooleanOperationsRef

/// \defgroup PMP_slicing_grp Slicing
/// Functions to split meshes using planes.
/// \ingroup PkgPMPBooleanOperationsRef

/// \defgroup PMP_kernel_grp Mesh Kernel
/// Functions to compute kernel of polyhedra.
/// \ingroup PkgPMPBooleanOperationsRef

/*!
\addtogroup PkgPMPBooleanOperationsRef

\cgalPkgDescriptionBegin{Boolean Operations on Meshes, PkgPMPBooleanOperations}
\cgalPkgPicture{pmp-boolop-icon.png}

\cgalPkgSummaryBegin
\cgalPkgAuthors{Sébastien Loriot, Léo Valque, and Ilker O. Yaz}
\cgalPkgDesc{This package provides a collection of methods and classes to compute
Boolean operations on meshes (union, intersection, and difference), clipping and splitting
of meshes using planes, boxes, or other meshes, and slicing of triangulated surfaces.}
\cgalPkgManuals{Chapter_PMPBooleanOperations,PkgPMPBooleanOperationsRef}
\cgalPkgSummaryEnd

\cgalPkgShortInfoBegin
\cgalPkgSince{4.7}
\cgalPkgDependsOn{documented for each function}
\cgalPkgBib{cgal:pmp-boolop}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{CGAL Lab,CGALlab.zip}
\cgalPkgShortInfoEnd

\cgalPkgDescriptionEnd

\cgalClassifedRefPages

\cgalCRPSection{Parameters}

Optional parameters of the functions of this package are implemented as \ref BGLNamedParameters.
The page \ref bgl_namedparameters "Named Parameters" describes their usage.

\cgalCRPSection{Corefinement}
- `CGAL::Polygon_mesh_processing::corefine()`
- `CGAL::Polygon_mesh_processing::autorefine_triangle_soup()`
- `CGAL::Polygon_mesh_processing::autorefine()`

\cgalCRPSection{Boolean Operations}
- `CGAL::Polygon_mesh_processing::corefine_and_compute_union()`
- `CGAL::Polygon_mesh_processing::corefine_and_compute_difference()`
- `CGAL::Polygon_mesh_processing::corefine_and_compute_intersection()`
- `CGAL::Polygon_mesh_processing::corefine_and_compute_boolean_operations()`
- `CGAL::Polygon_mesh_processing::surface_intersection()` (deprecated)
- `CGAL::Polygon_mesh_processing::intersection_polylines()`

\cgalCRPSection{Clipping and Splitting}
- `CGAL::Polygon_mesh_processing::clip()`
- `CGAL::Polygon_mesh_processing::split()`

\cgalCRPSection{Slicing}
- `CGAL::Polygon_mesh_slicer`
- `CGAL::Polygon_mesh_processing::refine_with_plane()`
- `CGAL::Polygon_mesh_processing::refine_mesh_at_isolevel()`

\cgalCRPSection{%Kernel Computation}
- `CGAL::Polygon_mesh_processing::kernel()`
- `CGAL::Polygon_mesh_processing::has_empty_kernel()`
- `CGAL::Polygon_mesh_processing::kernel_point()`

\cgalCRPSection{See Also}
- `CGAL::Polygon_mesh_processing::IO::read_polygon_mesh()`
- `CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh()`
- `CGAL::Polygon_mesh_processing::polygon_mesh_to_polygon_soup()`
- `CGAL::Polygon_mesh_processing::triangulate_faces()`
- `CGAL::Polygon_mesh_processing::do_intersect()`

*/
