int numpolys; int *lengths; float *coords; float *colors; float *normals; float *texture_coords
numpolys is the number of polygons in the set. lengths is an array of integers. Each entry contains the number of vertices in the corresponding polygon. coords is the array of vertex coordinates stored as (x0, y0, z0, x1, y1, z1, ..., xn, yn, zn), where n is the sum of the lengths of all the polylines. If the colors argument is non-null, it points to an array of RGB triplets - one for each vertex. The polygons vertices are then colored with this data and shaded dependent on the current properties. A null value ignores vertex colors and produces only the geometry. If the normals argument is non-null, it points to an array of IJK triplets - one for each vertex - defining the surface normal at that vertex. If shading is performed, the normal will be used in the lighting calculation to determine the color of the vertex. A null value ignores vertex colors and the system will perform the lighting calculation (if necessary) in its default
manner (dependent on each system).
draw! This message causes the geometry last passed into the object (via build!) to be rendered. There is some differences between the different renderers. For example gp_polygon will sort transparent polygons while the others currently do not.