mirror of https://github.com/CGAL/cgal
149 lines
4.8 KiB
TeX
149 lines
4.8 KiB
TeX
% +------------------------------------------------------------------------+
|
|
% | Reference manual page: Envelope_diagram.tex
|
|
% +------------------------------------------------------------------------+
|
|
% |
|
|
% | Package: Envelope_3
|
|
% |
|
|
% +------------------------------------------------------------------------+
|
|
|
|
\ccRefPageBegin
|
|
|
|
\begin{ccRefClass}{Envlope_diagram_2<EnvTraits>}
|
|
|
|
\ccDefinition
|
|
%============
|
|
|
|
The class-template \ccClassTemplateName\ 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 with a traits class that must be a model of the
|
|
\ccc{EnvelopeTraits_3} concept, and is basically an 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.
|
|
It is thus possible to traverse the envelope diagram using the
|
|
methods inherited from the \ccc{Arrangement_2} class.
|
|
|
|
The envelope diagram extends the arrangment 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
|
|
\ccc{EnvTraits::Xy_monotone_surface_3}) that induce the lower envelop
|
|
(or the upper envelope, in case of a maximization diagram) over this
|
|
feature. The envelope diagram provides access methods to these originators.
|
|
|
|
\ccInclude{CGAL/envelope_3.h}
|
|
|
|
\ccInheritsFrom
|
|
\ccc{Arrangement_2<EnvTraits>}
|
|
|
|
\ccTypes
|
|
%=======
|
|
|
|
\ccTypedef{typedef Envelope_diagram_2<EnvTraits> Self;}{}
|
|
\ccGlue
|
|
\ccTypedef{typedef Arrangement_2<EnvTraits> Base;}{}
|
|
|
|
\ccNestedType{Surface_const_iterator}
|
|
{an iterator for the $xy$-monotone surfaces that induce a diagram feature.
|
|
Its value-type is \ccc{EnvTraits::Xy_monotone_surface_3}.}
|
|
|
|
\ccCreation
|
|
\ccCreationVariable{diag}
|
|
%========================
|
|
|
|
\ccConstructor{Envelope_diagram_2();}
|
|
{constructs an empty diagram containing one unbounded face,
|
|
which corresponds to the entire plane and has no originators.}
|
|
|
|
\ccConstructor{Envelope_diagram_2 (const Self& other);}
|
|
{copy constructor.}
|
|
|
|
\ccConstructor{Envelope_diagram_2 (EnvTraits *traits);}
|
|
{constructs an empty diagram that uses the given \ccc{traits}
|
|
instance for performing the geometric predicates.}
|
|
|
|
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
\subsection*{Class Envelope\_diagram\_2$<$EnvTraits$>$::Vertex}
|
|
%==============================================================
|
|
|
|
\begin{ccClass}{Envelope_diagram_2<EnvTraits>::Vertex}
|
|
|
|
\ccInheritsFrom
|
|
\ccc{Base::Vertex}
|
|
|
|
\ccCreationVariable{v}
|
|
\ccAccessFunctions
|
|
%-----------------
|
|
|
|
\ccMethod{size_t number_of_surfaces () const;}
|
|
{returns the number of $xy$-monotone surfaces that induce \ccVar.}
|
|
|
|
\ccMethod{Surface_const_iterator surfaces_begin () const;}
|
|
{returns an iterator for the first $xy$-monotone surface that induces \ccVar.}
|
|
\ccGlue
|
|
\ccMethod{Surface_const_iterator surfaces_end () const;}
|
|
{returns a past-the-end iterator for the $xy$-monotone surfaces that induce
|
|
\ccVar.}
|
|
|
|
\end{ccClass}
|
|
|
|
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
\subsection*{Class Envelope\_diagram\_2$<$EnvTraits$>$::Halfedge}
|
|
%================================================================
|
|
|
|
\begin{ccClass}{Envelope_diagram_2<EnvTraits>::Halfedge}
|
|
|
|
\ccInheritsFrom
|
|
\ccc{Base::Halfedge}
|
|
|
|
\ccCreationVariable{e}
|
|
\ccAccessFunctions
|
|
%-----------------
|
|
|
|
\ccMethod{size_t number_of_surfaces () const;}
|
|
{returns the number of $xy$-monotone surfaces that induce \ccVar.}
|
|
|
|
\ccMethod{Surface_const_iterator surfaces_begin () const;}
|
|
{returns an iterator for the first $xy$-monotone surface that induces \ccVar.}
|
|
\ccGlue
|
|
\ccMethod{Surface_const_iterator surfaces_end () const;}
|
|
{returns a past-the-end iterator for the $xy$-monotone surfaces that induce
|
|
\ccVar.}
|
|
|
|
\end{ccClass}
|
|
|
|
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
\subsection*{Class Envelope\_diagram\_2$<$EnvTraits$>$::Face}
|
|
%============================================================
|
|
|
|
\begin{ccClass}{Envelope_diagram_2<EnvTraits>::Face}
|
|
|
|
\ccInheritsFrom
|
|
\ccc{Base::Face}
|
|
|
|
\ccCreationVariable{f}
|
|
\ccAccessFunctions
|
|
%-----------------
|
|
|
|
\ccMethod{size_t number_of_surfaces () const;}
|
|
{returns the number of $xy$-monotone surfaces that induce \ccVar.}
|
|
|
|
\ccMethod{Surface_const_iterator surfaces_begin () const;}
|
|
{returns an iterator for the first $xy$-monotone surface that induces \ccVar.}
|
|
\ccGlue
|
|
\ccMethod{Surface_const_iterator surfaces_end () const;}
|
|
{returns a past-the-end iterator for the $xy$-monotone surfaces that induce
|
|
\ccVar.}
|
|
|
|
\end{ccClass}
|
|
|
|
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
\end{ccRefClass}
|
|
|
|
\ccRefPageEnd
|
|
|