\( \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.5 - 3D Boolean Operations on Nef Polyhedra
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge Class 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 Markmark () const
 the mark of e .
 
const Sphere_pointpoint () 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 .