A3d description: the new a3d looks like: # Geometric primitives # polygon P 0 0 0 v x1 y1 z1 v x2 y2 z2 ... E 0 0 0 # polyline L 0 0 0 v x1 y1 z1 v x2 y2 z2 ... E 0 0 0 # point p x y z # State information # diffuse color (r,g,b between 0. and 1.) d r g b # specular color s r g b # phong factor g phong 0 0 # normal (should be normalized) n vx vy vz # The color state is permanent # (except the colors are reset to zero at End{Object,Frame,File}) # The normal should precede a (v)ertex or a (p)oint and applies only to # that vertex/point. (lack of normal is equivalent to zero normal) # Special commands (for advanced use) # EndObject: ends current object and selects a new object number # (works like seek(2): int_code=0 -> beg, int_code=1 -> relative, ...) # (ex.: 'o 1 1 0' select next object, 'o 0 3 0' select object 3) o int_code int_disp 0 # EndFrame (used by viewer to determine when to update screen) f 0 0 0 # EndFile (the remainder of the stream is no longer a3d input) q 0 0 0 # EditObject: clears an object (same format as EndObject) O int_code int disp 0 # Geometric primitives are always appended to the current object. # Use EndObject to select a different object, and EditObject to clear an # object before replacing its definition.