Alterations after June '93 (ie. after project was `complete').
~~~~~~~~~~~~~~~~~~~~~~~~~~
26.10.93  Scalable canvas windows.  This involved hacking the Canvas widget
from the Oxford Widget set, and changes to transformation and viewing routines
so that each window had a scale attribute.  Bug remains that pixmap size is
not altered. (I need to browse the X manuals...) 

10.12.93  Various preprocessor changes made to make compilation on other 
platforms more convenient.  String() macro added so that macro substitution 
can take place within the X resource strings.  Double-buffering now option set
at compile time with -D DOUBLEBUFFERING.  Similarly, type of float used now 
set with -D LONGFLOAT.  XSurface can now also be compiled to update the Bezier 
Surface display continuously (for very powerful machines) by -D UPDATEBEZIER.

10.05.94  CreatePatch now produces compromise patch when extrapolating from
two (or more) neighbours.  Added compile option -D SMALLDISPLAY.

1.12.94  Changed some shared variables to be local statics, typedef'ed the 
enumerated types.  Added the function check() in debug.c to aid debugging.
Activated with compile option -D DEBUG.

15.12.94  Chasing obscure bug that kills XSurface under Linux.  Changed many
little things.  Added -D SPTRIG for machines that support single precision 
trigonometry.  Removed connectivityline, bezierline, etc. macros.  Resource
string in miscx.c now sets a maximum size for double-buffered windows to be
the size of the pixmaps.  Changed nearly all the names for Resource string
macros.  Added comments to surface.h, explaining program constants. 

2.2.95  Using the very handy ElectricFence library, finally tracked down
bug that was causing XSurface to crash under Linux.  Id numbers of vertices
from an unrenumbered object were being used to index an array in copyobject().

14.3.95  Currentpatch was not set when object loaded.  Could cause crashes
when attempting to drag points. [RJM] 
  
21.3.95  Fixed bug introduced with `compromise patches' code, where 
createpatch() was complaining that `Neighbour constraints inconsistent' with
perfectly valid objects.  Compromise was being done only considering immediate
(not secondary) neigbours.  Clear data now resets viewpoint.


