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.
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).
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
sub_arctic.constraints
sub_arctic.input
sub_arctic.lib
sub_arctic.output
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