Skip to main content

Functional 3D Graphics in C++ — with an Object-Oriented, Multiple Dispatching Implementation

  • Chapter
Object-Oriented and Mixed Programming Paradigms

Part of the book series: Focus on Computer Graphics ((FOCUS COMPUTER))

Abstract

Constructing interactive, animated 3D graphics applications has been notoriously difficult for well over twenty years. Even though significant advances in the state- of-the-art have been made, this situation persists. The system described here simplifies the programmatic construction of geometry in ways that we have not seen elsewhere, and does so within the framework of an accepted production language, C++. It has been our experience that the resulting programs are quite succinct and comprehensible, and execute efficiently. The programmer is presented with a simple, general interface that is both declarative and conforms to the functional programming paradigm. Pursuing a functional interface for developing interactive 3D applications is a novel concept that, in our experience, has been successful in providing a simple, powerful interface and a relatively straightforward implementation. The implementation of the system is highly object-oriented, relying heavily upon multiple dispatching. The system itself is extensible and adding new geometric primitives and operations is straightforward. Entirely new media types, such as sound and image, may be (and have been) added to the system.

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. Kavi Arya . A Functional Approach to Animation. In Computer Graphics Forum, 5(4), pages 297–311, December 1986.

    Google Scholar 

  2. Craig Chambers, David Ungar, and Elgin Lee. An Efficient Implementation of Self, a Dynamically-Typed Object-Oriented Language Based on Prototypes. In Lisp and Symbolic Computation 4, pages 243–281, 1991.

    Google Scholar 

  3. Roger B. Dannenberg, Christopher Lee Fraley, and Peter Velikonja. Fugue: A Functional Language for Sound Synthesis. In IEEE Computer, July 1991, 1991.

    Google Scholar 

  4. Conal Elliott, Greg Schechter, Ricky Yeung, and Salim Abi-Ezzi. TBAG: A High Level Framework for Interactive, Animated 3D Graphics Applications. In Computer Graphics (SIGGRAPH ’94 Proceedings), volume 28(2), July 1994.

    Google Scholar 

  5. A.J. Field and P.G. Harrison. Functional Programming. Addison Wesley, Reading, Mass., 1988.

    MATH  Google Scholar 

  6. Rich Gossweiler, Shuichi Koga Chris Long, and Randy Pausch. Virtual Environment Research Platform. In IEEE Symposium on Research Frontiers in Virtual Reality, October 1993.

    Google Scholar 

  7. International Standard ISO/IEC 9592. Programmer’s Hierarchical Interactive Graphics System (PHIGS), 1989.

    Google Scholar 

  8. Sonya E. Keene . Object-Oriented Programming in Common Lisp. Addison Wesley, Reading, Mass., 1989.

    MATH  Google Scholar 

  9. Larry Koved and Wayne L. Wooten. GROOP: An object-oriented toolkit for animated 3D graphics. In OOPSLA 93 Proceedings, October 1993.

    Google Scholar 

  10. Kubota Pacific Computer, Inc. Doré Programmer’s Guide, Release 5. 0, 1991.

    Google Scholar 

  11. Paul S. Strauss and Rikk Carey. An Object-Oriented 3D Graphics Toolkit. In Computer Graphics (SIGGRAPH ’92 Proceedings), volume 26(2), July 1992.

    Google Scholar 

  12. Bjarne Stroustrup and Dmitry Lenkov. Run-Time Type Identification for C++ (Revised yet again). Technical report, ANSI document x3jl6/92–0121, WG21/N0198, 1992.

    Google Scholar 

  13. Sun Microsystems, Inc. Solaris XGL 3.0 Reference Manual, 1992.

    Google Scholar 

  14. Mark A. Tarlton and P. Nong Tarlton. A framework for dynamic visual applications. In 1992 Symposium on Interactive 3D Graphics, pages 161–164, 1992.

    Google Scholar 

  15. Garry Wiegand and Bob Covey. HOOPS Reference Manual, Version 3. 0. Technical report, Ithaca Software, 1991.

    Google Scholar 

  16. Peter Wisskirchen. Object-Oriented Graphics: From GKS and PHIGS to Object-Oriented Systems. Springer-Verlag, Berlin, 1990.

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1996 EUROGRAPHICS The European Association for Computer Graphics

About this chapter

Cite this chapter

Schechter, G., Elliott, C., Yeung, R., Abi-Ezzi, S. (1996). Functional 3D Graphics in C++ — with an Object-Oriented, Multiple Dispatching Implementation. In: Wisskirchen, P. (eds) Object-Oriented and Mixed Programming Paradigms. Focus on Computer Graphics. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-61062-2_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-61062-2_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-64676-8

  • Online ISBN: 978-3-642-61062-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics