Nef polyhedra in 3-dimensional Space
Definition
A Nef-polyhedron in dimension d is a point set P⊆ℜd
generated from a finite number of open halfspaces by set
complement and set intersection operations [Nef78].
Nef polyhedra in CGAL
CGAL is a collaborative effort of several sites in Europe and Israel. The goal
is to make the most important of the solutions and methods developed
in computational geometry available to users in industry and academia in a C++ library.
The goal is to provide easy access to useful, reliable geometric algorithms.
We, i.e., Peter Hachenberger and Lutz Kettner, continued the work of Michael Seel to bring Nef polyhedra as
defined by the Swiss mathematician Walter Nef into CGAL. While Michael Seel provided planar Nef polyhedra,
we implemented Nef polyhedra in 3-dimensional space. The implementation was first released as part of CGAL 3.1
in December 2004.
Publications
-
Boolean Operations on 3D Selective Nef Complexes:
Data Structure, Algorithms, and Implementation.
Miguel Granados, Peter Hachenberger, Susan Hert,
Lutz Kettner, Kurt Mehlhorn and Michael Seel.
Proc. of the 11th Annu. European Sympos.
Algorithms (ESA'03), Budapest, Hungary. LNCS 2832, Springer,
pp. 654-666, September, 2003.
-
Boolean Operations on 3D Selective Nef Complexes: Optimized
Implementation and Experiments.
Peter Hachenberger and Lutz Kettner.
To appear in Proc. of 2005 ACM Symposium on Solid and Physical Modeling (SPM)
Experiment Tetgrid
- Create a regular N3 grid T of random tetrahedra:
- Generate four vertices for each tetrahedron randomly in a half-open fixed-size cube.
- Let these cubes form a regular N3 grid.
- Create a regular (N-1)3 grid C of such cubes.
- Align T and C such that the grid nodes of C are at the centers of the grid cells of T.
- Measure time for T ∪ C.
Result of our test series.
Download test application and data.
Experiment Quadratic
- Construct N parallel cuboids of size 10000×1×100 spaced one unit apart in y-direction as object W.
- Construct N parallel cuboids of size 1× 10000×100 spaced one unit apart in x-direction as object W'.
- Align W and W' at their lower front left corner.
- Move W' along the z-axis for fifty units.
- Measure time for W ∪ W'
Result of our test series.
Download test application and data.
Experiment ComplexFacet + ComplexMinusSmall
- Create a cube C of size N3.
- Create a N × N × 1 grid of tetrahedra G:
- Generate four vertices for each tetrahedron randomly in a
half-open unit cube, but at least one vertex in the lower half
and one vertex in the upper half of the cube.
- Let the cubes form a regular N × N × 1 grid and
place the grid such that each tetrahedron penetrates the top
surface of C.
- ComplexFacet: Measure time for C'=C ∪ G.
- Create a cube c of size 23 such that its vertices match centers of the grid cells.
- ComplexMinusSimple: Measure time for C'-c
Result of our test series ComplexFacet.
Download test application and data for ComplexFacet.
Result of our test series ComplexMinusSmall.
Download test application and data for ComplexMinusSmall.
Experiment ComplexSphereMap
- Create triangles ti,t'i,i=1,…, N+1 with the following properties:
- the first vertex of each triangle ti/t'i is located at the origin.
- the second vertex of each triangle ti/t'i has coordinates (N,-N+2*i,N)/(N,N,-N+2*i)
- the third vertex of each triangle ti has coordinates (N,-N+2*i,-N)/(N,-N,-N+2*i)
- unite triangles ti/t'i as object T/T'.
- Measure time for T ∪ T'
Result of our test series.
Download test application and data.
Experiment RotCylinders
- Create a right cylinder C:
- the base of C is a regular polygon with N sides.
- the base is parallel to the xy-plane.
- Create a copy C' of C.
- Rotate C' around its vertical centerline by α degrees.
- Measure time for C ∪ C'.
Result of our test series.
Download test application and data.
Last modified: Wed May 18 18:12:57 CEST 2005