/// \defgroup PkgPMPMeshRepairRef Reference Manual

/// \defgroup PMP_orientation_grp Orientation
///  Functions to compute or change the orientation of faces and surfaces.
/// \ingroup PkgPolygonMeshProcessingRef

/// \defgroup PMP_combinatorial_repair_grp Combinatorial Repair
/// Functions to repair polygon soups and polygon meshes.
/// \ingroup PkgPMPMeshRepairRef

/// \defgroup PMP_geometric_repair_grp Geometric Repair
/// Functions to repair polygon soups and polygon meshes.
/// \ingroup PkgPMPMeshRepairRef

/// \defgroup PMP_hole_filling_grp Hole Filling
/// Functions to fill holes given as a range of halfedges or as range of points.
/// \ingroup PkgPMPMeshRepairRef

/// \defgroup PMP_IO_grp I/O Functions
/// Functions to read and repair polygon soups and polygon meshes.
/// \ingroup PkgPolygonMeshProcessingRef

/*!
\addtogroup PkgPMPMeshRepairRef

\cgalPkgDescriptionBegin{Polygon Mesh Repair, PkgPMPMeshRepair}
\cgalPkgPicture{hole_filling_ico.png}

\cgalPkgSummaryBegin
\cgalPkgAuthors{Sébastien Loriot, Mael Rouxel-Labbé, and Ilker O. Yaz}
\cgalPkgDesc{This \cgal package provides methods that enable treating both combinatorial
and geometrical defects in polygon meshes and polygon soups: orientation, hole filling,
degeneracies removal, boundary stitching, and more.}
\cgalPkgManuals{Chapter_PMPMeshRepair,PkgPMPMeshRepairRef}
\cgalPkgSummaryEnd

\cgalPkgShortInfoBegin
\cgalPkgSince{4.7}
\cgalPkgDependsOn{documented for each function}
\cgalPkgBib{cgal:pmp-repair}
\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{Orientation Functions}
- `CGAL::Polygon_mesh_processing::duplicate_non_manifold_edges_in_polygon_soup()`
- `CGAL::Polygon_mesh_processing::orient_polygon_soup()`
- `CGAL::Polygon_mesh_processing::orient_triangle_soup_with_reference_triangle_soup()`
- `CGAL::Polygon_mesh_processing::orient()`
- `CGAL::Polygon_mesh_processing::orient_triangle_soup_with_reference_triangle_mesh()`
- `CGAL::Polygon_mesh_processing::is_outward_oriented()`
- `CGAL::Polygon_mesh_processing::reverse_face_orientations()`
- `CGAL::Polygon_mesh_processing::does_bound_a_volume()`
- `CGAL::Polygon_mesh_processing::orient_to_bound_a_volume()`
- `CGAL::Polygon_mesh_processing::volume_connected_components()`
- `CGAL::Polygon_mesh_processing::merge_reversible_connected_components()`
- `CGAL::Polygon_mesh_processing::compatible_orientations()`

\cgalCRPSection{Combinatorial Repair Functions}
- `CGAL::Polygon_mesh_processing::is_polygon_soup_a_polygon_mesh()`
- `CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh()`
- `CGAL::Polygon_mesh_processing::polygon_mesh_to_polygon_soup()`
- `CGAL::Polygon_mesh_processing::merge_duplicate_points_in_polygon_soup()`
- `CGAL::Polygon_mesh_processing::merge_duplicate_polygons_in_polygon_soup()`
- `CGAL::Polygon_mesh_processing::remove_isolated_points_in_polygon_soup()`
- `CGAL::Polygon_mesh_processing::remove_isolated_vertices()`
- `CGAL::Polygon_mesh_processing::repair_polygon_soup()`
- `CGAL::Polygon_mesh_processing::stitch_boundary_cycle()`
- `CGAL::Polygon_mesh_processing::stitch_boundary_cycles()`
- `CGAL::Polygon_mesh_processing::stitch_borders()`
- `CGAL::Polygon_mesh_processing::is_non_manifold_vertex()`
- `CGAL::Polygon_mesh_processing::non_manifold_vertices()`
- `CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices()`
- `CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycle()`
- `CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycles()`

\cgalCRPSection{Geometric Repair Functions}
- `CGAL::Polygon_mesh_processing::remove_almost_degenerate_faces()`

\cgalCRPSection{Hole Filling Functions}
- `CGAL::Polygon_mesh_processing::triangulate_hole()`
- `CGAL::Polygon_mesh_processing::triangulate_and_refine_hole()`
- `CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole()`
- `CGAL::Polygon_mesh_processing::triangulate_hole_polyline()`
- `CGAL::Polygon_mesh_processing::refine()`
- `CGAL::Polygon_mesh_processing::fair()`

\cgalCRPSection{I/O Functions}
- \link PMP_IO_grp `CGAL::Polygon_mesh_processing::IO::read_polygon_mesh()`\endlink

\cgalCRPSection{See Also}
- \ref PMP_intersection_grp "Intersection Detection Functions"
- \ref PMP_predicates_grp "Predicate Functions"
- `CGAL::Polygon_mesh_processing::autorefine_triangle_soup()`

*/
