CGAL::Nef_polyhedron_3<Traits>::SHalfedge

Definition

A shalfedge is a great arc on a sphere map. Figure  reference arrow depicts the relationship between a shalfedge and its incident shalfedges, svertices, and sfaces on a sphere map. A shalfedge is an oriented sedge between two svertices. It is always paired with a shalfedge pointing in the opposite direction. The twin() member function returns this shalfedge of opposite orientation.

Incidences of an SHalfedge
Figure:

The snext() member function points to the successor shalfedge around this sface while the sprev() member function points to the preceding shalfedge. An successive assignments of the form se = se->snext() cycles counterclockwise around the sface (or hole).

Similarly, the successive assignments of the form se = se->snext()->twin() cycle clockwise around the svertex and traverse all halfedges incident to this svertex. The assignment se = se->cyclic_adj_succ() can be used as a shortcut.

The role of shalfedges in a facet is illustrated in Figure  reference arrow . The facet() member function returns the facet in which the shalfedge is part of one of the facet cycles. The successive assignment of the form se = se->next() cycles counterclockwise around the facet (or a hole of the facet).

A const circulators is provided for each of the three circular orders. The circulators are bidirectional and assignable to SHalfedge_const_handle.

#include <CGAL/Nef_polyhedron_3.h>

Types

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

Nef_polyhedron_3<Traits>::SHalfedge::Mark
type of mark.


Nef_polyhedron_3<Traits>::SHalfedge::Sphere_circle
sphere circle type stored in SHalfedge.


Nef_polyhedron_3<Traits>::SHalfedge::Halffacet_const_handle
const handle to Halffacet.

Nef_polyhedron_3<Traits>::SHalfedge::SVertex_const_handle
const handle to SVertex.

Nef_polyhedron_3<Traits>::SHalfedge::SHalfedge_const_handle
const handle to SHalfedge.

Nef_polyhedron_3<Traits>::SHalfedge::SFace_const_handle
const handle to SFace.

Creation

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

Operations

Mark se.mark () the mark of se .

Sphere_circle se.circle () the sphere circle of se .

SHalfedge_const_handle se.twin () the twin of se .

SVertex_const_handle se.source () the source svertex of se .

SVertex_const_handle se.target () equals twin()->source().

SHalfedge_const_handle se.prev () the SHalfedge previous to se in a facet cycle.

SHalfedge_const_handle se.next () the next SHalfedge of se in a facet cycle.

SHalfedge_const_handle se.sprev () the SHalfedge previous to se in a sface cycle.

SHalfedge_const_handle se.snext () the next SHalfedge of se in a sface cycle.

SHalfedge_const_handle se.cyclic_adj_pred () the edge before se in the cyclic ordered adjacency list of source().

SHalfedge_const_handle se.cyclic_adj_succ () the edge after se in the cyclic ordered adjacency list of source().

Halffacet_const_handle se.facet () the facet that corresponds to se in the 3D incidence structure.

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

bool se.in_outer_sface_cycle () determines whether se is in an outer sface cycle.

bool se.in_inner_sface_cycle () determines whether se is in an inner sface cycle.

bool se.in_outer_facet_cycle () determines whether se is in an outer facet cycle.

bool se.in_inner_facet_cycle () determines whether se is in an inner facet cycle.

See Also

CGAL::Nef_polyhedron_3<Traits>::Halfedge
CGAL::Nef_polyhedron_3<Traits>::Halffacet
CGAL::Nef_polyhedron_3<Traits>::SFace
CGAL::Nef_polyhedron_S2<Traits>::Sphere_circle