Halfedge_data_structure_using_list<V,H,F> is a model of the Halfedge_data_structure
concept. It is parameterized with a model of the Vertex_base
concept, a model of the Halfedge_base concept, and a model
of the Facet_base concept, whose requirements can be found
in Section
. Predefined models can be found in
Section
.
Halfedge_data_structure_using_list<V,H,F> uses doubly-linked lists to store the items. This implies bidirectional iterators to access the elements and support for random insertions and deletions. It adds internally two additional pointers to each element. The capacity is not influenced by calls to reserve() and calling reserve() do not invalidate any iterator or circulator.
#include <CGAL/Halfedge_data_structure_using_list.h>
It supports all types required for the Halfedge_data_structure concept, specifically the following two types are fixed.
|
|
|
|
|
| ||
|
|
||
Halfedge_data_structure_using_list<V,H,F> complies to the requirements stated for the
concept Halfedge_data_structure in Section
.
It uses In_place_list to implement the internal list storage, see the CGAL support library manual. The copy constructor and the assignment operator must update all internal pointers, which is currently done using the STL map, thus resulting in a runtime of logloglog instead of optimal linear time.