\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.6.1 - 3D Envelopes
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Env_surface_data_traits_3< Traits, XyData, SData, Cnv > Class Template Reference

#include <CGAL/Env_surface_data_traits_3.h>

Inherits from

Traits.

Definition

The class Env_surface_data_traits_3 is a model of the EnvelopeTraits_3 concept and serves as a decorator class that allows the extension of the surfaces defined by the base traits-class (the Traits parameter), which serves as a geometric traits-class (a model of the EnvelopeTraits_3 concept), with extraneous (non-geometric) data fields.

The traits-class decorator extends the Surface_3 and the Xy_monotone_surface_3 types as detailed below. Each Surface_3 object is associated with a single data field of type SData, and each Xy_monotone_surface_3 object is associated with a single data field of type XyData. When a surface is subdivided into \( xy\)-monotone surfaces, its data field is converted using the conversion functor, which is specified by the Cnv template-parameter, and the resulting objects is copied to all Xy_monotone_surface_3 objects induced by this surface. The conversion functor should provide an operator with the following prototype:

XyData operator() (const SData& d) const;

By default, the two data types are the same, so the conversion operator is trivial and just copies the data object:

SData = XyData
Cnv = _Default_convert_functor<SData,XyData>
Is Model Of:
EnvelopeTraits_3
Examples:
Envelope_3/envelope_triangles.cpp.

Classes

class  Surface_3
 The Surface_3 class nested within the surface-data traits extends the Base_traits_3::Surface_3 type with an extra data field. More...
 
class  Xy_monotone_surface_3
 The Xy_monotone_surface_3 class nested within the surface-data traits extends the Base_traits_3::Xy_monotone_surface_3 type with an extra data field. More...
 

Types

typedef Traits Base_traits_3
 the base traits-class.
 
typedef Base_traits_3::Surface_3 Base_surface_3
 the base surface.
 
typedef
Base_traits_3::Xy_monotone_surface_3 
Base_xy_monotone_surface_3
 the base \( xy\)-monotone surface surface.
 
typedef Cnv Convert
 the conversion functor.
 
typedef SData Surface_data
 the type of data associated with surfaces.
 
typedef XyData Xy_monotone_surface_data
 the type of data associated with \( xy\)-monotone surfaces.