I.  Contents of polyhedral.zip

    1.  read_this.txt
    2.  polyhedral.inc (put this in your include directory)
    3.  polyhedral.pov (example scene)
    4.  polyhedral2.pov (example scene)
    5.  polyhedral3.pov (example scene)

II.  Instructions for use of polyhedral.inc

    1.  Make sure you are using POV-Ray 3.1, it is not compatible with previous versions.
    2.  Include polyhedral.inc at the beginning of your file;
        (#include "polyhedral.inc" for example, if polyhedral.inc is in your search path)
    3.  When you want to use a polyhedral object, type:
        polyhedron(a,b,c,d,e,f)
        where
        a is an integer, 1-20
        b is a texture
        c is a texture
        d is a texture    
        e is "f", or "s" <--quotes included
        f is a floating point number
    4.  The polyhedron() macro can be used by itself or in an object statement.
        If it is the latter, put whatever object modifiers you want after the
        polyhedron() statement.
        
III.  Notes

  1.  The a variable determines which solid is used.  1-5 are the platonic solids, while 
      6-20 are the archimedean solids.  The following is a list of which number corresponds
      to which solid:
      
      Platonic solids

      1.  Tetrahedron
      2.  Hexahedron (Cube)
      3.  Octahedron
      4.  Dodecahedron
      5.  Icosahedron
      
      Archimedean solids
      
      6.  Truncated Tetrahedron
      7.  Cuboctahedron
      8.  Truncated Octahedron
      9.  Truncated Hexahedron (Cube)
      10. Rhombicuboctahedron
      11. Truncated Rhombicuboctahedron
      12. Snub Cube, Left-Handed
      13. Snub Cube, Right-Handed
      14. Icosidodecahedron
      15. Truncated Isosahedron
      16. Truncated Dodecahedron
      17. Rhombicosidocehedron
      18. Truncated Icosidodecahedron
      19. Snub Dodecahedron, Left-Handed
      20. Snub Dodecahedron, Right-Handed
      
  2.  The size of the solids rendered varies, but the edge length is constant (equal to 1.0)
      prior to subsequent scaling operations.  An updated version of this macro (not sure of
      completion date) will allow the user to select an edge length of one, or a radius
      (center to corner point/vertex) of length one.

  3.  The three textures are required in all of the polyhedron()'s uses, although not all 
      of the declared textures will be visible.  The first texture will always be visible.
      The second will only be visible in those solids with two or more types of faces,
      such as number 6, the truncated tetrahedron.  Likewise, the third declared texture
      will only show up in those solids with three or more types of faces, such as the 
      rhombicosidodecahedron, nubmer 17.

  4.  The "f" and "s" correspond to the framework and solid versions of the polyhedrons.
      If the "f" version is used, then f, the floating point number, is used for the radius
      of the cylinders and spheres used in the framework.  if the "s" version is used, then
      the value of f, the floating point number has no effect.
      
  5.  If you make any one of the faces, or the whole object transparent, be sure and use the
      polyhedron statement inside an object statement with a declared index of refraction.
      For example:
      
      #declare b=texture{pigment {color rgbf<1,1,1,1>}}
      #declare c=texture{pigment{Jade}}
      #declare d=texture{pigment{color Red}}
      object
       {
        polyhedron(a,b,c,d,e,f)
        interior{ior 1.1}
       }                    

  6.  Be warned, as the number of the solid increases, so does the rendering time.  The snub
      dodecahedron takes significantly longer than the tetrahedron.

III.  Planned Upgrades to polyhedral.inc

  1.  The option to have an edge length or radius equal to one.
  2.  The ability to make each face be in effect tiles with variable thickness.
  3.  A detailed file giving several properties of each of the different solids, such as 
      angles between the faces, radius if edge length one, number of faces, number of edges,
      number of vertices, height of solids, etc..
  4.  The ability to use different textures for the edges and the endpoints on the framework
      versions of the solids.
                 