Class

CGAL::HalfedgeDS_default<Traits,HalfedgeDSItems,Alloc>

Definition

template < class Traits,
class HalfedgeDSItems = CGAL::HalfedgeDS_items_2,
class Alloc = CGAL_ALLOCATOR(int)>
class HalfedgeDS_default;

The class HalfedgeDS_default<Traits,HalfedgeDSItems,Alloc> 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<Traits,HalfedgeDSItems,Alloc> is a list-based representation with bidirectional iterators that supports removal.

#include <CGAL/HalfedgeDS_default.h>

Is Model for the Concepts

HalfedgeDS<Traits,Items,Alloc>

Types

typedef bidirectional_iterator_tag
iterator_category;
typedef CGAL::Tag_true Supports_removal;

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<Traits,HalfedgeDSItems,Alloc> 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. The former suboptimal implementation with an O(n log n) runtime has been replaced with a faster implementation based on hashing for the pointer lookup.