cgal/Kernel_23/doc/Kernel_23/CGAL/Projection_traits_3.h

53 lines
1.6 KiB
C++

namespace CGAL{
/*!
\ingroup kernel_classes
The class `Projection_traits_3` works similarly to the `Projection_traits_xy_3`,
`Projection_traits_xz_3`, and `Projection_traits_yz_3` traits classes, enabling
the use of 2D algorithms on the projections of 3D data onto an arbitrary plane.
\tparam K must be a model of `Kernel`
\note Internal constructions (projections) are used in the predicate and
construction functors of this class. If `K` is a model of `Kernel` providing exact
constructions or if `K` is a `CGAL::Filtered_kernel` (such as for
`CGAL::Exact_predicates_inexact_constructions_kernel`), this class automatically
provides exact predicates.
\cgalModels `TriangulationTraits_2`
\cgalModels `DelaunayTriangulationTraits_2`
\cgalModels `ConstrainedTriangulationTraits_2`
\cgalModels `PolygonTraits_2`
\cgalModels `ConformingDelaunayTriangulationTraits_2`
\sa `CGAL::Projection_traits_xy_3`
\sa `CGAL::Projection_traits_xz_3`
\sa `CGAL::Projection_traits_yz_3`
*/
template <class K>
class Projection_traits_3
{
public:
/// \name Functors
/// The functors provided by this class are those listed in the
/// concepts. The functors operate on the 2D projections of their
/// arguments. They come with preconditions that projections of the
/// arguments are non-degenerate, e.g. a line segment does not project
/// on a single point, two points do not project onto the same point, etc.
/// \name Creation
///@{
/*!
* \brief Constructor
*
* \param normal a vector orthogonal to the projection plane.
*/
Projection_traits_3(const typename K::Vector_3& normal);
///@}
};
} // end namespace CGAL