From 76a829e6d437e5cf07a3277f5f35913105a672c5 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 5 Jun 2024 19:08:29 +0200 Subject: [PATCH] move manifold tags to --- STL_Extension/doc/STL_Extension/CGAL/tags.h | 71 +++++++++++++++++++ STL_Extension/doc/STL_Extension/dependencies | 1 + STL_Extension/include/CGAL/tags.h | 5 ++ .../Surface_mesher/CGAL/make_surface_mesh.h | 70 ------------------ .../doc/Surface_mesher/PackageDescription.txt | 4 -- .../doc/Surface_mesher/dependencies | 1 + .../include/CGAL/Surface_mesher_generator.h | 4 -- .../include/CGAL/make_surface_mesh.h | 1 + 8 files changed, 79 insertions(+), 78 deletions(-) diff --git a/STL_Extension/doc/STL_Extension/CGAL/tags.h b/STL_Extension/doc/STL_Extension/CGAL/tags.h index 91b0ca5532d7..9d349bf63a01 100644 --- a/STL_Extension/doc/STL_Extension/CGAL/tags.h +++ b/STL_Extension/doc/STL_Extension/CGAL/tags.h @@ -102,3 +102,74 @@ struct Null_tag { }; /* end Null_tag */ } /* end namespace CGAL */ + +namespace CGAL { + +/*! +\ingroup PkgSTLExtensionUtilities + +The class `Manifold_tag` is a tag class used to monitor the +surface meshing algorithm. When instantiated with the tag +`Manifold_tag` the function template +`make_surface_mesh()` +ensures that the output mesh is a manifold surface +without boundary. + +\sa `make_surface_mesh()` +\sa `Manifold_with_boundary_tag` +\sa `Non_manifold_tag` + +*/ + +struct Manifold_tag { + +}; /* end Manifold_tag */ +} /* end namespace CGAL */ + +namespace CGAL { + +/*! +\ingroup PkgSTLExtensionUtilities + +The class `Manifold_with_boundary_tag` is a tag class used to monitor the +surface meshing algorithm. When instantiated with the tag +`Manifold_with_boundary_tag`, the function template +`make_surface_mesh()` +ensures that the output mesh is a manifold surface +but it may have boundaries. + +\sa `make_surface_mesh()` +\sa `Manifold_tag` +\sa `Non_manifold_tag` + +*/ + +struct Manifold_with_boundary_tag { + +}; /* end Manifold_with_boundary_tag */ +} /* end namespace CGAL */ + +namespace CGAL { + +/*! +\ingroup PkgSTLExtensionUtilities + +The class `Non_manifold_tag` is a tag class used to monitor the +surface meshing algorithm. When instantiated with the tag +`Non_manifold_tag` the function template +`make_surface_mesh()` +does not ensure that the output mesh is a manifold surface. +The manifold property of output mesh +may nevertheless result from the choice of +appropriate meshing criteria. + +\sa `make_surface_mesh()` +\sa `Manifold_tag` +\sa `Manifold_with_boundary_tag` + +*/ + +struct Non_manifold_tag { + +}; /* end Non_manifold_tag */ +} /* end namespace CGAL */ diff --git a/STL_Extension/doc/STL_Extension/dependencies b/STL_Extension/doc/STL_Extension/dependencies index e3e3864ed1f5..41945cebc679 100644 --- a/STL_Extension/doc/STL_Extension/dependencies +++ b/STL_Extension/doc/STL_Extension/dependencies @@ -4,4 +4,5 @@ Number_types Kernel_23 Miscellany Surface_mesh +Surface_mesher BGL diff --git a/STL_Extension/include/CGAL/tags.h b/STL_Extension/include/CGAL/tags.h index eba9ffdc7215..8c446d8128d5 100644 --- a/STL_Extension/include/CGAL/tags.h +++ b/STL_Extension/include/CGAL/tags.h @@ -51,6 +51,11 @@ typedef CGAL::Parallel_tag Parallel_if_available_tag; typedef CGAL::Sequential_tag Parallel_if_available_tag; #endif +// For Surface_mesher and Mesh_3 +struct Non_manifold_tag {}; +struct Manifold_tag {}; +struct Manifold_with_boundary_tag {}; + // A function that asserts a specific compile time tag // forcing its two arguments to have equal type. template diff --git a/Surface_mesher/doc/Surface_mesher/CGAL/make_surface_mesh.h b/Surface_mesher/doc/Surface_mesher/CGAL/make_surface_mesh.h index 620f7b9184ea..23805009c22f 100644 --- a/Surface_mesher/doc/Surface_mesher/CGAL/make_surface_mesh.h +++ b/Surface_mesher/doc/Surface_mesher/CGAL/make_surface_mesh.h @@ -136,73 +136,3 @@ int initial_number_of_points = 20 ); } /* namespace CGAL */ -namespace CGAL { - -/*! -\ingroup PkgSurfaceMesher3TagClasses - -The class `Manifold_tag` is a tag class used to monitor the -surface meshing algorithm. When instantiated with the tag -`Manifold_tag` the function template -`make_surface_mesh()` -ensures that the output mesh is a manifold surface -without boundary. - -\sa `make_surface_mesh()` -\sa `Manifold_with_boundary_tag` -\sa `Non_manifold_tag` - -*/ - -struct Manifold_tag { - -}; /* end Manifold_tag */ -} /* end namespace CGAL */ - -namespace CGAL { - -/*! -\ingroup PkgSurfaceMesher3TagClasses - -The class `Manifold_with_boundary_tag` is a tag class used to monitor the -surface meshing algorithm. When instantiated with the tag -`Manifold_with_boundary_tag`, the function template -`make_surface_mesh()` -ensures that the output mesh is a manifold surface -but it may have boundaries. - -\sa `make_surface_mesh()` -\sa `Manifold_tag` -\sa `Non_manifold_tag` - -*/ - -struct Manifold_with_boundary_tag { - -}; /* end Manifold_with_boundary_tag */ -} /* end namespace CGAL */ - -namespace CGAL { - -/*! -\ingroup PkgSurfaceMesher3TagClasses - -The class `Non_manifold_tag` is a tag class used to monitor the -surface meshing algorithm. When instantiated with the tag -`Non_manifold_tag` the function template -`make_surface_mesh()` -does not ensure that the output mesh is a manifold surface. -The manifold property of output mesh -may nevertheless result from the choice of -appropriate meshing criteria. - -\sa `make_surface_mesh()` -\sa `Manifold_tag` -\sa `Manifold_with_boundary_tag` - -*/ - -struct Non_manifold_tag { - -}; /* end Non_manifold_tag */ -} /* end namespace CGAL */ diff --git a/Surface_mesher/doc/Surface_mesher/PackageDescription.txt b/Surface_mesher/doc/Surface_mesher/PackageDescription.txt index 45a90589a1f1..39b9d967d974 100644 --- a/Surface_mesher/doc/Surface_mesher/PackageDescription.txt +++ b/Surface_mesher/doc/Surface_mesher/PackageDescription.txt @@ -7,10 +7,6 @@ /// \defgroup PkgSurfaceMesher3Classes Mesh and Domain Classes /// \ingroup PkgSurfaceMesher3Ref -/// \defgroup PkgSurfaceMesher3TagClasses Tag Classes -/// \ingroup PkgSurfaceMesher3Ref - - /// \defgroup PkgSurfaceMesher3Functions Functions /// \ingroup PkgSurfaceMesher3Ref diff --git a/Surface_mesher/doc/Surface_mesher/dependencies b/Surface_mesher/doc/Surface_mesher/dependencies index a122f2fc7ba6..ae4e29fceb65 100644 --- a/Surface_mesher/doc/Surface_mesher/dependencies +++ b/Surface_mesher/doc/Surface_mesher/dependencies @@ -8,3 +8,4 @@ Triangulation_2 Triangulation_3 Mesh_3 Polyhedron +STL_Extension diff --git a/Surface_mesher/include/CGAL/Surface_mesher_generator.h b/Surface_mesher/include/CGAL/Surface_mesher_generator.h index 0266d8d81655..420001442888 100644 --- a/Surface_mesher/include/CGAL/Surface_mesher_generator.h +++ b/Surface_mesher/include/CGAL/Surface_mesher_generator.h @@ -35,10 +35,6 @@ namespace CGAL { - struct Non_manifold_tag {}; - struct Manifold_tag {}; - struct Manifold_with_boundary_tag {}; - // struct Dynamic_manifold_tag { // enum Tag { Manifold = 0, Non_manifold = 1, Manifold_with_boundary = 2 }; // }; diff --git a/Surface_mesher/include/CGAL/make_surface_mesh.h b/Surface_mesher/include/CGAL/make_surface_mesh.h index 27c32590d124..ba69f1d69429 100644 --- a/Surface_mesher/include/CGAL/make_surface_mesh.h +++ b/Surface_mesher/include/CGAL/make_surface_mesh.h @@ -19,6 +19,7 @@ "The 3D Mesh Generation package (see https://doc.cgal.org/latest/Mesh_3/) should be used instead." #include +#include #include #include