    A finite length cylinder with parallel end caps may be defined by:
       cylinder { <END1>, <END2>, RADIUS }
 where <END1> and <END2> are vectors defining the x,y,z coordinates of the
 center of each end of the cylinder and RADIUS is a float value for the ra-
 dius.  For example:
       cylinder { <0, 0, 0>, <3, 0, 0>, 2}
 is a cylinder 3 units long lying along the x axis from the origin to x=3
 with a radius of 2.

    Normally the ends of a cylinder are closed by flat planes which are pa-
 rallel to each other and perpendicular to the length of the cylinder.  Add-
 ing the optional keyword 'open' after the radius will remove the end caps
 and results in a hollow tube.

    Because they are finite they respond to automatic bounding.  As with all
 shapes, they can be translated, rotated and scaled.
