\( \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.8 - 2D Arrangements

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Arr_extended_dcel< Traits, VData, HData, FData, V, H, F > Class Template Reference
DCEL

`#include <CGAL/Arr_extended_dcel.h>`

## Inherits from

CGAL::Arr_dcel_base< Arr_extended_vertex< V, VData >, Arr_extended_halfedge< H, HData >, Arr_extended_face< F, FData > >.

## Definition

The `Arr_extended_dcel` class-template extends the topological-features of the Dcel namely the vertex, halfedge, and face types.

While it is possible to maintain extra (non-geometric) data with the curves or points of the arrangement by extending their types respectively, it is also possible to extend the vertex, halfedge, or face types of the Dcel through inheritance. As the technique to extend these types is somewhat cumbersome and difficult for inexperienced users, the `Arr_extended_dcel` class-template provides a convenient way to do that. Each one of the three features is extended with a corresponding data type provided as parameters. This class template is also parameterized with a traits class used to extract default values for the vertex, halfedge, and face base classes, which are the remaining three template parameters respectively. The default values follow:

`V` = | `Arr_vertex_base<typename Traits::Point_2>`
`H` = | `Arr_halfedge_base<typename Traits::X_monotone_curve_2>`
`F` = | `Arr_face_base`

Is Model Of:
  `ArrangementDcelWithRebind`

See Also
  `Arr_dcel_base<V,H,F>`

Examples:
  Arrangement_on_surface_2/dcel_extension.cpp, and Arrangement_on_surface_2/dcel_extension_io.cpp.