Set operations on polyhedra using binary space partitioning trees

We introduce a new representation for polyhedra by showing how Binary Space Partitioning Trees (BSP trees) can be used to represent regular sets. We then show how they may be used in evaluating set operations on polyhedra. The BSP tree is a binary tree representing a recursive partitioning of d-space by (sub-)hyperplanes, for any dimension d. Their previous application to computer graphics has been to organize an arbitrary set of polygons so that a fast solution to the visible surface problem could be obtained. We retain this property (in 3D) and show how BSP trees can also provide an exact representation of arbitrary polyhedra of any dimension. Conversion from a boundary representation (B-reps) of polyhedra to a BSP tree representation is described. This technique leads to a new method for evaluating arbitrary set theoretic (boolean) expressions on B-reps, represented as a CSG tree, producing a BSP tree as the result. Results from our language-driven implmentation of this CSG evaluator are discussed. Finally, we show how to modify a BSP tree to represent the result of a set operation between the BSP tree and a B-rep. We describe the embodiment of this approach in an interactive 3D object design program that allows incremental modification of an object with a tool. Placement of the tool, selection of views, and performance of the set operation are all performed at interactive speeds for modestly complex objects.

[1]  R. Schmacher,et al.  Study for Applying Computer-Generated Images to Visual Simulation: (510842009-001) , 1969 .

[2]  Aristides A. G. Requicha,et al.  Mathematical Foundations of Constructive Solid Geometry: General Topology of Closed Regular Sets , 1978 .

[3]  Jon Louis Bentley,et al.  Data Structures for Range Searching , 1979, CSUR.

[4]  Henry Fuchs,et al.  On visible surface generation by a priori tree structures , 1980, SIGGRAPH '80.

[5]  ARISTIDES A. G. REQUICHA,et al.  Representations for Rigid Solids: Theory, Methods, and Systems , 1980, CSUR.

[6]  Robert B. Tilove,et al.  Set Membership Classification: A Unified Approach to Geometric Intersection Problems , 1980, IEEE Transactions on Computers.

[7]  B. Naylor A priori based techniques for determining visibility priority for 3-d scenes , 1981 .

[8]  Yehuda E. Kalay Determining the spatial containment of a point in general polyhedra , 1982, Comput. Graph. Image Process..

[9]  Scott D. Roth,et al.  Ray casting for modeling solids , 1982, Comput. Graph. Image Process..

[10]  Donald Meagher,et al.  Geometric modeling using octree encoding , 1982, Comput. Graph. Image Process..

[11]  K. M. Quinlan,et al.  Reducing the effect of complexity on volume model evaluation , 1982 .

[12]  Henry Fuchs,et al.  Near real-time shaded display of rigid objects , 1983, SIGGRAPH.

[13]  Martti Mäntylä,et al.  Localized set operations for solid modeling , 1983, SIGGRAPH.

[14]  Robert B. Tilove A null-object detection algorithm for constructive solid geometry , 1984, CACM.

[15]  Ingrid Carlbom,et al.  A Hierarchical Data Structure for Representing the Spatial Decomposition of 3-D Objects , 1985, IEEE Computer Graphics and Applications.

[16]  A.A.G. Requicha,et al.  Boolean operations in solid modeling: Boundary evaluation and merging algorithms , 1985, Proceedings of the IEEE.

[17]  Pere Brunet,et al.  Object representation by means of nonminimal division quadtrees and octrees , 1985, TOGS.

[18]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[19]  David H. Laidlaw,et al.  Constructive solid geometry for polyhedral objects , 1986, SIGGRAPH.

[20]  P. A. Subrahmanyam,et al.  Boolean Operations on n-Dimensional Objects , 1986, IEEE Computer Graphics and Applications.

[21]  W. C. Thibault,et al.  Application of binary space partitioning trees to geometric modeling and ray-tracing , 1987 .