|
CGAL 6.3 - 3D Boolean Operations on Nef Polyhedra
|
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) transformations 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.
Topics | |
| I/O Functions | |
| Draw a Nef Polyhedron | |
| Draw. | |
Classes | |
| class | CGAL::Nef_nary_union_3< NefPolyhedron_3 > |
| This class helps to perform the union of a set of 3D Nef polyhedra efficiently. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 > |
| A 3D Nef polyhedron is a subset of the 3-dimensional space that is the result of forming complements and intersections starting from a finite set H of 3-dimensional halfspaces. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::Halfedge |
| A Halfedge has a double meaning. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::Halffacet_cycle_iterator |
| The type Halffacet_cycle_iterator iterates over a list of Object_handles. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::Halffacet |
| A halffacet is an oriented, rectilinear bounded part of a plane. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::SFace_cycle_iterator |
| The type SFace_cycle_iterator iterates over a list of Object_handles. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::SFace |
| An sface is described by its boundaries. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::SHalfedge |
| A shalfedge is a great arc on a sphere map. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::SHalfloop |
| A shalfloop is a great circle on a sphere map. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::Vertex |
| A vertex is a point in the 3-dimensional space. More... | |
| class | CGAL::Nef_polyhedron_3< NefPolyhedronTraits_3 >::Volume |
| A volume is a full-dimensional connected point set in \( \mathbb{R}^3\). More... | |