\( \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 - 3D Boolean Operations on Nef Polyhedra

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge Class Reference
3D Boolean Operations on Nef Polyhedra Reference

`#include <CGAL/Nef_polyhedron_3.h>`

## Definition

### template<class Nef_polyhedronTraits_3, class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
class CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge

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. Figures figureNef3HalfedgeIncidences and figureNef3FacetIncidences 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.

Creation

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

See Also
  `CGAL::Nef_polyhedron_3::Vertex`
  `CGAL::Nef_polyhedron_3::SHalfedge`
  `CGAL::Nef_polyhedron_3::SFace`
  `CGAL::Nef_polyhedron_S2::Sphere_point`

## Types
The following types are the same as in `Nef_polyhedron_3<Traits>`.
typedef unspecified_type | Mark
| type of mark.
typedef unspecified_type | Sphere_point
| sphere point type stored in Halfedge.
typedef unspecified_type | Vertex_const_handle
| const handle to vertex.
typedef unspecified_type | Halfedge_const_handle
| const handle to halfedge.
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 `e` .
const Sphere_point & | point () const
| the sphere point of `e` .
bool | is_isolated () const
| returns |true| if `e` has no adjacent sedges.
Vertex_const_handle | center_vertex () const
| the center vertex of the sphere map `e` belongs to.
Vertex_const_handle | source () const
| the source vertex of `e` .
Vertex_const_handle | target () const
| the target vertex `e`.
Halfedge_const_handle | twin () const
| the twin of `e` .
SHalfedge_const_handle | out_sedge () const
| the first out sedge of `e` .
SFace_const_handle | incident_sface () const
| the incident sface of `e` .