CGAL 6.1 - 3D Envelopes
Loading...
Searching...
No Matches
CGAL::Envelope_diagram_2< EnvTraits > Class Template Reference

#include <CGAL/envelope_3.h>

Inherits Arrangement_2< EnvTraits >.

Definition

template<typename EnvTraits>
class CGAL::Envelope_diagram_2< EnvTraits >

The class-template Envelope_diagram_2 represents the minimization diagram that corresponds to the lower envelope of a set of curves, or the maximization diagram that corresponds to their upper envelope.

It is parameterized by a traits class that must be a model of the EnvelopeTraits_3 concept, and is basically a planar arrangement of \( x\)-monotone curves, as defined by this traits class. These \( x\)-monotone curves are the projections of boundary curves of \( xy\)-monotone surfaces, or the intersection curves between such surfaces, onto the \( xy\)-plane. Thus, it is possible to traverse the envelope diagram using the methods inherited from the Arrangement_2 class.

The envelope diagram extends the arrangement features (namely the vertices, halfedges, and faces), such that each feature stores a container of originators - namely, the \( xy\)-monotone surfaces (instances of the type EnvTraits::Xy_monotone_surface_3) that induce the lower envelope (or the upper envelope, in case of a maximization diagram) over this feature. The envelope diagram provides access methods to these originators.

Examples
Envelope_3/envelope_planes.cpp, Envelope_3/envelope_spheres.cpp, and Envelope_3/envelope_triangles.cpp.

Classes

class  Face
 
class  Halfedge
 
class  Vertex
 

Types

typedef Envelope_diagram_2< EnvTraits > Self
 
typedef Arrangement_2< EnvTraits > Base
 
typedef unspecified_type Surface_const_iterator
 an iterator for the \( xy\)-monotone surfaces that induce a diagram feature.
 

Creation

 Envelope_diagram_2 ()
 constructs an empty diagram containing one unbounded face, which corresponds to the entire plane and has no originators.
 
 Envelope_diagram_2 (const Self &other)
 copy constructor.
 
 Envelope_diagram_2 (EnvTraits *traits)
 constructs an empty diagram that uses the given traits instance for performing the geometric predicates.
 

Member Typedef Documentation

◆ Base

template<typename EnvTraits >
typedef Arrangement_2<EnvTraits> CGAL::Envelope_diagram_2< EnvTraits >::Base

◆ Self

template<typename EnvTraits >
typedef Envelope_diagram_2<EnvTraits> CGAL::Envelope_diagram_2< EnvTraits >::Self

◆ Surface_const_iterator

template<typename EnvTraits >
typedef unspecified_type CGAL::Envelope_diagram_2< EnvTraits >::Surface_const_iterator

an iterator for the \( xy\)-monotone surfaces that induce a diagram feature.

Its value-type is EnvTraits::Xy_monotone_surface_3.

Constructor & Destructor Documentation

◆ Envelope_diagram_2() [1/3]

template<typename EnvTraits >
CGAL::Envelope_diagram_2< EnvTraits >::Envelope_diagram_2 ( )

constructs an empty diagram containing one unbounded face, which corresponds to the entire plane and has no originators.

◆ Envelope_diagram_2() [2/3]

template<typename EnvTraits >
CGAL::Envelope_diagram_2< EnvTraits >::Envelope_diagram_2 ( const Self other)

copy constructor.

◆ Envelope_diagram_2() [3/3]

template<typename EnvTraits >
CGAL::Envelope_diagram_2< EnvTraits >::Envelope_diagram_2 ( EnvTraits *  traits)

constructs an empty diagram that uses the given traits instance for performing the geometric predicates.