CGAL 5.4.5 - 3D Envelopes
CGAL::Envelope_diagram_2< EnvTraits > Class Template Reference

#include <CGAL/envelope_3.h>

Inherits from

CGAL::Arrangement_2< EnvTraits >.

Definition

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. More...
 

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.
 

Additional Inherited Members

- Public Types inherited from CGAL::Arrangement_2< EnvTraits >
typedef Traits Geometry_traits
 
typedef Default_planar_topology< Geometry_traits, Dcel >::Traits Topology_traits
 
typedef Arrangement_on_surface_2< Geometry_traits, Topology_traitsBase
 
typedef Base::Point_2 Point_2
 
typedef Base::X_monotone_curve_2 X_monotone_curve_2
 
typedef Base::Curve_2 Curve_2
 
typedef Base::Size Size
 
typedef Base::Vertex Vertex
 
typedef Base::Halfedge Halfedge
 
typedef Base::Face Face
 
typedef Base::Vertex_handle Vertex_handle
 
typedef Base::Halfedge_handle Halfedge_handle
 
typedef Base::Face_handle Face_handle
 
typedef Base::Vertex_iterator Vertex_iterator
 
typedef Base::Halfedge_iterator Halfedge_iterator
 
typedef Base::Edge_iterator Edge_iterator
 
typedef Base::Face_iterator Face_iterator
 
typedef Base::Unbounded_face_iterator Unbounded_face_iterator
 
typedef Base::Halfedge_around_vertex_circulator Halfedge_around_vertex_circulator
 
typedef Base::Ccb_halfedge_circulator Ccb_halfedge_circulator
 
typedef Base::Hole_iterator Hole_iterator
 
typedef Base::Isolated_vertex_iterator Isolated_vertex_iterator
 
typedef Base::Vertex_handle Vertex_const_handle
 
typedef Base::Halfedge_handle Halfedge_const_handle
 
typedef Base::Face_handle Face_const_handle
 
typedef Base::Vertex_iterator Vertex_const_iterator
 
typedef Base::Halfedge_iterator Halfedge_const_iterator
 
typedef Base::Edge_iterator Edge_const_iterator
 
typedef Base::Face_iterator Face_const_iterator
 
typedef Base::Unbounded_face_iterator Unbounded_face_const_iterator
 
typedef Base::Halfedge_around_vertex_circulator Halfedge_around_const_vertex_circulator
 
typedef Base::Ccb_halfedge_circulator Ccb_halfedge_const_circulator
 
typedef Base::Hole_iterator Hole_const_iterator
 
typedef Base::Isolated_vertex_iterator Isolated_vertex_const_iterator
 
- Public Member Functions inherited from CGAL::Arrangement_2< EnvTraits >
 Arrangement_2 ()
 
 Arrangement_2 (const Arrangement_2< Traits, Dcel > &other)
 
 Arrangement_2 (const Traits *traits)
 
Arrangement_2< Traits, Dcel > & operator= (other)
 
void assign (const Arrangement_2< Traits, Dcel > &other)
 
void clear ()
 
Traits * traits ()
 

Member Typedef Documentation

◆ 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.