PolyProject() takes a geom and a camera as its arguements. The geom is converted to a polylist (see anytooff(3)) and transformed according to the camera's world-to-camera transformation matrix. The polygons are sorted in order of their closest z coordinate (See sortbyz(3)), achieving a sort of depth buffering (Note that this is not true z-buffering). Since the normals of the polygon will generally be meaningless after the projection matrix has been applied, they are computed at this point. Lastly, the projection matrix associated with the camera is applied to the object and the object is returned.
PolyToPSInit() takes a file pointer and an integer as its arguements. The file pointer should point to a file opened for writing and will be the destination of the PostScript routines to be created. The integer should be a combination of the following flags (defined in pssnap.h): PS_COLOR (Create color output), PS_EDGES (Draw edges), and PS_FACES (Draw faces). PolyToPSInit() write out the standard PostScript header information, as well as routines which will be called by the PostScript code output by PolyToPS().
PolyToPS() draws a PostScript image of the geom to the given file. The value of flag is as in PolyToPSInit(). It should not be changed between calls to PolyToPSInit() and PolyToPS(). No transformations are performed on the geom, so PolyToPS should generally be called only on objects returned by PolyProject().
Celeste Fowler email: fowler@geom.umn.edu The Geometry Center phone: (612) 626-8304 1300 South Second Street Minneapolis, MN 55454