\( \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.7 - 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. More...
 
typedef unspecified_type Sphere_point
 sphere point type stored in Halfedge. More...
 
typedef unspecified_type Vertex_const_handle
 const handle to vertex. More...
 
typedef unspecified_type Halfedge_const_handle
 const handle to halfedge. More...
 
typedef unspecified_type SHalfedge_const_handle
 const handle to SHalfedge. More...
 
typedef unspecified_type SFace_const_handle
 const handle to SFace. More...
 

Operations

const Markmark () const
 the mark of e . More...
 
const Sphere_pointpoint () const
 the sphere point of e . More...
 
bool is_isolated () const
 returns |true| if e has no adjacent sedges. More...
 
Vertex_const_handle center_vertex () const
 the center vertex of the sphere map e belongs to. More...
 
Vertex_const_handle source () const
 the source vertex of e . More...
 
Vertex_const_handle target () const
 the target vertex e. More...
 
Halfedge_const_handle twin () const
 the twin of e . More...
 
SHalfedge_const_handle out_sedge () const
 the first out sedge of e . More...
 
SFace_const_handle incident_sface () const
 the incident sface of e . More...
 

Member Typedef Documentation

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
typedef unspecified_type CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::Halfedge_const_handle

const handle to halfedge.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
typedef unspecified_type CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::Mark

type of mark.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
typedef unspecified_type CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::SFace_const_handle

const handle to SFace.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
typedef unspecified_type CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::SHalfedge_const_handle

const handle to SHalfedge.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
typedef unspecified_type CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::Sphere_point

sphere point type stored in Halfedge.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
typedef unspecified_type CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::Vertex_const_handle

const handle to vertex.

Member Function Documentation

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
Vertex_const_handle CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::center_vertex ( ) const

the center vertex of the sphere map e belongs to.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
SFace_const_handle CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::incident_sface ( ) const

the incident sface of e .

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
bool CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::is_isolated ( ) const

returns |true| if e has no adjacent sedges.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
const Mark& CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::mark ( ) const

the mark of e .

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
SHalfedge_const_handle CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::out_sedge ( ) const

the first out sedge of e .

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
const Sphere_point& CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::point ( ) const

the sphere point of e .

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
Vertex_const_handle CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::source ( ) const

the source vertex of e .

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
Vertex_const_handle CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::target ( ) const

the target vertex e.

template<class Nef_polyhedronTraits_3 , class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
Halfedge_const_handle CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge::twin ( ) const

the twin of e .