Version 3.1:

Bug fixes and adds important new features.  These include:

New "Button" directive to allow push buttons as input devices
New "PopUp" directive to allow pop-up menus as input devices.
New "Evolve" directive to make simple animations possible.
New "Animate" directive to make more complicated animations possible.
New "TypeOut" directive to allow easy output of values of variables
New "Window" and "Frame" directives to make it possible to combine input 
devices into your own control panels in an arbitrary way.

Added -bg, -fg, and -disabled options to all input device directives to 
control background and foreground colors, and disabled/enabled state.  
Added "Disabled" and "Enabled" functions to the widget classes so that 
the state can be changed by a function call.

Added -command option to all input devices so that a script can be 
performed when the value changes (rather than an update on the object).  
The script can call Update to update the object if necessary.

Added -width option to Slider directive.

Added "Transform" directive to provide a sophisticated method of 
transforming and duplicating objects using reflections, scalings, 
rotations, etc.

Added projection (stereographic and orthographic) to make it easier to deal 
with higher dimensional data (geomview does not do stereographic 
projection, and does not handle shading properly in ND mode on some platforms; 
this allows high-dimensional objects to be viewed in 3D mode, where shading 
does work).

Added BoundingBox, DataFromPolyhedron, DataFromCurve, DataFromSurface, and 
DataFromGroup object classes.  These make it possible to "cache" objects 
that will be turned on and off frequently so that they don't have to be 
recomputed each time.  See the documentation for more details.

The Level object class now works with all other classes, not just the 
polyhedron class.  

Added a "file changed" indicator in the window's titlebar.

Modified the method of loading config-files so that they can be taken from 
a directory names ".StageTools" in the user's home directory; this allows 
the user a more flexible mechanism of overriding the CenterStage code.

Fixed bug in expression evaluator that prevented mixed complex/real
expressions from working (such as "2 + 3 i").  Better function-calling
within expressions, including ability to specify functions with no
arguments, and better list handling.  Improved speed of expression
evaluation in general.

Fixed NORMALIZE/KEEP to perform one normalization as the object is first
displayed, and then keep it from there on.

Fixed a bug with importing groups when the group's name is the same as an 
existing group.  (The groups would be merged rather than the new one being 
renamed.)

Fixed numerous bugs with linked objects not updating properly.

Fixed bug that caused some objects to be recomputed when they are not 
currently being shown.

Fixed a bug in oo.tcl that caused the context not to be reset properly 
after an error when an object processes a script.

Updated the Curve and Surface objects to compute their derivatives more 
accurately.

Updated the dialog windows so that they now always stay on top of the other 
windows (doesn't work under unix?).

Added ability to have named colors that aren't included in the color map 
itself.  Also added a "Use Map" menu to the color-map editor to allow 
selection from several predefined maps.

The widget windows now include widgets belonging to linked objects, since 
they will also affect the status of the referring object.

The "CheckBox" directive now uses -title to specify the title (the old 
method still works for compatibility, but it obsolete).

In Polyhedron objects (and objects based on polyhedra) you can now specify 
the line width on a face-by-face basis using a "width n" specification as 
in:

	Faces {
	  {{a b} {b c} {c d}} <- {width 3}
          {e f g} <- {outline width 2}
	}

Object classes no longer store private variables in the object's main 
computational namespace, but in a name-subspace of it (called "priv").  
This should not affect most users, but will help to eliminate possible 
variable name conflicts with the user's variables.

Added the "vproc" directive to allow for vector-valued commands within 
expressions (for "let" and "Math").


----------------------------------------------------------------------

Version 3.0:

Major rewrite from the ground up using a new object-oriented programming
library (oo.tcl) based on TCL namespace command (now requires version
TCL/TK 8.0).  There are too many changes to list individually, but they
include:

Much faster execution and more stable environment due to new oo.tcl library.

Classes are now stored in the ::class namespace, and objects in the
::object namespace, so object and class names no longer conflict with other
procedure names.

Each object now has it's own command and variable namespace, rather than 
using global procedures and variables.  Group members inherit commands and 
variables from their parent groups.

Improvements to the expression evaluator (used by "let" and "Math"
commands).

Object scripts can now include arbitrary commands, and can set up variables
using "let", "set", "global", "variable", etc.

The OBJECT/NEW menu now uses a panel that groups the different object 
classes into categories to make it easier to locate the classes you want.  
All classes are listed, though only a few are loaded at startup; the others 
will auto-load when they are first used.

The ability to specify customized fonts has been improved (but may still
need work).

Improved ability to specify level of detail in error reports.

Added "-drag" flag to Sliders.

Input widget windows can now be closed and retrieved via the 
OBJECT/WINDOWS menu.

Input widgets are now listed more appropriately (widgets from parent 
groups and children objects are included).  A bug that caused a lot of 
overhead when changing the widgets has been fixed.

There is now a flexible Levels object for slicing objects (currently it
only works for polyhedral objects, but will work with other classes soon).  
This object class can produce slices at, above or below a specified value, 
using arbitrary height functions.

----------------------------------------------------------------------

Version 2.2:

Fixed bug with DOMAIN and VECTOR menus that would allow them to be
called up by their keyboard equivalents even when they were not
showing in the menu bar.

Added some missing features:  transparency slider, domain width
slider, LineWidth type-in, color selector, library selector,
color-table editor.

Added indicator in menu bar for when an update is needed.

Changed rename and duplicate to not show group names (since
MoveToGroup and RemoveFromGroup are better for changing groups).
