The class-template Envelope_diagram_2<EnvTraits> 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.
#include <CGAL/envelope_3.h>
typedef Envelope_diagram_2<EnvTraits> | ||
Self; | ||
typedef Arrangement_2<EnvTraits> | Base; |
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.
|
Envelope_diagram_2<EnvTraits> diag; | |
constructs an empty diagram containing one unbounded face,
which corresponds to the entire plane and has no originators.
| |
Envelope_diagram_2<EnvTraits> diag ( Self other); | |
copy constructor.
| |
Envelope_diagram_2<EnvTraits> diag ( EnvTraits *traits); | |
constructs an empty diagram that uses the given traits
instance for performing the geometric predicates.
|
size_t | e.number_of_surfaces () const | returns the number of xy-monotone surfaces that induce e. | ||
Surface_const_iterator | e.surfaces_begin () const | returns an iterator for the first xy-monotone surface that induces e. | ||
Surface_const_iterator | e.surfaces_end () const | returns a past-the-end iterator for the xy-monotone surfaces that induce e. | ||
Xy_monotone_surface_3 | e.surface () const |
returns the first xy-monotone surface that induce e.
|
size_t | f.number_of_surfaces () const | returns the number of xy-monotone surfaces that induce f. | ||
Surface_const_iterator | f.surfaces_begin () const | returns an iterator for the first xy-monotone surface that induces f. | ||
Surface_const_iterator | f.surfaces_end () const | returns a past-the-end iterator for the xy-monotone surfaces that induce f. | ||
Xy_monotone_surface_3 | f.surface () const |
returns the first xy-monotone surface that induce f.
|