AnyToPL - convert an arbitrary geom to a polylist (OFF file format)
Geom *AnyToPL(Geom *, Transform);
AnyToPL() takes any geom as an arguement. It then returns a polylist
object which is geometrically identical to the original geom. The
transform argument is the transform applied to the entire object; it
should generally be set to TM_IDENTITY when AnyToPL() is first called.
Geometric objects are handled in the following ways:
Polylists: A transformed copy of the original is returned.
Bezier: The object is rediced if necessary, then handled as a mesh
Quad: The object is directly transformed into a new polylist.
Mesh: The object is directly transformed into a new polylist, with
extra polygons added to do the wrapping if necessary.
Vect: The object is converted into a polylist containing a 2-gon for
every segment in the original vector object. The colors of the faces
are the same as the colors of the original object, but this generally
is irrelevant since the faces are not visible. Note that edge visibil‐
ity must be enabled for an object which has been converted from a vect
to a polylist to be visible in geomview.
List: AnyToPL() is called recursively and the resultant polylists are
combined using PLCombine(3). Inst: AnyToPL() is called recursively
with a new transformation matrix. The resultant polylists are combined
No effort is made to eliminate identical vertices. However, no extra‐
neous repeated vertexes should be created. The resultant polylist
should have the same number of vertexes as the original object.
AnyToPL() is part of the geomutil library; see geomutil(3) for informa‐
tion on how to link your program with this library.
plcombine(3), anytooff(1), geomview(1), geomutil(3)
The Geometry Center
Geometry Center June 15, 1992 AnyToPL(3gv)