A Halfedge has a double meaning. In the global incidence structure of a Nef_polyhedron_3 it is an oriented edge going from one vertex to another. A halfedge also coincides with an svertex of the sphere map of its source vertex. Because of this, we offer the types Halfedge and SVertex which are the same. Furthermore, the redundant functions center_vertex() and source() are provided. The reason is, that we get the same vertex either if we want to have the source vertex of a halfedge, or if we want to have the vertex in the center of the sphere map a svertex lies on. Figure  reference arrow and figure  reference arrow illustrate the incidence of a svertex on a sphere map and of a halfedge in the global structure.

As part of the global incidence structure, the member fuctions source and target return the source and target vertex of an edge. The member function twin() returns the opposite halfedge.

Looking at the incidence structure on a sphere map, the member function out_sedge returns the first outgoing shalfedge, and incident_sface returns the incident sface.

#include <CGAL/Nef_polyhedron_3.h>


The following types are the same as in Nef_polyhedron_3<Traits>.

type of mark.

sphere point type stored in Halfedge.

const handle to vertex.

const handle to halfedge.

const handle to SHalfedge.

const handle to SFace.


There is no need for a user to create a Halfedge explicitly. The class Nef_polyhedron_3<Traits> manages the needed halfedges internally.


Mark e.mark () the mark of e .

Sphere_point e.point () the sphere point of e .

bool e.is_isolated () returns |true| if e has no adjacent sedges.

Vertex_const_handle e.center_vertex () the center vertex of the sphere map e belongs to.

Vertex_const_handle e.source () the source vertex of e .

Vertex_const_handle () the target vertex e.

Halfedge_const_handle e.twin () the twin of e .

SHalfedge_const_handle e.out_sedge () the first out sedege of e .

SFace_const_handle e.incident_sface () the incident sface of e .

See Also