\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 5.0.4 - 2D Periodic Hyperbolic Triangulations
Periodic_4HyperbolicTriangulationFaceBase_2 Concept Reference

Definition

Refines:
TriangulationFaceBase_2

A refinement of the concept TriangulationFaceBase_2 that adds an interface for hyperbolic translations.

At the base level, a face stores handles to its incident vertices and to its neighboring faces. Compare with Section Software Design of the 2D Triangulations package. The vertices and neighbors are indexed counter-clockwise 0, 1, and 2. Neighbor i lies opposite to vertex i.

For periodic hyperbolic triangulations, the face base class needs to store three hyperbolic translations, one for each vertex. Applying each translation to the point stored in the corresponding vertex produces the canonical representative of the face in the hyperbolic plane. Hyperbolic translations are represented by a nested type which is provided by the concept Periodic_4HyperbolicDelaunayTriangulationTraits_2.

Has Models:
CGAL::Periodic_4_hyperbolic_triangulation_face_base_2
See also
TriangulationDataStructure_2
Periodic_4HyperbolicTriangulationVertexBase_2

Types

typedef Periodic_4HyperbolicDelaunayTriangulationTraits_2 Geometric_traits
 
typedef Geometric_traits::Hyperbolic_translation Hyperbolic_translation
 

Creation

 Periodic_4HyperbolicTriangulationFaceBase_2 ()
 Default constructor.
 
 Periodic_4HyperbolicTriangulationFaceBase_2 (const Vertex_handle &v0, const Vertex_handle &v1, const Vertex_handle &v2)
 Creates a face with vertices v0, v1 and v1.
 
 Periodic_4HyperbolicTriangulationFaceBase_2 (const Vertex_handle &v0, const Vertex_handle &v1, const Vertex_handle &v2, const Face_handle &n0, const Face_handle &n1, const Face_handle &n2)
 Creates a face with vertices v0, v1 and v1, setting also neighborhood relations with n0, n1 and n2.
 

Access functions

Hyperbolic_translation translation (int i) const
 Returns the translation corresponding to the vertex i. More...
 
void set_translation (const int &i, const Hyperbolic_translation &new_tr)
 Sets the i-th translation to new_tr. More...
 
void reorient ()
 Changes the orientation of the face by exchanging vertex(0) with vertex(1), neighbor(0) with neighbor(1), and translation(0) with translation(1). More...
 

Member Function Documentation

◆ reorient()

void Periodic_4HyperbolicTriangulationFaceBase_2::reorient ( )

Changes the orientation of the face by exchanging vertex(0) with vertex(1), neighbor(0) with neighbor(1), and translation(0) with translation(1).

See also
TriangulationFaceBase_2::reorient()

◆ set_translation()

void Periodic_4HyperbolicTriangulationFaceBase_2::set_translation ( const int &  i,
const Hyperbolic_translation new_tr 
)

Sets the i-th translation to new_tr.

Precondition
\( 0 \leq i \leq 2\).

◆ translation()

Hyperbolic_translation Periodic_4HyperbolicTriangulationFaceBase_2::translation ( int  i) const

Returns the translation corresponding to the vertex i.

Precondition
\( 0 \leq i \leq 2\).