This directory contains utilities for use with libctl.

First, there are ctl-io.scm and gen-ctl-io.scm, which are used to
generate C glue code (ctl-io.h and ctl-io.c) from a specifications
file for translating input/output variables to/from C.

Second, there is libctlgeom, a collection of utility code for manipulating
geometric objects, for use with libctl.  libctlgeom contains:

* geom.scm: specifications file containing classes and utilities
  for dealing with three-dimensional geometric objects (spheres,
  cylinders, etcetera).  This should be included in the specifications
  file for anything using libgeom, with:
	  (include "<libctldir>/utils/geom.scm")

  Each geometric object derives from the class geometric-object, and
  has a material property whose type is the class material-type.  Users
  should provide their own material-type class (if none is provided,
  a dummy class is used).

* geom.c, geom.h: C routines (callable from Guile) for performing
  various operations on a geometry, such as finding out what object
  a given point is inside.  Note that most of these routines
  use the global input variables defined in geom.scm--they must
  be called only when these variables have been imported to C.
