CGAL 6.0 - Halfedge Data Structures
|
#include <CGAL/HalfedgeDS_list.h>
The class HalfedgeDS_list
is a model for the HalfedgeDS
concept.
HalfedgeDS_list
is a list-based representation with bidirectional iterators that supports removal.
HalfedgeDS<Traits,Items,Alloc>
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
uses internally the CGAL::In_place_list
container class. The copy constructor and the assignment operator need \(O(n)\) time with \( n\) the total number of vertices, halfedges, and faces.
CGAL_ALLOCATOR(int)
is used as default argument for the Alloc
template parameter.
Types | |
typedef bidirectional_iterator_tag | iterator_category |
typedef CGAL::Tag_true | Supports_removal |
Operations | |
Besides operations required from the concept | |
void | 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 . | |
void | 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 . | |
void | 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 . | |
void CGAL::HalfedgeDS_list< Traits, HalfedgeDSItems, Alloc >::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.
first, last
) is a valid range in source
. target
is not in the range [first, last
). void CGAL::HalfedgeDS_list< Traits, HalfedgeDSItems, Alloc >::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.
first, last
) is a valid range in source
. target
is not in the range [first, last
). void CGAL::HalfedgeDS_list< Traits, HalfedgeDSItems, Alloc >::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.
first, last
) is a valid range in source
. target
is not in the range [first, last
).