Skip to main content

An Adaptable and Extensible Geometry Kernel

  • Conference paper
  • First Online:
Algorithm Engineering (WAE 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2141))

Included in the following conference series:

Abstract

Geometric algorithms are based on geometric objects such as points, lines and circles. The term Kernel refers to a collection of representations for constant-size geometric objects and operations on these representations. This paper describes how such a geometry kernel can be designed and implemented in C++, having special emphasis on adaptability, extensibility and efficiency. We achieve these goals following the generic programming paradigm and using templates as our tools. These ideas are realized and tested in CGAL [9], the Computational Geometry Algorithms Library.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andrew, A. M. Another efficient algorithm for convex hulls in two dimensions. Inform. Process. Lett. 9,5 (1979), 216–219.

    Article  MATH  Google Scholar 

  2. Austern, M. H.Generic Programming and the STL. Addison-Wesley, 1998.

    Google Scholar 

  3. Baker, J. E., Tamassia, R., AND Vismara, L. GeomLib: Algorithm engineering for a geometric computing library, 1997. (Preliminary report).

    Google Scholar 

  4. Barton, J. J., AND Nackman, L. R.Scientific and Engineering C++. Addison Wesley, Reading, MA, 1997.

    Google Scholar 

  5. Brönnimann, H., Burnikel, C., AND Pion, S. Interval arithmetic yields efficient dynamic filters for computational geometry. In Proc. 14th Annu. ACM Sympos. Comput. Geom. (1998), pp. 165–174.

    Google Scholar 

  6. Brönnimann, H., Kettner, L., Schirra, S., AND Veltkamp, R. Applications of the generic programming paradigm in the design of CGAL. In Generic Programming—Proceedings of a Dagstuhl Seminar (2000), M. Jazayeri, R. Loos, and D. Musser, Eds., LNCS 1766, Springer-Verlag.

    Chapter  Google Scholar 

  7. Burnikel, C., Mehlhorn, K., AND Schirra, S. The LEDA class real number. Technical Report MPI-I-96-1-001, Max-Planck Institut Inform., Saarbrücken, Germany, Jan. 1996.

    Google Scholar 

  8. International standard ISO/IEC 14882: Programming languages-C++. American National Standards Institute, 11 West 42nd Street, New York 10036, 1998.

    Google Scholar 

  9. CGAL, the Computational Geometry Algorithms Library. http://www.cgal.org/.

  10. Coplien, J. O. Curiously recurring template patterns. C++ Report (Feb. 1995), 24–27.

    Google Scholar 

  11. De Berg, M., VAN Kreveld, M., Overmars, M., AND Schwarzkopf, O.Computational Geometry: Algorithms and Applications. Springer-Verlag, Berlin, 1997.

    MATH  Google Scholar 

  12. Fabri, A., Giezeman, G.-J., Kettner, L., Schirra, S., AND Schönherr, S. The CGAL kernel: A basis for geometric computation. In Proc. 1st ACM Workshop on Appl. Comput. Geom. (1996), M. C. Lin and D. Manocha, Eds., vol. 1148 of Lecture Notes Comput. Sci., Springer-Verlag, pp. 191–202.

    Google Scholar 

  13. Fabri, A., Giezeman, G.-J., Kettner, L., Schirra, S., AND Schönherr, S. On the design of CGAL, the computational geometry algorithms library. Software-Practice and Experience 30 (2000), 1167–1202.

    Article  MATH  Google Scholar 

  14. Fortune, S., and Van Wyk, C. J. Static analysis yields efficient exact integer arithmetic for computational geometry. Acm Trans. Graph. 15, 3 (July 1996), 223–248.

    Google Scholar 

  15. Giezeman, G.-J.PlaGeo, a library for planar geometry, and SpaGeo, a library for spatial geometry. Utrecht University, 1994.

    Google Scholar 

  16. IEEE Standard for binary floating point arithmetic, ANSI/IEEE Std 754-1985. New York, NY, 1985. Reprinted in SIGPLAN Notices, 22(2):9–25, 1987.

    Google Scholar 

  17. Josuttis, N. M.The C++ Standard Library, A Tutorial and Reference. Addison-Wesley, 1999.

    Google Scholar 

  18. Karamcheti, V., Li, C., Pechtchanski, I., AND Yap, C.The CORE Library Project, 1.2 ed., 1999. http://www.cs.nyu.edu/exact/core/.

  19. Kettner, L. Using generic programming for designing a data structure for polyhedral surfaces. Comput. Geom. Theory Appl. 13 (1999), 65–90.

    MATH  Google Scholar 

  20. Mehlhorn, K., AND Näher, S.LEDA: A Platform for Combinatorial and Geometric Computing. Cambridge University Press, Cambridge, UK, 2000.

    Google Scholar 

  21. Musser, D. R., AND Stepanov, A. A. Generic programming. In 1st Intl. Joint Conf. of ISSAC-88 and AAEC-6 (1989), Springer LNCS 358, pp. 13–25.

    Google Scholar 

  22. Musser, D. R., AND Stepanov, A. A. Algorithm-oriented generic libraries. Software-Practice and Experience 24,7 (July 1994), 623–642.

    Google Scholar 

  23. Myers, N. C. Traits: A new and useful template technique. C++ Report (June 1995). http://www.cantrip.org/traits.html.

  24. Schirra, S. A case study on the cost of geometric computing. In Proc. Workshop on Algorithm Engineering and Experimentation (1999), vol. 1619 of Lecture Notes Comput. Sci., Springer-Verlag, pp. 156–176.

    Google Scholar 

  25. Shewchuk, J. R. Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discrete Comput. Geom. 18,3 (1997), 305–363.

    Article  MATH  MathSciNet  Google Scholar 

  26. Stroustrup, B.The C++ Programming Language, 3rd Edition. Addison-Wesley, 1997.

    Google Scholar 

  27. Veldhuizen, T. Techniques for scientific C++. Technical Report 542, Department of Computer Science, Indiana University, 2000. http://www.extreme.indiana.edu/~tveldhui/papers/techniques/.

  28. Yap, C. K., AND Dubé, T. The exact computation paradigm. In Computing in Euclidean Geometry, D.-Z. Du and F. K. Hwang, Eds., 2nd ed., vol. 4 of Lecture Notes Series on Computing. World Scientific, Singapore, 1995, pp. 452–492.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hert, S., Hoffmann, M., Kettner, L., Pion, S., Seel, M. (2001). An Adaptable and Extensible Geometry Kernel. In: Brodal, G.S., Frigioni, D., Marchetti-Spaccamela, A. (eds) Algorithm Engineering. WAE 2001. Lecture Notes in Computer Science, vol 2141. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44688-5_7

Download citation

  • DOI: https://doi.org/10.1007/3-540-44688-5_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42500-7

  • Online ISBN: 978-3-540-44688-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics