diff --git a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationCellBase_3.h b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationCellBase_3.h index 530ec67c984..c9567fd4427 100644 --- a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationCellBase_3.h +++ b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationCellBase_3.h @@ -17,4 +17,29 @@ the `CGAL::Constrained_Delaunay_triangulation_3` class template. */ class ConstrainedDelaunayTriangulationCellBase_3 { public: + bool is_marked() const; + bool is_marked(CDT_3_cell_marker m); + void set_mark(CDT_3_cell_marker m); + void clear_mark(CDT_3_cell_marker m); + void clear_marks(); + + bool is_facet_constrained(int i); + + template + void set_facet_constraint(int i, CDT_3_face_index face_id, + Facet_handle facet_2d); + + CDT_3_face_index face_constraint_index(int i); + + template + auto face_2 (const CDT_2& cdt, int i); +}; + +/// @brief Enum type for cell markers. +enum class CDT_3_cell_marker { + CLEAR = 0, + IN_REGION = 1, + VISITED = 1, + ON_REGION_BOUNDARY = 2, + nb_of_markers }; diff --git a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationVertexBase_3.h b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationVertexBase_3.h index c79c468e6c6..635a9204dc1 100644 --- a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationVertexBase_3.h +++ b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Concepts/ConstrainedDelaunayTriangulationVertexBase_3.h @@ -1,3 +1,8 @@ +/*! @brief a signed integral type + * \relates ConstrainedDelaunayTriangulationVertexBase_3 + */ +using CDT_3_face_index = int; + /*! \cgalConcept @@ -17,4 +22,48 @@ the `CGAL::Constrained_Delaunay_triangulation_3` class template. */ class ConstrainedDelaunayTriangulationVertexBase_3 { public: + void set_on_constraint(auto constraint_id); + + int number_of_incident_constraints() const; + + void set_mark(CDT_3_vertex_marker marker); + + void clear_marks(); + + void clear_mark(CDT_3_vertex_marker marker); + + bool is_marked(CDT_3_vertex_marker marker) const; + + bool is_marked() const; + + template + auto constraint_id(const Triangulation&) const; + + void set_Steiner_vertex_in_face(CDT_3_face_index face_index); + + CDT_3_face_index face_index() const; + + CDT_3_vertex_type vertex_type() const; + void set_vertex_type(CDT_3_vertex_type type); + bool is_Steiner_vertex_on_edge() const; + bool is_Steiner_vertex_in_face() const; }; + +namespace CGAL { +/// \enum CDT_3_vertex_marker +/// @brief Enum type for vertex markers +/// \addtogroup PkgCT_3_enums +enum class CDT_3_vertex_marker { + CLEAR = 0, ///< No marker + REGION_BORDER, ///< On the border of the region + REGION_INSIDE, ///< Inside the region + CAVITY, ///< In the cavity + CAVITY_ABOVE, ///< In the cavity above + CAVITY_BELOW, ///< In the cavity below + nb_of_markers ///< Number of markers +}; + +/// \enum CDT_3_vertex_type +/// \addtogroup PkgCT_3_enums +enum class CDT_3_vertex_type { FREE, CORNER, STEINER_ON_EDGE, STEINER_IN_FACE }; +} diff --git a/Constrained_triangulation_3/doc/Constrained_triangulation_3/PackageDescription.txt b/Constrained_triangulation_3/doc/Constrained_triangulation_3/PackageDescription.txt index fdce18f529b..d0d2f45cdb5 100644 --- a/Constrained_triangulation_3/doc/Constrained_triangulation_3/PackageDescription.txt +++ b/Constrained_triangulation_3/doc/Constrained_triangulation_3/PackageDescription.txt @@ -1,5 +1,7 @@ /// \defgroup PkgCT_3Ref 3D Constrained Triangulations Reference +/// \defgroup PkgCT_3_enums Enumerations + /*! \addtogroup PkgCT_3Ref \cgalPkgDescriptionBegin{3D Constrained Triangulations,PkgCT_3}