3D Boolean Operations on Nef Polyhedra
Reference Manual

Peter Hachenberger, Lutz Kettner, and Michael Seel

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 3-dimensional space, we offer a B-rep data structures that is closed under boolean operations and with all their generality. Starting from halfspaces (and also directly from oriented 2-manifolds), 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 CSG-tree with halfspaces as primitives and convert it into a B-rep 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.

23.9   Classified Reference Pages

Classes

CGAL::Nef_polyhedron_3<Traits>
CGAL::Nef_polyhedron_3<Traits>::Vertex
CGAL::Nef_polyhedron_3<Traits>::Halfedge
CGAL::Nef_polyhedron_3<Traits>::Halffacet
CGAL::Nef_polyhedron_3<Traits>::Volume
CGAL::Nef_polyhedron_3<Traits>::SHalfedge
CGAL::Nef_polyhedron_3<Traits>::SHalfloop
CGAL::Nef_polyhedron_3<Traits>::SFace
CGAL::Nef_polyhedron_3<Traits>::SFace_cycle_iterator

Functions

template<class Nef_polyhedron_3>
std::size_t OFF_to_nef_3 ( std::istream& in, Nef_polyhedron_3& N)
(go there)

template <class Traits>
ostream& ostream& out << CGAL::Nef_polyhedron_3<Traits> N
(go there)

template <class Traits>
istream& istream& in >> CGAL::Nef_polyhedron_3<Traits>& N
(go there)

23.10   Alphabetical List of Reference Pages

Nef_nary_union_3<Nef_polyhedron_3>
Nef_polyhedron_3<Traits>::Halfedge
Nef_polyhedron_3<Traits>::Halffacet_cycle_iterator
Nef_polyhedron_3<Traits>::Halffacet
Nef_polyhedron_3<Traits>::SFace_cycle_iterator
Nef_polyhedron_3<Traits>::SFace
Nef_polyhedron_3<Traits>::SHalfedge
Nef_polyhedron_3<Traits>::SHalfloop
Nef_polyhedron_3<Traits>::Vertex
Nef_polyhedron_3<Traits>::Volume
Nef_polyhedron_3<Traits>
OFF_to_nef_3
operator<<
operator>>
Qt_widget_Nef_3<Nef_polyhedron_3>