Skip to main content Accessibility help
×
Home
Hostname: page-component-78bd46657c-lpzrl Total loading time: 0.198 Render date: 2021-05-07T05:12:39.198Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "metricsAbstractViews": false, "figures": false, "newCiteModal": false, "newCitedByModal": true }

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

Abstract

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

Access options

Get access to the full version of this content by using one of the access options below.

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.Google 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.

Send article to Kindle

To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

A polymorphic library for constructive solid geometry
Available formats
×

Send article to Dropbox

To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

A polymorphic library for constructive solid geometry
Available formats
×

Send article to Google Drive

To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

A polymorphic library for constructive solid geometry
Available formats
×
×

Reply to: Submit a response


Your details


Conflicting interests

Do you have any conflicting interests? *