mirror of https://github.com/CGAL/cgal
59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
|
|
namespace CGAL {
|
|
|
|
/*!
|
|
\ingroup kernel_conversion
|
|
|
|
`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>`.
|
|
|
|
\sa `CGAL::Homogeneous<RingNumberType>`
|
|
\sa `CGAL::Simple_homogeneous<RingNumberType>`
|
|
|
|
*/
|
|
template< typename K1, typename K2, typename RTConverter, typename FTConverter >
|
|
class Homogeneous_converter {
|
|
public:
|
|
|
|
/// \name Creation
|
|
/// @{
|
|
|
|
/*!
|
|
%Default constructor.
|
|
*/
|
|
Homogeneous_converter<>();
|
|
|
|
/// @}
|
|
|
|
/// \name Operations
|
|
/// Similar operators as the one shown are defined for the other
|
|
/// kernel traits geometric types `Point_3`, `Vector_2`...
|
|
/// @{
|
|
|
|
/*!
|
|
returns a `K2::Point_2` which coordinates are those of `p`,
|
|
converted by `RTConverter`.
|
|
*/
|
|
K2::Point_2 operator()(const K1::Point_2&p);
|
|
|
|
/// @}
|
|
|
|
}; /* end Homogeneous_converter */
|
|
} /* end namespace CGAL */
|