CGAL 6.1 - 2D Triangulations on Hyperbolic Surfaces
Loading...
Searching...
No Matches
CGAL::Hyperbolic_fundamental_domain_2< Traits > Class Template Reference

#include <CGAL/Hyperbolic_fundamental_domain_2.h>

Definition

template<class Traits>
class CGAL::Hyperbolic_fundamental_domain_2< Traits >

represents a fundamental domain of a closed orientable hyperbolic surface.

The domain is given as a polygon \( P \) represented by the list of its vertices in the Poincaré disk model, together with a pairing of the sides of \( P \). The \( n \)-th side of \( P \) is the side between the \( n \)-th and the \( (n+1) \)-th vertex, where indices are modulo the number of vertices of \( P \). The side pairings are represented by a list of integers, such that if the \( n \)-th integer of the list is \( m \), then the \( n \)-th side is paired to the \( m \)-th side.

Template Parameters
Traitsmust be a model of HyperbolicSurfaceTraits_2.
See also
Hyperbolic_fundamental_domain_factory_2
Examples
Triangulation_on_hyperbolic_surface_2/Triangulation_on_hyperbolic_surface_2.cpp.

Types

typedef Traits::Hyperbolic_point_2 Point
 Point type.
 

Creation

 Hyperbolic_fundamental_domain_2 ()
 Default constructor.
 
template<class PointRange , class PairingRange >
 Hyperbolic_fundamental_domain_2 (PointRange &vertices, PairingRange &pairings)
 Constructor from vertices and pairings ranges.
 

Access Functions

std::size_t size () const
 returns the number of vertices (equivalently, the number of sides) of the domain.
 
const Pointvertex (std::size_t i) const
 returns the i-th vertex.
 
std::size_t paired_side (std::size_t i) const
 returns the index of the side paired to the i-th side.
 
Hyperbolic_isometry_2< Traits > side_pairing (std::size_t i) const
 returns the isometry that maps the side paired to side \( i \) to side \( i \).
 

Validity

bool is_valid () const
 checks that the number of vertices is even, that there are as many side pairings as vertices, and that the vertices all lie within the open unit disk.
 

Constructor & Destructor Documentation

◆ Hyperbolic_fundamental_domain_2()

template<class Traits >
template<class PointRange , class PairingRange >
CGAL::Hyperbolic_fundamental_domain_2< Traits >::Hyperbolic_fundamental_domain_2 ( PointRange &  vertices,
PairingRange &  pairings 
)

Constructor from vertices and pairings ranges.

Template Parameters
PointRangea model of the concepts RandomAccessContainer whose value_type is Point.
PairingRangea model of the concepts RandomAccessContainer whose value_type is std::size_t.

Member Function Documentation

◆ paired_side()

template<class Traits >
std::size_t CGAL::Hyperbolic_fundamental_domain_2< Traits >::paired_side ( std::size_t  i) const

returns the index of the side paired to the i-th side.

Precondition
is_valid()

◆ side_pairing()

template<class Traits >
Hyperbolic_isometry_2< Traits > CGAL::Hyperbolic_fundamental_domain_2< Traits >::side_pairing ( std::size_t  i) const

returns the isometry that maps the side paired to side \( i \) to side \( i \).

Precondition
is_valid()

◆ size()

template<class Traits >
std::size_t CGAL::Hyperbolic_fundamental_domain_2< Traits >::size ( ) const

returns the number of vertices (equivalently, the number of sides) of the domain.

Precondition
Hyperbolic_fundamental_domain_2< Traits >::is_valid()

◆ vertex()

template<class Traits >
const Point & CGAL::Hyperbolic_fundamental_domain_2< Traits >::vertex ( std::size_t  i) const

returns the i-th vertex.

Precondition
is_valid()