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

Ron Wein
This package consists of functions that computes 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
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

  • CGAL::lower_envelope_2
  • CGAL::upper_envelope_2
  • CGAL::lower_envelope_x_monotone_2
  • CGAL::upper_envelope_x_monotone_2

Concepts

Classes

  • CGAL::Envelope_diagram_1<Traits>

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, typename Traits>
void CGAL::Envelope_2::lower_envelope_x_monotone_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag, const Traits &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, typename Traits>
void CGAL::Envelope_2::upper_envelope_x_monotone_2 (InputIterator begin, InputIterator end, EnvelopeDiagram &diag, const Traits &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.

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.

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, typename Traits>
void CGAL::Envelope_2::lower_envelope_x_monotone_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag,
const Traits & 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. 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.
Traitsmust be a model of the concept AosXMonotoneTraits_2.

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

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.

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, typename Traits>
void CGAL::Envelope_2::upper_envelope_x_monotone_2 ( InputIterator begin,
InputIterator end,
EnvelopeDiagram & diag,
const Traits & 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. 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.
Traitsmust be a model of the concept AosXMonotoneTraits_2.