The concept HalfedgeDSHalfedge defines the requirements for the local Halfedge type in the HalfedgeDS concept. It is also required in the Halfedge_wrapper<Refs,Traits> member class template of an items class, see the HalfedgeDSItems concept.
A halfedge is an oriented edge between two vertices. It is always paired with a halfedge pointing in the opposite direction. The opposite() member function returns this halfedge of opposite orientation. The next() member function points to the successor halfedge along the face - or if the halfedge is a border halfedge - along the open region. A halfedge optionally stores a reference to the previous halfedge along the face, a reference to an incident vertex, and a reference to an incident face. Type tags indicate whether the related member functions are supported. Figure 26.3 depicts the relationship between a halfedge and its incident halfedges, vertices, and faces.
For the protection of the integrity of the data structure classes such as CGAL::Polyhedron_3 are allowed to redefine the modifying member functions to be private. In order to make them accessible for the halfedge data structure they must be derived from a base class Base where the modifying member functions are still public. Even more protection is provided for the set_opposite() member function. The base class Base_base provides access to it. (The protection could be bypassed also by an user, but not by accident.)
HalfedgeDSHalfedge::HalfedgeDS | |
instantiated HalfedgeDS ( ≡ Refs).
| |
HalfedgeDSHalfedge::Base | |
base class that allows modifications.
| |
HalfedgeDSHalfedge::Base_base | |
base class to access set_opposite().
| |
HalfedgeDSHalfedge::Vertex | |
model of HalfedgeDSVertex.
| |
HalfedgeDSHalfedge::Face | |
model of HalfedgeDSFace.
| |
HalfedgeDSHalfedge::Vertex_handle | |
handle to vertex.
| |
HalfedgeDSHalfedge::Halfedge_handle | |
handle to halfedge.
| |
HalfedgeDSHalfedge::Face_handle | |
handle to face.
| |
HalfedgeDSHalfedge::Vertex_const_handle | |
HalfedgeDSHalfedge::Halfedge_const_handle | |
HalfedgeDSHalfedge::Face_const_handle | |
HalfedgeDSHalfedge::Supports_halfedge_prev | |
CGAL::Tag_true or
CGAL::Tag_false.
| |
HalfedgeDSHalfedge::Supports_halfedge_vertex | |
˜
| |
HalfedgeDSHalfedge::Supports_halfedge_face | |
˜
|
HalfedgeDSHalfedge h; | |
default constructor.
|
Halfedge_handle | h.prev () | |
Halfedge_const_handle | h.prev () const | the previous halfedge around the face. |
void | h.set_prev ( Halfedge_handle h) | sets prev halfedge to h. |
Vertex_handle | h.vertex () | |
Vertex_const_handle | h.vertex () const | the incident vertex of h. |
void | h.set_vertex ( Vertex_handle v) | sets incident vertex to v. |
CGAL::HalfedgeDS_halfedge_base<Refs>
CGAL::HalfedgeDS_halfedge_min_base<Refs>
HalfedgeDS<Traits,Items,Alloc>
HalfedgeDSItems
HalfedgeDSVertex
HalfedgeDSFace