Ico displays
a wire-frame rotating polyhedron, with hidden lines removed, or a solid-fill
polyhedron with hidden faces removed. There are a number of different polyhedra
available; adding a new polyhedron to the program is quite simple.

Use double buffering on the display. This works for
either wire frame or solid fill drawings. For solid fill drawings, using
this switch results in substantially smoother movement. Note that this requires
twice as many bit planes as without double buffering. Since some colors
are typically allocated by other programs, most eight-bit-plane displays
will probably be limited to eight colors when using double buffering.

-faces

Draw filled faces instead of wire frames.

-noedges

Don't draw the wire frames.
Typically used only when -faces is used.

-sleep n

Sleep n seconds between
each move of the object.

-obj object

Specify what object to draw. If no object
is specified, an icosahedron is drawn.

-objhelp

Print out a list of the available
objects, along with information about each object.

-colors color color ...

Specify
what colors should be used to draw the filled faces of the object. If less
colors than faces are given, the colors are reused.

Pressing
"q" will close a window. If compiled with threads support, the program will
stop only when all threads terminate. You can also close an animation window
using the ICCCM delete message (depending on your window manager, you will
have a decoration button or menu to send such message).

If
you have the source to ico, it is very easy to add more polyhedra. Each
polyhedron is defined in an include file by the name of objXXX.h, where
XXX is something related to the name of the polyhedron. The format of the
include file is defined in the file polyinfo.h. Look at the file objcube.h
to see what the exact format of an objXXX.h file should be, then create
your objXXX.h file in that format.

After making the new objXXX.h file (or
copying in a new one from elsewhere), simply do a 'make depend'. This will
recreate the file allobjs.h, which lists all of the objXXX.h files. Doing
a 'make' after this will rebuild ico with the new object information.