Skip to main content Accessibility help

A polymorphic library for constructive solid geometry

  • J. R. Davy (a1) and P. M. Dew (a1)


Solid modelling using constructive solid geometry (CSG) includes many examples of stylised divide-and-conquer algorithms. We identify the sources of these recurrent patterns and describe a Geometric Evaluation Library (GEL) which captures them as higher-order functions. This library then becomes the basis of developing CSG applications quickly and concisely. GEL is currently implemented as a set of separately compiled modules in the pure functional language Hope+. We evaluate our work in terms of performance and general applicability. We also assess the benefits of the functional paradigm in this domain and the merits of programming with a set of higher-order functions.



Hide All
Alagar, V. S., Bui, T. D. and Periasamy, K. (1990) Semantic CSG Trees for Finite Element Analysis. Computer Aided Design 22(4): 194198.
Arbab, F. (1984) RSC: A Calculus of Shapes. In: Proc. CAD 84, Brighton, UK, pp. 244251.
Ballard, D. H. (1981) Strip Trees: A Hierarchical Representation for Curves. Comm. ACM 24(5): 310321.
Bird, R. S. (1987) An introduction to the theory of lists. In: M., Broy, ed., Logic of Programming and Calculi of Design, Springer-Verlag, pp. 542.
Brooks, R. A. (1981) Symbolic Reasoning among 3-D Models and 2-D Images. Artif. Intell. 17: 285348.
Brunet, P. and Navazo, I. (1990) Solid Representation and Operation using Extended Octrees. ACM Trans. Graphics 9(2): 170197.
Burstall, R. M. and Darlington, J. (1977) A Transformation System for Developing Recursive Programs. J. ACM 24(1): 4467.
Burton, F. W. and Yang, H.-K. (1990) Manipulating Multilinked Data Structures in a Pure Functional Language. Software - Practice and Experience 20(11): 11671185.
Cameron, S. (1989) Efficient Intersection Tests for Objects Defined Constructively. Int. J. Robotics Res. 8(1): 325.
Carlblom, I. (1987) An Algorithm for Geometric Set Operations using Cellular Subdivision Techniques. IEEE Computer Graphics and Applications 7(5): 4455.
Cole, M. (1989) Algorithmic Skeletons: Structured Management of Parallel Computation. Pitman/MIT Press.
Darlington, J. and To, H. W. (1995) Building parallel applications without programming. In: J. R., Davy and P. M., Dew, eds, Abstract Machine Models for Highly Parallel Computers. Oxford University Press.
Davy, J. R. (1992) Using Divide-and-Conquer for Parallel Geometric Evaluation. PhD thesis, University of Leeds.
Deldarie, H., Davy, J. R. and Dew, P. M. (1995) The Performance of Parallel Algorithmic Skeletons. Research Report, School of Computer Studies, University of Leeds.
Dunnington, D. R. (1989) A Recursive Subdivision Strategy for Solid Modelling with Sculptured Surfaces. PhD thesis, Leeds University.
Floriani, L. D., Falcidieno, B., Nagy, G. and Pienovi, C. (1984) A Hierarchical Structure for Surface Approximation. Computer and Graphics 8(2): 183193.
Gomez, D. and Guzman, A. (1979) Digital Model for Three-dimensional Surface Representation. Geo-processing 1: 5370.
Hartel, P. H. and Langendoen, K. G. (1993) Benchmarking implementations of Lazy Functional Languages. In: 6th Functional Programming Languages and Computer Architecture, pp. 341349, Copenhagen, Denmark.
Hartel, P. H. (1994) Benchmarking implementations of Lazy Functional Languages II – Two Years Later. Technical Report CS-94-21, Department of Computer Systems, University of Amsterdam.
Holliman, N. S., Morris, D. T. and Dew, P. M. (1989) An Evaluation of the Processor Farm Model for Visualising Constructive Solid Geometry. In: P. M., Dew, R. A., Earnshaw and T. R., Heywood, eds, Parallel Processing for Computer Vision and Display, Addison Wesley, pp. 452460.
Holliman, N. S., Wang, C. M. and Dew, P. M. (1993) Mistral-3: Parallel Solid Modelling. The Visual Computer 9(7): 356370.
Kela, A. (1989) Hierarchical Octree Approximations for Boundary Representation-based Geometric Models. Computer Aided Design 21(6): 335362.
Kelly, P. H. J. (1989) Functional Programming for Loosely-coupled Multiprocessors, Pitman/MIT Press.
Lee, Y. T. and Requicha, A. A. G. (1982) Algorithms for Computing the Volume and Other Integral Properties of Solids. II. A Family of Algorithms Based on Representation Conversion and Cellular Approximation. Comm. of the ACM 25(9): 642650.
Meagher, D. (1982) Geometric Modeling using Octree Encoding. Computer Graphics and Image Processing 19: 129147.
Meertens, L. G. T. (1986) Algorithmics – Towards Programming as a Mathematical Activity. In Proc. CWI Symposium on Mathematics and Computer Science,North Holland, pp. 289–234.
Mudur, S. P. and Koparkar, P. A. (1984) Interval Methods for Processing Geometric Objects. IEEE Computer Graphics and Applications 4(2): 717.
Muuss, M. J. (1987) RT and REMRT: Shared Memory Parallel and Network Distributed Ray Tracing Programs. In USENIX Association, 4th Computer Graphics Workshop, pp. 8697.
Perng, D.-B., Chen, Z. and Li, R.-K. (1990) Automatic 3D Machining Feature Extraction from 3D CSG Solid Input. Computer Aided Design 22(5): 285295.
Perry, N. (1989) Hope+. Technical documentation, Department of Computing, Imperial College London.
Perry, N. (1995) Private communication.
Peyton Jones, S. (1987) The Implementation of Functional Programming Languages, Prentice-Hall.
Preparata, F. P. and Hong, S. J. (1977) Convex Hulls of a Finite Set of Points in Two and Three Dimensions. Comm. ACM 20(2): 8793.
Requicha, A. A. G. (1980), Representations for Rigid Solids: Theory, Methods and Systems. ACM Comput. Surv. 12(4): 437464.
Saia, A., Bloor, M. S. and de Pennington, A. (1987), Sculptured Solids in a CSG Based Geometric Modelling System. In: The Mathematics of Surfaces II, IMA, Oxford University Press.
Samet, H. (1984) The Quadtree and Related Hierarchical Data Structures. ACM Comput. Surv. 16(2): 187260.
Samet, H. (1990) Applications of Spatial Data Structures, Addison Wesley.
Samet, H. and Tamminen, M. (1985) Bintrees, CSG Trees and Time. Computer Graphics 19(3): 121130.
Shamos, M. I. (1977) Computational Geometry, PhD thesis, Yale University.
Shephard, M. S., Baehmann, P. L. and Grice, K. R. (1988) The Versatility of Automatic Mesh Generators Based on Tree Structures and Advanced Geometric Constructs. Comm. Applied Numerical Methods 4: 379392.
Skillicorn, D. B. (1995) Categorical data types. In” J. R., Davy and P. M., Dew, eds., Abstract Machine Models for Highly Parallel Computers, Oxford University Press.
Tilove, R. B. (1980) Set Membership Classification: A Unified Approach to Geometric Intersection Problems. IEEE Trans. Computers 29(10): 874883.
Tilove, R. B. (1981) Exploiting Spatial and Structural Locality in Geometric Modelling. PhD thesis, University of Rochester.
Wallis, A. F. and Woodwark, J. R. (1984) Creating Large Solid Models for NC Toolpath Verification. In” Proc. CAD 84, Brighton, UK, pp. 455460.
Woodwark, J. R. (1986) Generating Wireframes from Set-Theoretic Solid Models by Spatial Subdivision. Computer-Aided Design 18(6): 307315.
Wyvill, G. and Kunii, T. L. (1985) A Functional Model for Constructive Solid Geometry. The Visual Computer 1: 314.

A polymorphic library for constructive solid geometry

  • J. R. Davy (a1) and P. M. Dew (a1)


Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed

A polymorphic library for constructive solid geometry

  • J. R. Davy (a1) and P. M. Dew (a1)
Submit a response


No Discussions have been published for this article.


Reply to: Submit a response

Your details

Conflicting interests

Do you have any conflicting interests? *