Hostname: page-component-78c5997874-8bhkd Total loading time: 0 Render date: 2024-11-12T07:51:47.677Z Has data issue: false hasContentIssue false

A polymorphic library for constructive solid geometry

Published online by Cambridge University Press:  07 November 2008

J. R. Davy
Affiliation:
School of Computer Studies, University of Leeds, Leeds LS2 9JT, UK
P. M. Dew
Affiliation:
School of Computer Studies, University of Leeds, Leeds LS2 9JT, UK
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

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.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1995

References

Alagar, V. S., Bui, T. D. and Periasamy, K. (1990) Semantic CSG Trees for Finite Element Analysis. Computer Aided Design 22(4): 194198.CrossRefGoogle Scholar
Arbab, F. (1984) RSC: A Calculus of Shapes. In: Proc. CAD 84, Brighton, UK, pp. 244251.Google Scholar
Ballard, D. H. (1981) Strip Trees: A Hierarchical Representation for Curves. Comm. ACM 24(5): 310321.CrossRefGoogle Scholar
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.CrossRefGoogle Scholar
Brooks, R. A. (1981) Symbolic Reasoning among 3-D Models and 2-D Images. Artif. Intell. 17: 285348.CrossRefGoogle Scholar
Brunet, P. and Navazo, I. (1990) Solid Representation and Operation using Extended Octrees. ACM Trans. Graphics 9(2): 170197.CrossRefGoogle Scholar
Burstall, R. M. and Darlington, J. (1977) A Transformation System for Developing Recursive Programs. J. ACM 24(1): 4467.CrossRefGoogle Scholar
Burton, F. W. and Yang, H.-K. (1990) Manipulating Multilinked Data Structures in a Pure Functional Language. Software - Practice and Experience 20(11): 11671185.Google Scholar
Cameron, S. (1989) Efficient Intersection Tests for Objects Defined Constructively. Int. J. Robotics Res. 8(1): 325.CrossRefGoogle Scholar
Carlblom, I. (1987) An Algorithm for Geometric Set Operations using Cellular Subdivision Techniques. IEEE Computer Graphics and Applications 7(5): 4455.CrossRefGoogle Scholar
Cole, M. (1989) Algorithmic Skeletons: Structured Management of Parallel Computation. Pitman/MIT Press.Google Scholar
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.Google Scholar
Davy, J. R. (1992) Using Divide-and-Conquer for Parallel Geometric Evaluation. PhD thesis, University of Leeds.Google Scholar
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.Google Scholar
Dunnington, D. R. (1989) A Recursive Subdivision Strategy for Solid Modelling with Sculptured Surfaces. PhD thesis, Leeds University.Google Scholar
Floriani, L. D., Falcidieno, B., Nagy, G. and Pienovi, C. (1984) A Hierarchical Structure for Surface Approximation. Computer and Graphics 8(2): 183193.CrossRefGoogle Scholar
Gomez, D. and Guzman, A. (1979) Digital Model for Three-dimensional Surface Representation. Geo-processing 1: 5370.Google Scholar
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.Google Scholar
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.Google Scholar
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.Google Scholar
Holliman, N. S., Wang, C. M. and Dew, P. M. (1993) Mistral-3: Parallel Solid Modelling. The Visual Computer 9(7): 356370.CrossRefGoogle Scholar
Kela, A. (1989) Hierarchical Octree Approximations for Boundary Representation-based Geometric Models. Computer Aided Design 21(6): 335362.CrossRefGoogle Scholar
Kelly, P. H. J. (1989) Functional Programming for Loosely-coupled Multiprocessors, Pitman/MIT Press.Google Scholar
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.CrossRefGoogle Scholar
Meagher, D. (1982) Geometric Modeling using Octree Encoding. Computer Graphics and Image Processing 19: 129147.CrossRefGoogle Scholar
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.Google Scholar
Mudur, S. P. and Koparkar, P. A. (1984) Interval Methods for Processing Geometric Objects. IEEE Computer Graphics and Applications 4(2): 717.CrossRefGoogle Scholar
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.Google Scholar
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.CrossRefGoogle Scholar
Perry, N. (1989) Hope+. Technical documentation, Department of Computing, Imperial College London.Google Scholar
Perry, N. (1995) Private communication.Google Scholar
Peyton Jones, S. (1987) The Implementation of Functional Programming Languages, Prentice-Hall.Google Scholar
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.CrossRefGoogle Scholar
Requicha, A. A. G. (1980), Representations for Rigid Solids: Theory, Methods and Systems. ACM Comput. Surv. 12(4): 437464.CrossRefGoogle Scholar
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.Google Scholar
Samet, H. (1984) The Quadtree and Related Hierarchical Data Structures. ACM Comput. Surv. 16(2): 187260.CrossRefGoogle Scholar
Samet, H. (1990) Applications of Spatial Data Structures, Addison Wesley.CrossRefGoogle Scholar
Samet, H. and Tamminen, M. (1985) Bintrees, CSG Trees and Time. Computer Graphics 19(3): 121130.CrossRefGoogle Scholar
Shamos, M. I. (1977) Computational Geometry, PhD thesis, Yale University.Google Scholar
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.CrossRefGoogle Scholar
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.Google Scholar
Tilove, R. B. (1980) Set Membership Classification: A Unified Approach to Geometric Intersection Problems. IEEE Trans. Computers 29(10): 874883.CrossRefGoogle Scholar
Tilove, R. B. (1981) Exploiting Spatial and Structural Locality in Geometric Modelling. PhD thesis, University of Rochester.Google Scholar
Wallis, A. F. and Woodwark, J. R. (1984) Creating Large Solid Models for NC Toolpath Verification. In” Proc. CAD 84, Brighton, UK, pp. 455460.Google Scholar
Woodwark, J. R. (1986) Generating Wireframes from Set-Theoretic Solid Models by Spatial Subdivision. Computer-Aided Design 18(6): 307315.CrossRefGoogle Scholar
Wyvill, G. and Kunii, T. L. (1985) A Functional Model for Constructive Solid Geometry. The Visual Computer 1: 314.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.