--- ray/src/cv/mgflib/mgfdoc.tr 1997/03/18 12:57:07 1.17 +++ ray/src/cv/mgflib/mgfdoc.tr 1997/10/16 11:42:25 1.19 @@ -1903,6 +1903,8 @@ and require a normal direction. An .UL f +or +.UL fh entity will interpolate vertex normals if given, and use the polygon plane normal otherwise. See the @@ -1942,6 +1944,7 @@ SEE ALSO .UL cone, .UL cyl, .UL f, +.UL fh, .UL n, .UL p, .UL prism, @@ -1986,6 +1989,7 @@ SEE ALSO .UL cone, .UL cyl, .UL f, +.UL fh, .UL n, .UL prism, .UL ring, @@ -2032,6 +2036,7 @@ xf SEE ALSO .LP .UL f, +.UL fh, .UL p, .UL prism, .UL ring, @@ -2174,6 +2179,10 @@ either all normals or no normals, and to stick with tr when normals are used. Also, specified normals should point in the general direction of the surface for best results. +.LP +Vertices should not be shared between any two contours. +I.e., a hole should not share a vertex or edge with the perimeter or +another hole, or incorrect rendering may result. .SH EXAMPLE .DS @@ -2241,6 +2250,7 @@ SEE ALSO .UL cone, .UL cyl, .UL f, +.UL fh, .UL m, .UL prism, .UL ring, @@ -2298,6 +2308,7 @@ SEE ALSO .LP .UL cone, .UL f, +.UL fh, .UL m, .UL prism, .UL ring, @@ -2370,6 +2381,7 @@ SEE ALSO .LP .UL cyl, .UL f, +.UL fh, .UL m, .UL prism, .UL ring, @@ -2436,6 +2448,7 @@ SEE ALSO .UL cyl, .UL cone, .UL f, +.UL fh, .UL m, .UL ring, .UL sph, @@ -2492,6 +2505,7 @@ SEE ALSO .UL cyl, .UL cone, .UL f, +.UL fh, .UL m, .UL prism, .UL sph, @@ -2552,6 +2566,7 @@ SEE ALSO .UL cyl, .UL cone, .UL f, +.UL fh, .UL m, .UL prism, .UL ring, @@ -3912,6 +3927,7 @@ typedef FLOAT FVECT[3]; /* a 3-d real vector */ typedef struct { int clock; /* incremented each change -- resettable */ + char *client_data; /* pointer to private client data */ FVECT p, n; /* point and normal */ } C_VERTEX; /* vertex context */ .DE @@ -3933,8 +3949,14 @@ handler. (See the .I xf_handler page.)\0 +The +.I client_data +pointer may be used to index private application data for vertex +linking, etc. +This pointer is initialized to NULL when the context is created, +and otherwise ignored by the parser library. .LP -It is possible but not recommended to alter the contents of the +It is possible but not recommended to alter the shared contents of the vertex structure returned by .I c_getvert. Normally it is read during the @@ -4055,6 +4077,7 @@ structure, defined in "parser.h" as: typedef struct { int clock; /* incremented each change */ + char *client_data; /* pointer to private client data */ short flags; /* what's been set */ short ssamp[C_CNSS]; /* spectral samples, min wl to max */ long ssum; /* straight sum of spectral values */ @@ -4070,6 +4093,11 @@ desired. This is a convenient way to keep track of whether or not a color has changed since its last use. The +.I client_data +pointer may be used to index private application data. +This pointer is initialized to NULL when the context is created, +and otherwise ignored by the parser library. +The .I flags member indicates which color representations have been assigned, and is an inclusive OR of one or more of the following: @@ -4214,6 +4242,7 @@ structure, defined in "parser.h" as: typedef struct { int clock; /* incremented each change -- resettable */ + char *client_data; /* pointer to private client data */ int sided; /* 1 if surface is 1-sided, 0 for 2-sided */ float nr, ni; /* index of refraction, real and imaginary */ float rd; /* diffuse reflectance */ @@ -4237,6 +4266,11 @@ material field entity, and may be reset by the calling desired. This is a convenient way to keep track of whether or not a material has changed since its last use. +The +.I client_data +pointer may be used to index private application data. +This pointer is initialized to NULL when the context is created, +and otherwise ignored by the parser library. .LP All reflectance and transmittance values correspond to normal incidence, and may vary as a function of angle depending on the