Skip to content

Commit

Permalink
move manifold tags to <CGAL/tags.h>
Browse files Browse the repository at this point in the history
  • Loading branch information
lrineau committed Jun 5, 2024
1 parent 693206c commit 76a829e
Show file tree
Hide file tree
Showing 8 changed files with 79 additions and 78 deletions.
71 changes: 71 additions & 0 deletions STL_Extension/doc/STL_Extension/CGAL/tags.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
1 change: 1 addition & 0 deletions STL_Extension/doc/STL_Extension/dependencies
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ Number_types
Kernel_23
Miscellany
Surface_mesh
Surface_mesher
BGL
5 changes: 5 additions & 0 deletions STL_Extension/include/CGAL/tags.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 <class Base>
Expand Down
70 changes: 0 additions & 70 deletions Surface_mesher/doc/Surface_mesher/CGAL/make_surface_mesh.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
4 changes: 0 additions & 4 deletions Surface_mesher/doc/Surface_mesher/PackageDescription.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
/// \defgroup PkgSurfaceMesher3Classes Mesh and Domain Classes
/// \ingroup PkgSurfaceMesher3Ref

/// \defgroup PkgSurfaceMesher3TagClasses Tag Classes
/// \ingroup PkgSurfaceMesher3Ref


/// \defgroup PkgSurfaceMesher3Functions Functions
/// \ingroup PkgSurfaceMesher3Ref

Expand Down
1 change: 1 addition & 0 deletions Surface_mesher/doc/Surface_mesher/dependencies
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ Triangulation_2
Triangulation_3
Mesh_3
Polyhedron
STL_Extension
4 changes: 0 additions & 4 deletions Surface_mesher/include/CGAL/Surface_mesher_generator.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 };
// };
Expand Down
1 change: 1 addition & 0 deletions Surface_mesher/include/CGAL/make_surface_mesh.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"The 3D Mesh Generation package (see https://doc.cgal.org/latest/Mesh_3/) should be used instead."
#include <CGAL/Installation/internal/deprecation_warning.h>

#include <CGAL/tags.h>
#include <CGAL/Surface_mesher_generator.h>

#include <CGAL/Surface_mesh_complex_2_in_triangulation_3.h>
Expand Down

0 comments on commit 76a829e

Please sign in to comment.