CGAL 6.0 - 3D Envelopes
Loading...
Searching...
No Matches
CGAL::Env_plane_traits_3< Kernel, ArrLinearTraits > Class Template Reference

#include <CGAL/Env_plane_traits_3.h>

Inherits from

CGAL::Arr_linear_traits_2< typename Kernel >.

Definition

template<typename Kernel, typename ArrLinearTraits = Arr_linear_traits_2<Kernel>>
class CGAL::Env_plane_traits_3< Kernel, ArrLinearTraits >

The traits class template Env_plane_traits_3 models the EnvelopeTraits_3 concept, and is used for the construction of lower and upper envelopes of planes and half planes in the space.

When the template is instantiated, the template parameter Kernel must be substituted by a CGAL-kernel model, the number type of which should support exact rational arithmetic, to avoid numerical errors and robustness problems. In particular, the number type should support the arithmetic operations \( +\), \( -\), \( \times\), and \( \div\) without loss of precision. For optimal performance, we recommend instantiating the traits class with the predefined Exact_predicates_exact_constructions_kernel provided by CGAL. Using this kernel guarantees exactness and robustness, while it incurs only a minor overhead (in comparison to working with a fast, inexact number type) for most inputs.

The second template parameter, namely ArrLinearTraits, should be substituted by a 2D arrangement geometry traits class that supports unbounded linear objects, i.e, lines, rays, and segments. By default it is substituted by Arr_linear_traits_2<Kernel>.

Note that an entire plane has no boundaries, and the projection of a half-plane is an (unbounded) line. Naturally, rays and segments may occur as a result of overlaying projections of several half planes. Indeed, Env_plane_traits_3 inherits from the traits class that substitutes ArrLinearTraits, and extends it by adding operations on planes and half planes. The nested Xy_monotone_surface_3 and Surface_3 types refer to the same type. They are constructible from a Kernel::Plane_3 in case of an entire plane, or from Kernel::Plane_3 and Kernel::Line_2 in case of a half-plane. The line orientation determines which half is considered.

Is model of
EnvelopeTraits_3
Examples
Envelope_3/envelope_planes.cpp.

Additional Inherited Members

- Public Types inherited from CGAL::Arr_linear_traits_2< typename Kernel >
typedef Kernel::Segment_2 Segment_2
 
typedef Kernel::Ray_2 Ray_2
 
typedef Kernel::Line_2 Line_2
 
typedef Kernel::Point_2 Point_2
 
typedef X_monotone_curve_2 Curve_2
 
- Public Member Functions inherited from CGAL::Arr_linear_traits_2< typename Kernel >
class CGAL::Arr_linear_traits_2::Trim_2 trim_2_object () const