CGAL::Nef_polyhedron_3<Traits>::SHalfedge

Definition

A shalfedge is a great arc on a sphere map. Figure 28.10 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

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 28.10. 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 () const the mark of se .

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

SHalfedge_const_handle se.twin () const the twin of se .

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

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

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

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

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

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

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

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

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

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

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

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

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

bool se.in_inner_facet_cycle () const 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