diff --git a/SMDS_3/doc/SMDS_3/Concepts/SimplicialMeshCellBase_3.h b/SMDS_3/doc/SMDS_3/Concepts/SimplicialMeshCellBase_3.h index c6bb2d98968..457331e065e 100644 --- a/SMDS_3/doc/SMDS_3/Concepts/SimplicialMeshCellBase_3.h +++ b/SMDS_3/doc/SMDS_3/Concepts/SimplicialMeshCellBase_3.h @@ -3,9 +3,9 @@ \cgalConcept The concept `SimplicialMeshCellBase_3` describes the requirements -for the `Cell` type of the triangulation +for the `TriangulationDataStructure_3::Cell` type of the triangulation used in the 3D simplicial mesh data structure. The type `SimplicialMeshCellBase_3` -refines the concept `RegularTriangulationCellBaseWithWeightedCircumcenter_3` +refines the concept `Cell` and must be copy constructible. The concept `SimplicialMeshCellBase_3` includes a way to store and retrieve @@ -19,8 +19,7 @@ and four additional helper markers used in some operations to mark for instance the facets that have been visited. - -\cgalRefines `RegularTriangulationCellBaseWithWeightedCircumcenter_3` +\cgalRefines `TriangulationCellBase_3 ` \cgalRefines `CopyConstructible` \cgalHasModel `CGAL::Compact_mesh_cell_base_3` @@ -33,7 +32,6 @@ the facets that have been visited. class SimplicialMeshCellBase_3 { public: -/// \todo update this file from here /// \name Types /// @{ @@ -50,19 +48,21 @@ of the 3D triangulation in which the mesh is embedded. typedef unspecified_type Point; /*! -Type of indices for cells of the input complex. Must match the type `MeshDomain_3::Subdomain_index`. +Type of indices for cells of the input complex. +Must match the type `MeshDomain_3::Subdomain_index` in the context of mesh generation. */ typedef unspecified_type Subdomain_index; /*! -Type of indices for surface patches of the input complex. Must match the type `MeshDomain_3::Surface_patch_index`. +Type of indices for surface patches of the input complex. +Must match the type `MeshDomain_3::Surface_patch_index` in the context of mesh generation. */ typedef unspecified_type Surface_patch_index; /*! Type of indices to be stored at mesh vertices to characterize the lowest dimensional face of the input complex on which a possible future Steiner vertex lies. - Must match the type `MeshDomain_3::Index`. + Must match the type `MeshDomain_3::Index` in the context of mesh generation. */ typedef unspecified_type Index; @@ -97,85 +97,29 @@ sets `Surface_patch_index` of facet `i` to `index`. */ void set_surface_patch_index(int i, Surface_patch_index index); -/*! -Returns `true` iff `facet(i)` has been visited. -*/ -bool is_facet_visited (int i); - -/*! -Marks `facet(i)` as visited. -*/ -void set_facet_visited (int i); - -/*! -Marks `facet(i)` as non-visited. -*/ -void reset_visited (int i); - -/*! -Returns a const reference to the surface center of `facet(i)`. -*/ -const Point_3& get_facet_surface_center(int i); - -/*! -Sets the point `p` as the surface center of `facet(i)`. -*/ -void set_facet_surface_center (int i, Point_3 p); - -/*! -Sets the surface center index of `facet(i)` to `index`. -*/ -void set_facet_surface_center_index(int i, Index index); - -/*! -Returns the surface center index of `facet(i)`. -*/ -Index get_facet_surface_center_index(int i); - -/// Get the erase counter. -/// Only required by the parallel algorithms. -/// See `CGAL::Compact_container` for more details. -unsigned int erase_counter() const; - -/// Sets the erase counter. -/// Only required by the parallel algorithms. -/// See `CGAL::Compact_container` for more details. -void set_erase_counter(unsigned int c); - -/// Increments the erase counter. -/// Only required by the parallel algorithms. -/// See `CGAL::Compact_container` for more details. -void increment_erase_counter(); /// @} /*! \name Internal -These functions are used internally by mesh optimizers. -The class should provide storage, accessors and modificators for two `Vertex_handle` -and two `Cell_handle`.*/ +These functions are used internally by mesh optimizers and tetrahedral remeshing. +The class should provide storage, accessors and modificators for a cache value for sliverity.*/ /// @{ /*! - */ -Cell_handle next_intrusive() const; +void set_sliver_value(double value); /*! - */ -void set_next_intrusive(Cell_handle); +double sliver_value() const; /*! - */ -Cell_handle previous_intrusive() const; +bool is_cache_valid() const; /*! - */ -void set_previous_intrusive(Cell_handle); - +void reset_cache_validity() const; /// @} - -}; /* end MeshCellBase_3 */ +}; /* end SimplicialMeshCellBase_3 */ diff --git a/SMDS_3/include/CGAL/Simplicial_mesh_vertex_base_3.h b/SMDS_3/include/CGAL/Simplicial_mesh_vertex_base_3.h index ed99e5707be..8e65f1f71de 100644 --- a/SMDS_3/include/CGAL/Simplicial_mesh_vertex_base_3.h +++ b/SMDS_3/include/CGAL/Simplicial_mesh_vertex_base_3.h @@ -33,19 +33,10 @@ namespace CGAL { - /*! -\ingroup PkgSMDS3Classes -Class Simplicial_mesh_vertex_base_3 -Adds information to Vb about the localization of the vertex in regards -to the 3D input complex. - -\cgalModels `SimplicialMeshVertexBase_3` - -\sa `CGAL::Mesh_complex_3_in_triangulation_3` -\sa `CGAL::Mesh_vertex_base_3` -\sa `MeshDomain_3` -\sa `MeshDomainWithFeatures_3` -*/ +//Class Simplicial_mesh_vertex_3 +//Adds information to Vb about the localization of the vertex in regards +//to the 3D input complex. +//\cgalModels `SimplicialMeshVertexBase_3` template Index; - typedef typename GT::FT FT; + using Index = boost::variant; + using FT = typename GT::FT; // Constructor Simplicial_mesh_vertex_3() @@ -210,30 +203,34 @@ public: /*! -\ingroup PkgMesh3MeshClasses +\ingroup PkgSMDS3Classes The class `Simplicial_mesh_vertex_base_3` is a model of the concept `SimplicialMeshVertexBase_3`. -It is designed to serve as vertex base class for... +It is designed to serve as vertex base class for 3D simplicial mesh data structures. +It stores and gives access to data about the complex the vertex belongs to, such as the +index of the subcomplex it belongs to. -\tparam GT is the geometric traits class. -It must be a model of the concept +\tparam Gt is the geometric traits class. +It must be a model of the concept `RemeshingTriangulationTraits_3` \tparam Vb is the vertex base class. It has to be a model of the concept `TriangulationVertexBase_3` and defaults to -`Triangulation_vertex_base_3`. +`Triangulation_vertex_base_3`. \cgalModels `SimplicialMeshVertexBase_3` -\sa `CGAL::Mesh_complex_3_in_triangulation_3` +\sa `CGAL::Mesh_complex_3_in_triangulation_3` \sa `CGAL::Mesh_vertex_base_3` +\sa `MeshDomain_3` +\sa `MeshDomainWithFeatures_3` */ -template > + class Vb = Triangulation_vertex_base_3 > struct Simplicial_mesh_vertex_base_3 { using Triangulation_data_structure = internal::Dummy_tds_3; @@ -243,7 +240,7 @@ struct Simplicial_mesh_vertex_base_3 template < class TDS3 > struct Rebind_TDS { using Vb3 = typename Vb::template Rebind_TDS::Other; - using Other = Simplicial_mesh_vertex_3