CGAL 6.3-dev - 2D Envelopes
Loading...
Searching...
No Matches
Reference Manual

Ron Wein and Efi Fogel
This package consists of functions that compute the lower (or upper) envelope of a set of arbitrary curves in 2D. The output is represented as an envelope diagram, namely a subdivision of the \(x\)-axis into intervals, such that the identity of the curves that induce the envelope on each interval is unique.
Introduced in: CGAL 3.3
Depends on: 2D Arrangements, 1D Arrangements
BibTeX: cgal:w-e2-26b
License: GPL

This package consists of functions that compute the lower (or upper) envelope of a set of arbitrary curves in 2D. The output is represented as an envelope diagram, namely a subdivision of the \(x\)-axis into intervals, such that the identity of the curves that induce the envelope over each interval is unique.

Classified Reference Pages

Functions

Concepts

Classes

Topics

 Concepts

Classes

class  CGAL::Envelope_2::Envelope_diagram_1< Traits_2, Allocator >
 This class is the default envelope-diagram class used by envelope functions to represent the minimization or the maximization diagram of a set of curves in the plane. More...

Functions

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::lower_envelope_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag)
 computes the lower envelope of a set of curves in \(\mathbb{R}^2\), given by the range [begin, end).
template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::lower_envelope_x_monotone_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag)
 computes the lower envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end).
template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::lower_envelope_x_monotone_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag, typename EnvelopeDiagram::Shared_traits_2 traits)
 computes the lower envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end) with the help of the arrangement traits object traits responsible for their creation.
template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::upper_envelope_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag)
 computes the upper envelope of a set of curves in \(\mathbb{R}^2\), given by the range [begin, end).
template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::upper_envelope_x_monotone_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag)
 computes the upper envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end).
template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::upper_envelope_x_monotone_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag, typename EnvelopeDiagram::Shared_traits_2 traits)
 computes the upper envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end) with the help of the arrangement traits object traits responsible for their creation.

Function Documentation

◆ lower_envelope_2()

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::lower_envelope_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag )

#include <CGAL/envelope_2.h>

computes the lower envelope of a set of curves in \(\mathbb{R}^2\), given by the range [begin, end).

The lower envelope is represented using the output minimization diagram diag. The geometric traits of diag are used.

Template Parameters
InputIteratormust be an input iterator with value type EnvelopeDiagram::Traits_2::Curve_2.
EnvelopeDiagrammust be a model of the concept EnvelopeDiagram_1.
Examples
Envelope_2/envelope_circles.cpp.

◆ lower_envelope_x_monotone_2() [1/2]

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::lower_envelope_x_monotone_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag )

#include <CGAL/envelope_2.h>

computes the lower envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end).

The lower envelope is represented using the output minimization diagram diag. The geometric traits of diag are used.

Template Parameters
InputIteratormust be an input iterator with value type EnvelopeDiagram::X_monotone_curve_2.
EnvelopeDiagrammust be a model of the concept EnvelopeDiagram_1.
Examples
Envelope_2/convex_hull_2.cpp, and Envelope_2/envelope_segments.cpp.

◆ lower_envelope_x_monotone_2() [2/2]

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::lower_envelope_x_monotone_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag,
typename EnvelopeDiagram::Shared_traits_2 traits )

#include <CGAL/envelope_2.h>

computes the lower envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end) with the help of the arrangement traits object traits responsible for their creation.

Reusing the same traits object improves speed if the traits class caches data. traits is shared, rather than copied. The lower envelope is represented using the output minimization diagram diag.

Template Parameters
InputIteratormust be an input iterator with value type EnvelopeDiagram::X_monotone_curve_2.
EnvelopeDiagrammust be a model of the concept EnvelopeDiagram_1.

◆ upper_envelope_2()

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::upper_envelope_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag )

#include <CGAL/envelope_2.h>

computes the upper envelope of a set of curves in \(\mathbb{R}^2\), given by the range [begin, end).

The upper envelope is represented using the output maximization diagram diag. The geometric traits of diag are used.

Template Parameters
InputIteratormust be an input iterator with value type EnvelopeDiagram::Traits_2::Curve_2.
EnvelopeDiagrammust be a model of the concept EnvelopeDiagram_1.
Examples
Envelope_2/envelope_circles.cpp.

◆ upper_envelope_x_monotone_2() [1/2]

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::upper_envelope_x_monotone_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag )

#include <CGAL/envelope_2.h>

computes the upper envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end).

The upper envelope is represented using the output maximization diagram diag. The geometric traits of diag are used.

Template Parameters
InputIteratormust be an input iterator with value type EnvelopeDiagram::X_monotone_curve_2.
EnvelopeDiagrammust be a model of the concept EnvelopeDiagram_1.
Examples
Envelope_2/convex_hull_2.cpp.

◆ upper_envelope_x_monotone_2() [2/2]

template<typename InputIterator, typename EnvelopeDiagram>
void CGAL::Envelope_2::upper_envelope_x_monotone_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag,
typename EnvelopeDiagram::Shared_traits_2 traits )

#include <CGAL/envelope_2.h>

computes the upper envelope of a set of \(x\)-monotone curves in \(\mathbb{R}^2\), given by the range [begin, end) with the help of the arrangement traits object traits responsible for their creation.

Reusing the same traits object improves speed if the traits class caches data. traits is shared, rather than copied. The upper envelope is represented using the output maximization diagram diag.

Template Parameters
InputIteratormust be an input iterator with value type EnvelopeDiagram::X_monotone_curve_2.
EnvelopeDiagrammust be a model of the concept EnvelopeDiagram_1.