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` and `Homogeneous` (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`, 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`. \sa `CGAL::Homogeneous` \sa `CGAL::Simple_homogeneous` */ 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 */