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

#include <CGAL/Hyperbolic_isometry_2.h>

Definition

template<class Traits>
class CGAL::Hyperbolic_isometry_2< Traits >

represents an isometry in the Poincaré disk model.

The isometry \( f \) is represented by a list \( (c_0, c_1, c_2, c_3) \) of complex numbers, so that \( f(z) = (c_0 z + c_1) / (c_2 z + c_3) \) holds on every complex \( z \) in the open unit disk.

Functionalities are offered to compose isometries, and apply an isometry to a point.

Template Parameters
Traitsmust be a model of HyperbolicSurfaceTraits_2.

Public Member Functions

void set_to_identity ()
 sets the isometry to the identity.
 
void set_coefficients (const Complex_number &c0, const Complex_number &c1, const Complex_number &c2, const Complex_number &c3)
 sets the coefficients of the isometry.
 
void set_coefficient (int index, const Complex_number &coefficient)
 sets a particular coefficient of the isometry.
 

Types

typedef Traits::Complex Complex_number
 Complex number type.
 
typedef Traits::Hyperbolic_point_2 Point
 Point type.
 

Creation

 Hyperbolic_isometry_2 ()
 Default constructor to the identity.
 
 Hyperbolic_isometry_2 (const Complex_number &c0, const Complex_number &c1, const Complex_number &c2, const Complex_number &c3)
 Constructor from coefficients.
 

Access Functions

const Complex_numberget_coefficient (int index) const
 returns the index-th coefficient.
 

Operations

Point evaluate (const Point &p) const
 evaluates the isometry at point \( p \).
 
Point operator() (const Point &p) const
 evaluates the isometry at point \( p \).
 
template<class Traits >
Hyperbolic_isometry_2< Traits > operator* (const Hyperbolic_isometry_2< Traits > &iso1, const Hyperbolic_isometry_2< Traits > &iso2)
 returns the composition of two isometries.
 

Member Function Documentation

◆ set_coefficient()

template<class Traits >
void CGAL::Hyperbolic_isometry_2< Traits >::set_coefficient ( int  index,
const Complex_number coefficient 
)

sets a particular coefficient of the isometry.

Warning
The implementation does not check that the resulting transformation is an isometry.

◆ set_coefficients()

template<class Traits >
void CGAL::Hyperbolic_isometry_2< Traits >::set_coefficients ( const Complex_number c0,
const Complex_number c1,
const Complex_number c2,
const Complex_number c3 
)

sets the coefficients of the isometry.

Warning
The implementation does not check that the resulting transformation is an isometry.