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 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.
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
 

 
(go there)  
 

 
(go there)  
 

 
(go there) 