Nef polygon
Nef polygons and Nef polyhedra are the sets of polygons (resp. polyhedra) which can be obtained from a finite set of halfplanes (halfspaces) by Boolean operations of set intersection and set complement. The objects are named after the Swiss mathematician Walter Nef (1919–2013[1]), who introduced them in his 1978 book on polyhedra.[2][3]
Since other Boolean operations, such as union or difference, may be expressed via intersection and complement operations, the sets of Nef polygons (polyhedra) are closed with respect to these operations as well.[4]
In addition, the class of Nef polyhedra is closed with respect to the topological operations of taking closure, interior, exterior, and boundary. Boolean operations, such as difference or intersection, may produce non-regular sets. However the class of Nef polyhedra is also closed with respect to the operation of regularization.[5]
Convex polytopes are a special subclass of Nef polyhedra, being the set of polyhedra which are the intersections of a finite set of half-planes.[6]
Terminology
In the language of Nef polyhedra you can refer to various objects as 'faces' with different dimensions. What would normally be called a 'corner' or 'vertex' of a shape is called a 'face' with dimension of 0. An 'edge' or 'segment' is a face with dimension 1. A flat shape in 3D space, like a triangle, is called a face with dimension 2 - or a 'facet'. A shape in 3D space, like a cube, is called a face with dimension 3 - or a 'volume'.[7]
Implementations
The Computational Geometry Algorithms Library, or CGAL, represents Nef Polyhedra by using two main data structures. The first is a 'Sphere map' and the second is a 'Selective Nef Complex' (or SNC). The 'sphere map' stores information about the polyhedron by creating an imaginary sphere around each vertex, and painting it with various points and lines representing how the polyhedron divides space. The SNC basically stores and organizes the sphere maps. Each face contains a 'label' or 'mark' telling whether it is part of the object or not.[7]
See also
References
- ↑ http://math.ch/archive/documents/WalterNef.pdf
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.