Graphics/:

This directory contains the plotting routines which
are incorporated into our graphical user interface.
We emphasize that none of the routines in this
directory are used in the actual proof of the
results in the paper.  These routines are
mainly for drawing purposes, and serve as
sanity checks for what we did in the paper.

The small directory Data/ contains some data files.
The short files in Data/ facilitate the communication
between the C portions of our code and the tcl
portions.
The general protocol is that the various tcl files
write information into files such as Data/in and
Data/option.  The C files then read the files
Data/in and Data/option, do their business, and
write data to the files Data/out1 Data/out2 and Data/out3
The file <interface.t> then reads these data
files and plots the data according to its type.

Here is an overview of the files in this directory:

<list.c> contains a list of all the  Cfiles in this
directory.  These files are:

 algebra.c
 output.c
 circle.c
 arc.c
 draw.c
 tile.c
 pair1.c

<interface.c>  this file reads in auxilliary data,
from the Data/in and Data/option files
and farms out the requested computations to one of
the  C files.   <tile.c>  <pair1.c>  <arc.c>

<interface.o> This is the compiled version of the
interface.c file.  The graphical user interface
main.t, contained in the parent directory, creates
this file automatically.

<interface.t>  this file reads in all the auxilliary
data from the Data/out files and plots it using tcl
commands.


<arc.t>  This file allows the user to select a pair of
arcs, using the GUI.  

<arc.c>  This file takes the selected arcs and computes
the number of intersections.


<tile.t> This file sets up the control panel for many
of the options in the main.t file.  <tile.t> calls 
on <piece.t> which constructs the "piece console".
The piece console lets the user select a tile
(or sub-tile) in the basic tiling discussed in Ch 4
of the paper.

<tile.c>  This file takes the tiles selected by tile.t
and computes the data which comprises a picture of the
tile.  This data is then passed to <interface.t> using
the Data/ subdirectory.


<pair1.t> This file lets the user select a pair of
tetrahedra.   Our selection console is fairly crude,
and we hope to have a more extensive version in the
future.  We named the file under discussion pair1.t
rather than pair.t to remind us to make an improvement
at somepoint.  We do not mean that the file as
written has bugs; it is just rather primitive.

<pair1.c> This file takes the pair selected by the
file pair1.t and applies the various disjointness
tests -- multiple projection test, edge smash test --
discussed in Ch 9 of the paper.  Once this is done
pair1.c communicates the outcome to <interface.t>
using the data files.



<algebra.c> contains some basic algebraic routines
used by the other files.  One annoying thing about
our set-up is that the rigorous computations in
the Computations/ directory use interval
structures whereas the computations here do not.
(It's silly in this informal context.)   Hence
we have to re-write a lot of the basic algebra
routines.


<circle.c>  Is a conversion program which takes three
complex numbers and determines, in terms of quantities
acceptable to tcl, the circular arc determined by
these arcs.   The first option in <main.t> lets
you see that these routines work as claimed.


<draw.c>  This file contains most of the auxilliary
drawing routines called on by the other files,
especially <tile.c>.

<output.c> this file contains the basic plotting
routines, which write things like complex numbers
and vectors to data files.  <output.c> is the I/O
foundation for the routines in <draw.c>.
