Peter Hachenberger and Lutz Kettner
3D Nef polyhedra, are a boundary representation for cellcomplexes bounded by halfspaces that supports Boolean operations and topological operations in full generality including unbounded cells, mixed dimensional cells (e.g., isolated vertices and antennas). Nef polyhedra distinguish between open and closed sets and can represent nonmanifold geometry.
A Nef polyhedron is any point set generated from a finite number of open halfspaces by set complement and set intersection operations. In our implementation of Nef polyhedra in 3dimensional space, we offer a Brep data structures that is closed under boolean operations and with all their generality. Starting from halfspaces (and also directly from oriented 2manifolds), we can work with set union, set intersection, set difference, set complement, interior, exterior, boundary, closure, and regularization operations. In essence, we can evaluate a CSGtree with halfspaces as primitives and convert it into a Brep representation.
In fact, we work with two data structures; one that represents the local neighborhoods of vertices, which is in itself already a complete description, and a data structure that connects these neighborhoods up to a global data structure with edges, facets, and volumes. We offer a rich interface to investigate these data structures, their different elements and their connectivity. We provide affine (rigid) tranformations and a point location query operation. We have a custom file format for storing and reading Nef polyhedra from files. We offer a simple OpenGL visualization for debugging and illustrations.
Classes
Functions

class  CGAL::Nef_nary_union_3< Nef_polyhedron_3 > 
 This class helps to perform the union of a set of 3D Nef polyhedra efficiently. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 > 
 A 3D Nef polyhedron is a subset of the 3dimensional space that is the result of forming complements and intersections starting from a finite set H of 3dimensional halfspaces. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halfedge 
 A Halfedge has a double meaning. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halffacet_cycle_iterator 
 The type Halffacet_cycle_iterator iterates over a list of Object_handles . More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Halffacet 
 A halffacet is an oriented, rectilinear bounded part of a plane. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::SFace_cycle_iterator 
 The type SFace_cycle_iterator iterates over a list of Object_handles . More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::SFace 
 An sface is described by its boundaries. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::SHalfedge 
 A shalfedge is a great arc on a sphere map. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::SHalfloop 
 A shalfloop is a great circle on a sphere map. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Vertex 
 A vertex is a point in the 3dimensional space. More...


class  CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::Volume 
 A volume is a fulldimensional connected point set in \( \mathbb{R}^3\). More...

