cgal/Triangulation_2/doc/Triangulation_2/Concepts/ConstrainedTriangulationFac...

116 lines
2.4 KiB
C++

/*!
\ingroup PkgTriangulation2Concepts
\cgalConcept
In a constrained triangulation,
the information about constrained edges is stored in the
faces of the triangulation.
The base face of a constrained triangulation
has to be a model of the concept
`ConstrainedTriangulationFaceBase_2` which refines the concept
`TriangulationFaceBase_2`
providing functionalities to deal with
constraints.
\cgalRefines{TriangulationFaceBase_2}
\cgalHeading{Types}
Defines the same types as the `TriangulationFaceBase_2` concept
\cgalHasModelsBegin
\cgalHasModels{CGAL::Constrained_triangulation_face_base_2<Traits>}
\cgalHasModelsEnd
\sa `TriangulationFaceBase_2`
\sa `CGAL::Constrained_triangulation_2<Traits,Tds>`
\sa `CGAL::Constrained_triangulation_face_base_2<Traits>`
*/
class ConstrainedTriangulationFaceBase_2 {
public:
/// \name Access Functions
/// @{
/*!
returns `true` if the edge between the face and its neighbor
`neighbor(i)` is constrained.
\pre \f$ 0\leq i \leq2\f$.
*/
bool is_constrained(int i);
/// @}
/// \name Modifiers
/// @{
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
sets the edge between the face and its neighbor `neighbor(i)`
as a constrained or unconstrained edge according to `b`.
\cgalAdvancedEnd
*/
void set_constraint(int i, bool b);
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
sets the status (constrained or unconstrained) of the three edges of the face.
\cgalAdvancedEnd
*/
void set_constraints(bool c0, bool c1, bool c2);
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
changes the orientation of the face by exchanging `vertex(0)`
with `vertex(1)` and `neighbor(0)` with `neighbor(1)`
and the corresponding constrained status.
\cgalAdvancedEnd
*/
void reorient();
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
performs a counterclockwise permutation of the
vertices, neighbors and constrained status of the face.
\cgalAdvancedEnd
*/
void ccw_permute();
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
performs a clockwise permutation of the
vertices and neighbors and constrained status of the face.
\cgalAdvancedEnd
*/
void cw_permute();
/// @}
/// \name Miscellaneous
/// @{
/*!
\cgalAdvancedFunction
\cgalAdvancedBegin
tests the validity of the face as a face of a plain
triangulation and additionally checks if the edges of the face are
consistently marked as constrained or unconstrained edges in the face
and its neighbors.
\cgalAdvancedEnd
*/
bool is_valid();
/// @}
}; /* end ConstrainedTriangulationFaceBase_2 */