\( \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 - 2D Boolean Operations on Nef Polygons Embedded on the Sphere
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
2D Boolean Operations on Nef Polygons Embedded on the Sphere Reference

Nef_S2-teaser-small.png
Peter Hachenberger and Lutz Kettner
This package offers the equivalent to 2D Nef Polygons in the plane. Here halfplanes correspond to half spheres delimited by great circles.


Introduced in: CGAL 3.1
Depends on: 2D Boolean Operations on Nef Polygons
BibTeX: cgal:hk-bonpes2-15a
License: GPL

Nef polyhedra are defined as a subset of the d-dimensional space obtained by a finite number of set complement and set intersection operations on halfspaces.

Due to the fact that all other binary set operations like union, difference and symmetric difference can be reduced to intersection and complement calculations, Nef polyhedra are also closed under those operations. Also, Nef polyhedra are closed under topological unary set operations. Given a Nef polyhedron one can determine its interior, its boundary, and its closure.

Additionally, a d-dimensional Nef polyhedron has the property, that its boundary is a (d-1)-dimensional Nef polyhedron. This property can be used as a way to represent 3-dimensional Nef polyhedra by means of planar Nef polyhedra. This is done by intersecting the neighborhood of a vertex in a 3D Nef polyhedron with an \( \epsilon\)-sphere. The result is a planar Nef polyhedron embedded on the sphere.

The intersection of a halfspace going through the center of the \( \epsilon\)-sphere, with the \( \epsilon\)-sphere, results in a halfsphere which is bounded by a great circle. A binary operation of two halfspheres cuts the great circles into great arcs.

The incidence structure of planar Nef polyhedra can be reused. The items are denoted as svertex, shalfedge and sface, analogous to their counterparts in CGAL::Nef_polyhedron_2. Additionally, there is the shalfloop representing the great circles.

Classified Reference Pages

Classes

class  CGAL::Qt_widget_Nef_S2< Nef_polyhedron_S2 >
 The class Qt_widget_Nef_S2 uses the OpenGL interface of Qt in order to display a Nef_polyhedron_S2. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >
 An instance of data type Nef_polyhedron_S2<Traits> is a subset of the sphere \( S_2\) that is the result of forming complements and intersections starting from a finite set H of halfspaces bounded by a plane containing the origin. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::Sphere_circle
 An object c of type Sphere_circle is an oriented great circle on the surface of a unit sphere. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::Sphere_point
 An object p of type Sphere_point<R> is a point on the surface of a unit sphere. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::Sphere_segment
 An object s of type Sphere_segment is a segment in the surface of a unit sphere that is part of a great circle trough the origin. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::SFace_cycle_iterator
 The type SFace_cycle_iterator iterates over a list of Object_handles. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::SFace
 Figures figureNefS2SVertexIncidences and figureNefS2SHalfloopIncidences illustrate the incidences of an sface. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::SHalfedge
 A shalfedge is a great arc on a sphere map. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::SHalfloop
 A sloop is a great circle on a sphere. More...
 
class  CGAL::Nef_polyhedron_S2< Traits >::SVertex
 Figure figureNefS2SVertexIncidences illustrates the incidence of a svertex on a sphere map. More...
 

Types

enum  CGAL::Nef_polyhedron_S2< Traits >::Boundary { CGAL::Nef_polyhedron_S2< Traits >::EXCLUDED, CGAL::Nef_polyhedron_S2< Traits >::INCLUDED }
 construction selection. More...
 
enum  CGAL::Nef_polyhedron_S2< Traits >::Content { CGAL::Nef_polyhedron_S2< Traits >::EMPTY, CGAL::Nef_polyhedron_S2< Traits >::COMPLETE }
 construction selection. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SVertex_const_handle
 non-mutable handle to svertex. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_const_handle
 non-mutable handle to shalfedge. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfloop_const_handle
 non-mutable handle to shalfloop. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SFace_const_handle
 non-mutable handle to sface. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SVertex_const_iterator
 non-mutable iterator over all svertices. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_const_iterator
 non-mutable iterator over all shalfedges. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfloop_const_iterator
 non-mutable iterator over all shalfloops. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SFace_const_iterator
 non-mutable iterator over all sfaces. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_around_svertex_const_circulator
 circulating the adjacency list of an svertex v. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_around_sface_const_circulator
 circulating the sface cycle of an sface f. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SFace_cycle_const_iterator
 iterating all sface cycles of an sface f. More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::Mark
 attributes of objects (vertices, edges, faces). More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::size_type
 size type More...
 
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::Object_handle
 a generic handle to an object of the underlying plane map. More...
 

Typedef Documentation

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::Mark

attributes of objects (vertices, edges, faces).

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::Object_handle

a generic handle to an object of the underlying plane map.

The kind of object (vertex, halfedge, face) can be determined and the object can be assigned to a corresponding handle by the three functions:

  • bool assign(Vertex_const_handle& h, Object_handle)
  • bool assign(Halfedge_const_handle& h, Object_handle)
  • bool assign(Face_const_handle& h, Object_handle)

where each function returns true iff the assignment to h was done.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SFace_const_handle

non-mutable handle to sface.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SFace_const_iterator

non-mutable iterator over all sfaces.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SFace_cycle_const_iterator

iterating all sface cycles of an sface f.

The iterator has method bool is_svertex(), bool is_shalfedge(), bool is_shalfloop(), and can be converted to the corresponding handles SVertex_const_handle, SHalfedge_const_handle, or SHalfloop_const_handle.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_around_sface_const_circulator

circulating the sface cycle of an sface f.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_around_svertex_const_circulator

circulating the adjacency list of an svertex v.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_const_handle

non-mutable handle to shalfedge.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge_const_iterator

non-mutable iterator over all shalfedges.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfloop_const_handle

non-mutable handle to shalfloop.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfloop_const_iterator

non-mutable iterator over all shalfloops.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::size_type

size type

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SVertex_const_handle

non-mutable handle to svertex.

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SVertex_const_iterator

non-mutable iterator over all svertices.

Enumeration Type Documentation

template<typename Traits >
enum CGAL::Nef_polyhedron_S2::Boundary

construction selection.

Enumerator
EXCLUDED 
INCLUDED 
template<typename Traits >
enum CGAL::Nef_polyhedron_S2::Content

construction selection.

Enumerator
EMPTY 
COMPLETE