              Format of the Components file

This is in two parts, the first giving the data for the face shapes and the
second the characteristics and angles between faces for the different
polyhedron types.

The general format is that all the data items are separated by commas;
formulae are enclosed in quotes (') in case they contain special characters.

For the face data the number of face types (maximum 12) is followed by one
line for each face type: its name, its allowed polyhedra types and its
radius in units of half the length of a side. The allowed polyhedra types
are defined as bits in a 16-bit word expressed in hexadecimal.

For the polyhedron data the number of polyhedron types (maximum 12) is
followed by one line for each type: its name, rotational symmetry, number of
faces and up to four angles. Lines with less than four angles are terminated
with (/).

Most components are defined with one of their planes as the stellation diagram
plane; then to combine them with others they have to be rotated.
E.g. the octahedral diagram must be rotated until a vertex points at the
middle of the stellation diagram plane of the cube; the required rotation
is the second angle in each list.

Definition of the angles (call them A1 to A4):

For the simple solids (Tetra, Hexa, Octa, Dodeca, Icosa and the two Rhombis),
   A1 is the dihedral angle
   A2 is the rotation angle for the tetra to (hemi-)hexa frame,
      the octa to the cube frame
      the icosa to the dodeca frame
      the rhombidodeca to the cube frame
      the rhombitriaconta to the dodeca frame

There are two extra angles for the icosahedral planes. From the diagram plane,
there are 3 planes which define the central triangle (these make the angle A1
to the diagram plane). Then at each corner of the central triangle there are
two planes which define two more triangles and make an angle A3 to the dihedral
plane. They are rotated by A4 from the original triangle.

There is one extra angle for the rhombidodecahedral planes: A3 is the rotation
angle of one of the adjacent planes (arccos(sqrt(2/3))) is half the small
angle of the rhombus). (There are four planes adjacent to the diagram plane,
four adjacent to the plane opposite to the diagram and two central planes
parallel to the x-axis.)

There are two extra angles for the rhombitriacontahedral planes: A3 is the
rotation angle of one of the adjacent planes (arctan(tau)) is half the big
angle of the rhombus) and A4 is the rotation angle to one of the intermediate
planes. (There are four planes adjacent to the diagram plane, then four
intermediate planes with rotations A4, then four more with A3 rotations.
This sequence is duplicated from the plane opposite to the diagram. The
central four planes are parallel to the x & y axes and make the lines for
the compound of 5 cubes.)

The snub planes are calculated within the Stellate code and are not defined
on the snub data lines.



               How to write formulae

For clarity, numbers can be expressed algebraically in pseudo-FORTRAN when
they can contain the following elements:
 a) Decimal numbers optionally including a decimal point
 b) the operators + - * / and ** (or equivalently ^)
 c) any level of parentheses
 d) the functions: SQRT, LOG, LOGX (for LOG10), EXP, SIN,
                   COS, TAN, ASIN, ACOS, ATAN, ABS, AINT
 e) the constants PI and TAU, where PI=3.141593 and TAU = (1+SQRT(5))/2
 f) blanks are ignored


