EnvelopeDiagramEdge

Definition

An edge record in an envelope diagram, which represents a continuous portion of the x-axis. It is associated with a (possibly empty) set of curves that induce the envelope over this portion of the x-axis. Note that all curves in this set overlap over the interval represented by the edge.

Types

EnvelopeDiagramEdge::Size
the size type (convertible to size_t).


EnvelopeDiagramEdge::Vertex
the corresponding diagram-vertex type.


EnvelopeDiagramEdge::X_monotone_curve_2
the x-monotone curve type.

Creation

EnvelopeDiagramEdge e;
default constructor.


EnvelopeDiagramEdge e ( other);
copy constructor.

Access Functions

Size e.number_of_curves () returns the number of x-monotone curves associated with e.
bool e.is_empty () returns whether e represents an empty interval - namely, whether the set of x-monotone curves associated with it is empty.

X_monotone_curve_2 e.curve () returns a representative x-monotone curve associated with e.
Precondition: e does not represent an empty interval.

Curve_const_iterator e.curves_begin () return an iterator for the first x-monotone curve associated with e.
Curve_const_iterator e.curves_end () return a past-the-end iterator for the x-monotone curves associated with e.

Vertex_const_handle e.left () returns the vertex lying to e's left.
Precondition: e is not the leftmost edge in the diagram.

Vertex_const_handle e.right () returns the vertex lying to e's right.
Precondition: e is not the rightmost edge in the diagram.

Modifiers

void e.clear_curves () clears the set of curves associated with e.
void e.add_curve ( X_monotone_curve_2 cv)
adds the x-monotone curve cv to the set of curves associated with e.
void e.add_curves ( Curve_const_iterator begin, Curve_const_iterator end)
adds the given range of x-monotone curves to the set of curves associated with e.

void e.set_left ( Vertex_const_handle v)
sets the vertex lying to the left of e to be v.
void e.set_right ( Vertex_const_handle v)
sets the vertex lying to the right of e to be v.

See Also

EnvelopeDiagram_1
EnvelopeDiagramVertex