CGAL::HalfedgeDS_list<Traits,HalfedgeDSItems,Alloc>
Definition
The class HalfedgeDS_list<Traits,HalfedgeDSItems,Alloc> is a model for the HalfedgeDS concept.
HalfedgeDS_list<Traits,HalfedgeDSItems,Alloc> is a list-based representation with bidirectional
iterators that supports removal.
#include <CGAL/HalfedgeDS_list.h>
Is Model for the Concepts
HalfedgeDS<Traits,Items,Alloc>
Types
typedef bidirectional_iterator_tag
|
|
iterator_category;
|
typedef CGAL::Tag_true
|
|
Supports_removal;
|
Operations
Besides operations required from the concept
HalfedgeDS<Traits,Items,Alloc>, this class supports
additionally:
void
|
hds.vertices_splice ( |
Vertex_iterator target,
Self &source,
Vertex_iterator first,
Vertex_iterator last) |
|
| |
inserts elements in the range [first, last) before position
target and removes the elements from source. It takes
constant time if &source == &hds; otherwise, it takes linear
time in the size of the range.
Precondition: [first, last) is a
valid range in source. target is not in the range
[first, last).
|
|
void
|
hds.halfedges_splice ( |
Halfedge_iterator target,
Self &source,
Halfedge_iterator first,
Halfedge_iterator last) |
|
| |
inserts elements in the range [first, last) before position
target and removes the elements from source. It takes
constant time if &source == &hds; otherwise, it takes linear
time in the size of the range.
Precondition: [first, last) is a
valid range in source. target is not in the range
[first, last).
|
|
void
|
hds.faces_splice ( |
Face_iterator target,
Self &source,
Face_iterator first,
Face_iterator last) |
|
| |
inserts elements in the range [first, last) before position
target and removes the elements from source. It takes
constant time if &source == &hds; otherwise, it takes linear
time in the size of the range.
Precondition: [first, last) is a
valid range in source. target is not in the range
[first, last).
|
See Also
CGAL::HalfedgeDS_default
CGAL::HalfedgeDS_vector
HalfedgeDSItems
CGAL::Polyhedron_3<Traits>
CGAL::HalfedgeDS_items_decorator<HDS>
CGAL::HalfedgeDS_decorator<HDS>
CGAL::HalfedgeDS_const_decorator<HDS>
Implementation
HalfedgeDS_list<Traits,HalfedgeDSItems,Alloc> uses internally the CGAL::In_place_list container class.
The copy constructor and the assignment operator need time with
the total number of vertices, halfedges, and faces. The former
suboptimal implementation with an log runtime has been replaced
with a faster implementation based on hashing for the pointer lookup.
CGAL_ALLOCATOR(int) is used as default argument for the
Alloc template parameter.