mirror of https://github.com/CGAL/cgal
doc for SimplicialMeshCellBase_3 concept and class
This commit is contained in:
parent
6c243f9bf6
commit
01c97c1498
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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<Tr,CornerIndex,CurveIndex>`
|
||||
\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<class GT,
|
||||
typename Subdomain_index,
|
||||
typename Surface_patch_index,
|
||||
|
|
@ -55,13 +46,15 @@ template<class GT,
|
|||
class Simplicial_mesh_vertex_3
|
||||
: public Vb
|
||||
{
|
||||
private :
|
||||
using Cmvb3_base = Vb;
|
||||
|
||||
public:
|
||||
typedef Vb Cmvb3_base;
|
||||
typedef typename Vb::Vertex_handle Vertex_handle;
|
||||
using Vertex_handle = typename Vb::Vertex_handle;
|
||||
|
||||
// Types
|
||||
typedef boost::variant<Subdomain_index, Surface_patch_index, Curve_index, Corner_index> Index;
|
||||
typedef typename GT::FT FT;
|
||||
using Index = boost::variant<Subdomain_index, Surface_patch_index, Curve_index, Corner_index>;
|
||||
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<GT>`.
|
||||
`Triangulation_vertex_base_3<Gt>`.
|
||||
|
||||
\cgalModels `SimplicialMeshVertexBase_3`
|
||||
|
||||
\sa `CGAL::Mesh_complex_3_in_triangulation_3<Tr,CornerIndex,CurveIndex>`
|
||||
\sa `CGAL::Mesh_complex_3_in_triangulation_3`
|
||||
\sa `CGAL::Mesh_vertex_base_3`
|
||||
\sa `MeshDomain_3`
|
||||
\sa `MeshDomainWithFeatures_3`
|
||||
*/
|
||||
template<class GT,
|
||||
template<class Gt,
|
||||
typename Subdomain_index,
|
||||
typename Surface_patch_index,
|
||||
typename Curve_index,
|
||||
typename Corner_index,
|
||||
class Vb = Triangulation_vertex_base_3<GT> >
|
||||
class Vb = Triangulation_vertex_base_3<Gt> >
|
||||
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<TDS3>::Other;
|
||||
using Other = Simplicial_mesh_vertex_3 <GT,
|
||||
using Other = Simplicial_mesh_vertex_3 <Gt,
|
||||
Subdomain_index,
|
||||
Surface_patch_index,
|
||||
Curve_index,
|
||||
|
|
|
|||
Loading…
Reference in New Issue