\( \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.5.1 - Halfedge Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::HalfedgeDS_default< Traits, HalfedgeDSItems, Alloc > Class Template Reference

#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