This concept defines the representation of an envelope diagram of a set of planar curve. The envelope diagram is a subdivision of the $$xaxis into $$0dimensional cells (vertices) and $$1dimensional cells (edges), such that the identity of the curves that induce the lower envelope (or the upper envelope) over each cell is fixed.
A vertex in an envelope diagram is therefore associated with a point on the envelope, and corresponds to either a curve endpoint or to an intersection point of two (or more) curves. Therefore each vertex is associated with a set of $$xmonotone curves that induce the envelope over this point. Each vertex is incident to two edges, one lying to its left and the other to its right.
An edge in the envelope diagram represents a continuous portion of the $$xaxis, and is associated with a (possibly empty) set of curves that induce the envelope over this portion of the $$xaxis. An edge may be bounded by two vertices, one to its left and the other to its right. However, the diagram contains two unbounded edges, its leftmost edge, representing the interval $$( , x_{l}), and its rightmost edge, representing the interval $$(x_{r}, ), where $$x_{l} and $$x_{r} are the $$xcoodinates of the leftmost and the rightmost vertices in the diagram, respectively. Note that a diagram may contain no vertices at all, in which case it comprises a single edge.
Note that any model of the EnvelopeDiagram_1 concept must define a geometric traits class, which in turn defines the Point_2 and X_monotone_curve_2 types defined with the diagram features.
 
the geometric traits class.


 the point type. 
 
 the $$xmonotone curve type. 
 
the size type (convertible to size_t).
 
 
an iterator for the $$xmonotone curves that induce a diagram feature.
Its valuetype is X_monotone_curve_2.
 
 
the vertex type, a model of the concept EnvelopeDiagramVertex.
 
 
the edge type, a model of the concept EnvelopeDiagramEdge.
 
 
a handle to a diagram vertex.
 
 
a nonmutable handle to a diagram vertex.
 
 
a handle to a diagram edge.
 
 
a nonmutable handle to a diagram edge.

 
constructs an empty diagram containing one unbounded edge,
which corresponds to the entire plane and has no $$xmonotone
curves that are associated with it.
 
 
copy constructor.


 
sets the leftmost edge of the diagram to be e.  

 
sets the rightmost edge of the diagram to be e.  

 creates a new diagram vertex, associated with the point p. 

 creates a new diagram edge. 

 
deletes the given vertex v.  

 deletes the given edge e. 