Guide to the subArctic Source Code:
Use the Source, Luke

by Scott E. Hudson
Graphics, Visualization, and Usability Center, and
College of Computing
Georgia Institute of Technology
Atlanta, GA 30332-0280


As everyone knows, when the rest of the documentation fails, its the source that serves as the ultimate documentation for the fine details of a system. This page is to provide some help in navigating the source code to the system.

Coding Conventions

With only a few exceptions, non-constant identifiers in subArctic are written in all lower case, with words separated by underscores. Exceptions to this rule are found in the event and drawable classes (and a few other places), which inherit directly from AWT classes and retain AWT declared methods.

With only a few exceptions there are no public instance variables in any subArctic objects. However, Both reading and writing of almost all instance variables is supported. By convention when a protected instance variable is declared it begins with a leading underscore (e.g., _border). A method is then provided for reading which, by convention, is the same name without the underscore (e.g., border()). Finally, in most cases a method for setting the value is provided using a name with "set_" prepended (e.g., set_border()). The use of controlled method access to instance variables is very important in allowing objects to automatically declare damage (e.g., request redraw when properties of the object change).

Major Subsystems

The subArctic system contains 5 major subsystems represented by 5 packages (plus one package for test/demo programs). The packages contained in the system source code are:

sub_arctic.anim
Code related to animation support. This includes the animation input agent, transitions, trajectories, and pacers. (This is experimental in this release.)
sub_arctic.constraints
Code related to declaration and use of constraints.
sub_arctic.input
Code related to input. This includes input policies and agents, and protocols.
sub_arctic.lib
The interactor library and support classes.
sub_arctic.output
Code related to output, including the drawable and loaded_image classes, as well as classes for special drawing effects. In addition, a small stand-alone program (ppm_to_code) for converting PPM format images into subArctic code for initialization of an in-memory image is provided.
sub_arctic.test
Various toolkit test programs. These can be used for examples of how to use many interactors.
 


Scott Hudson
Last revision: October 1996