\( \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 4.8 - 2D and 3D Linear Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Homogeneous_converter< K1, K2, RTConverter, FTConverter > Class Template Reference
Cartesian/Homogenous Conversion

`#include <CGAL/Homogeneous_converter.h>`

## Definition

`Homogeneous_converter` converts objects from the kernel traits `K1` to the kernel traits `K2`.

Those traits must be of the form `Homogeneous<RT1>` and `Homogeneous<RT2>` (or the equivalent with `Simple_homogeneous`). It then provides the following operators to convert objects from `K1` to `K2`.

The third template parameter `RTConverter` is a function object that must provide `K2::RT operator()(const K1::RT &n);` that converts `n` to an `K2::RT` that has the same value.

The default value of this parameter is `CGAL::NT_converter<K1::RT, K2::RT>`, which uses the conversion operator from `K1::RT` to `K2::RT`.

Similarly, the fourth template parameter must provide `K2::FT operator()(const K1::FT &n);` that converts `n` to an `K2::FT` that has the same value. Its default value is `CGAL::NT_converter<K1::FT, K2::FT>`.

See Also
  `CGAL::Homogeneous<RingNumberType>`
  `CGAL::Simple_homogeneous<RingNumberType>`

## Creation
| Homogeneous_converter ()
| Default constructor.

## Operations
Similar operators as the one shown are defined for the other kernel traits geometric types `Point_3`, `Vector_2`...
K2::Point_2 | operator() (const K1::Point_2 &p)
| returns a `K2::Point_2` which coordinates are those of `p`, converted by `RTConverter`.