TOOGL: Graphics for CS1 using C++

This work supported by NSF grant #CCR-9702550 and by McGraw-Hill

This page provides information about TOOGL v. 0.9 That's Tapestry Object-Oriented Graphics Library, pronounced "too-gull".

This library is built on top of the CMU graphics package developed by Geoff Washburn and others, see Mark Stehlik's ftp directory but note that the CMU library is undergoing revision in the summer of 1999. The links below include the CMU graphics package and projects to create a library from that package in conjunction with TOOGL.

TOOGL is available to anyone, not just to those adopting the second edition of A Computer Science Tapestry. Currently it runs under 32-bit Windows C++ environments, but a Unix/Linux version is in the works.

I'll respond to all email. I'd like to get feedback so I'm happy to help interested users get the system running. In each tar/zip archive below there is a README file that describes how to set up TOOGL, create projects and run programs. These instructions and classes have been tested by others, so they do work on other systems, but it's ok to not know how things work, please ask.


For now, the documentation is accessible in the pdf howto. I'll include examples here that aren't included in that document including some screen captures of animations created using TOOGL, see the TOOGL howto for a complete explanation. It provides examples, explanations, and information about programming with TOOGL.


The code and supporting classes, including the CMU graphics library, are provided here in formats for Codewarrior, Visual C++, and Cygwin/egcs. All links are tar/archive files that can be opened with WinZip. Links include all toogl code, all CMU code, and projects for creating libraries out of both. There are self-extracting zip archives for Visual C++ and Codewarrior.

Visual C++

The Visual C++ code and supporting classes are accessible. I've tested with both 5.0 and 6.0 by creating libraries for the CMU code and the toogle/tapestry code. There's a README in the toogl directory when you unzip/unpack. A self-extracting .exe version exists.

Note that to work with Visual C++ you must specify the /GR compiler option under the Project/Settings/C++ dialog box. You can add /GR near the bottom of that dialog box. The /GR setting supports run-time type identification (rtti) and the dynamic_cast operator which is used in TOOGL.

Metrowerks Codewarrior

The Metrowerks Codewarrior code and supporting classes are accessible. I've tested with 3.0 and 4.0 (you'll need to ok the update project dialog for 4.0), but except for changing the #define in the CMU visual.h file for 4.0 (and 5.0 comes out soon) there should be no changes needed for 4.0 or 5.0, if you encouter trouble please let me know. There's a README in the toogl directory when you unzip/unpack. A self-extracting .exe version exists.

Cygwin egcs for Windows

I've ported the CMU graphics library to the cygwin egcs/g++ system. I've tested this under Windows NT and the graphics package works well. There is a tar archive of toogl and supporting code and a compressed tar archive.

Bouncing Animations

The animations are .avi files, most browsers should be able to display them, though some take a while to download.
Owen L. Astrachan
Last modified: Tue Jun 1 12:05:55 EDT 1999