\( \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.3 - Halfedge Data Structures

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::HalfedgeDS_default< Traits, HalfedgeDSItems, Alloc > Class Template Reference
Halfedge Data Structures

`#include <CGAL/HalfedgeDS_default.h>`

## Definition

### template<typename Traits, typename HalfedgeDSItems = CGAL::Halfedge_DS_items_2, typename Alloc = CGAL_ALLOCATOR(int)>
class CGAL::HalfedgeDS_default< Traits, HalfedgeDSItems, Alloc >

The class `HalfedgeDS_default` is a model for the `HalfedgeDS` concept.

The second template parameter `HalfedgeDSItems` has a default argument `CGAL::HalfedgeDS_items_2`. The third template parameter `Alloc` uses the CGAL default allocator as default setting. `HalfedgeDS_default` is a list-based representation with bidirectional iterators that supports removal.

Is Model Of:
  `HalfedgeDS<Traits,Items,Alloc>`

See Also
  `CGAL::HalfedgeDS_list`
  `CGAL::HalfedgeDS_vector`
  `HalfedgeDSItems`
  `CGAL::HalfedgeDS_items_2`
  `CGAL::Polyhedron_3<Traits>`
  `CGAL::HalfedgeDS_items_decorator<HDS>`
  `CGAL::HalfedgeDS_decorator<HDS>`
  `CGAL::HalfedgeDS_const_decorator<HDS>`

Implementation

Currently, `HalfedgeDS_default` is derived from `CGAL::HalfedgeDS_list<Traits>`. The copy constructor and the assignment operator need \( O(n)\) time with \( n\) the total number of vertices, halfedges, and faces.

Examples:
  HalfedgeDS/hds_prog_color.cpp, HalfedgeDS/hds_prog_default.cpp, HalfedgeDS/hds_prog_edge_iterator.cpp, HalfedgeDS/hds_prog_graph.cpp, HalfedgeDS/hds_prog_graph2.cpp, and HalfedgeDS/hds_prog_halfedge_iterator.cpp.

## Types
typedef bidirectional_iterator_tag | iterator_category
typedef CGAL::Tag_true | Supports_removal