CGAL 6.0 - 2D Hyperbolic Surface Triangulations
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.

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

Template Parameters
Traitsis the traits class and must be a model of HyperbolicSurfaceTraits_2 (default model: Hyperbolic_surface_traits_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 manually.
 
void set_coefficient (int index, const Complex_number &coefficient)
 sets a particular coefficient of the isometry manually.
 

Types

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

Creation

 Hyperbolic_isometry_2 ()
 Default constructor.
 

Access Functions

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

Operations

Point evaluate (const Point &point) const
 evaluates the isometry at the point.
 
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.
 

Input/Output

std::ostream & operator<< (std::ostream &s, const Hyperbolic_isometry_2< Traits > &isometry)
 writes the isometry in a stream.
 

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 manually.

Note
Be careful when doing so: the implementation does not check that the resulting Möbius transform fixes the unit circle.

◆ 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 manually.

Note
Be careful when doing so: the implementation does not check that the resulting Möbius transform fixes the unit circle.