packages icon
This is the README file for XSurface.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(c)1993-1995 Robert Manners and Dominick Layfield.

XSurface is a program that allows the creation and manipulation of
objects formed from bicubic Bezier patches.  It was written as a joint
3rd year project for the Engineering and Computer Science Part I
course at the University of Oxford.

The executable is "xsurface".  This version of XSurface was developed
under X11R5. The application has also been extensively tested under
X11R6.

Various stored objects may be found in the "surf" directory, including
a README file with brief descriptions.

This software is distributed under the terms of the GNU General Public
Licence. Please see the file COPYING for details.

Installation
~~~~~~~~~~~~

If you have got hold of a binary distribution of XSurface for your
system, you should simply be able to run the xsurface executable `as
is'.  No further configuration should be required. If there is no
binary distribution for your machine, or the binary you have will not
work, (perhaps due to a mis-match in shared libraries) obtain the
source version, and proceed as follows:

Un-tar all the source files. Either modify the Makefile for your
system, by hand, or run `xmkmf' to build a Makefile using the
information from the Imakefile. Then run `make' to build the executable.

There are a few options which may be enabled or disabled by defining
symbols in the Imakefile / Makefile. Please examine the source, if you
want to play with these!

Quick User guide 
~~~~~~~~~~~~~~~~ 

XSurface has three main display windows.  One, "Bezier Surface", shows 
a straight line approximation to the surface.  Another, "Control
Polyhedron", shows the control points that define the object.  The
final one, "Connectivity", shows the connections between the component
Bezier patches.

At any time, only control points in the selected patch may be
moved. The selected patch is shown as a filled square in the
connectivity diagram, and its control points as filled circles in the
control display.  A patch may be selected by clicking inside its
square in the connectivity diagram.

Control points may be moved by dragging them with the mouse.  Motion
along the line of sight may be accomplished by holding shift down at
the same time.

The viewpoint may be changed by dragging in the Bezier window. Holding
down shift whilst dragging alters the viewing distance.

Patches may be created or deleted by shift-clicking in the relevant
place in the connectivity window. Patches may be joined by dragging
from one edge to another.

For more information please obtain the complete User Guide, see below.

Hardware 
~~~~~~~~

XSurface was originally written on SPARC hardware running SunOS.
XSurface has also been found to run successfully on a PC running
Linux, a VAX running Ultrix, and an SGI Indigo running Irix.

It should run on all UNIX X installations. Please let me know if it
works (or does not work) for you!

Documentation
~~~~~~~~~~~~~

The release of Xsurface available on most ftp sites has very little
documentation... If you feel that you need more user documentation,
please mail me at the address below. I can send you a full user 
guide. Extensive documentation on the usage of the application and
on the mathematical theory underlying it is available by email. If
there is much demand, I can make these documents available by ftp.

Enjoy!

 ************************************************************************
* If you wish to comment on the software, heap praise on the authors, or *
* complain about bugs, please mail :                                     *
*                                                                        *
*                      rjm@swift.eng.ox.ac.uk                            *
*                                                                        *
* Any suggestions, improvements and general feedback will be appreciated *
 ************************************************************************