\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 2D Boolean Operations on Nef Polygons Embedded on the Sphere

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Nef_polyhedron_S2< Traits >::SHalfedge Class Reference
2D Boolean Operations on Nef Polygons Embedded on the Sphere Reference

`#include <CGAL/Nef_polyhedron_S2.h>`

## Definition

A shalfedge is a great arc on a sphere map.

The figure below 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.

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

Creation

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

See Also
  `CGAL::Nef_polyhedron_S2::SVertex`
  `CGAL::Nef_polyhedron_S2::SFace`
  `CGAL::Nef_polyhedron_S2::Sphere_circle`

## Types
The following types are the same as in `Nef_polyhedron_S2<Traits>`.
typedef unspecified_type | Mark
| type of mark.
typedef unspecified_type | Sphere_circle
| sphere circle type stored in SHalfedge.
typedef unspecified_type | SVertex_const_handle
| const handle to SVertex.
typedef unspecified_type | SHalfedge_const_handle
| const handle to SHalfedge.
typedef unspecified_type | SFace_const_handle
| const handle to SFace.

## Operations
const Mark & | mark () const
| the mark of the `sedge`.
const Sphere_circle & | circle () const
| the sphere circle of the `sedge`.
SHalfedge_const_handle | twin () const
| the twin of the `sedge`.
SVertex_const_handle | source () const
| the source svertex of the `sedge`.
SVertex_const_handle | target () const
| equals `twin()->source()`.
SHalfedge_const_handle | sprev () const
| the SHalfedge previous to the `sedge` in a sface cycle.
SHalfedge_const_handle | snext () const
| the next SHalfedge of the `sedge` in a sface cycle.
SHalfedge_const_handle | cyclic_adj_pred () const
| the edge before the `sedge` in the cyclic ordered adjacency list of `source()`.
SHalfedge_const_handle | cyclic_adj_succ () const
| the edge after the `sedge` in the cyclic ordered adjacency list of `source()`.
SFace_const_handle | incident_sface () const
| the incident `sface` of the `sedge`.
bool | in_outer_sface_cycle () const
| determines whether the `sedge` is in an outer sface cycle.
bool | in_inner_sface_cycle () const
| determines whether the `sedge` is in an inner sface cycle.