1 |
< |
.\" SCCSid "$SunId$ LBL" |
1 |
> |
.\" RCSid "$Id$" |
2 |
|
.nr PS 11 |
3 |
|
.ps 11 |
4 |
|
.nr VS 12 |
279 |
|
= = = = = |
280 |
|
Object o - - - |
281 |
|
Transform xf - - T{ |
282 |
< |
f, sph, cyl, cone, |
282 |
> |
f, fh, sph, cyl, cone, |
283 |
|
ring, torus, prism |
284 |
|
T} |
285 |
|
Material m 2-sided black T{ |
286 |
|
sides, rd, td, |
287 |
|
ed, rs, ts, ir |
288 |
|
T} T{ |
289 |
< |
f, sph, cyl, cone, |
289 |
> |
f, fh, sph, cyl, cone, |
290 |
|
ring, torus, prism |
291 |
|
T} |
292 |
|
Color c neutral grey T{ |
298 |
|
(0,0,0), |
299 |
|
no normal |
300 |
|
T} p, n T{ |
301 |
< |
f, sph, cyl, cone, |
301 |
> |
f, fh, sph, cyl, cone, |
302 |
|
ring, torus, prism |
303 |
|
T} |
304 |
|
.TE |
817 |
|
.TS |
818 |
|
lw(.75i) lw(1.75i) lw(3i). |
819 |
|
f v1 v2 v3 ... polygon using current material, spec. vertices |
820 |
+ |
fh v1 v2 v3 - ... face with explicit holes |
821 |
|
sph vc radius sphere |
822 |
|
cyl v1 radius v2 truncated right cylinder (open-ended) |
823 |
|
cone v1 rad1 v2 rad2 truncated right cone (open-ended) |
1903 |
|
require a normal direction. |
1904 |
|
An |
1905 |
|
.UL f |
1906 |
+ |
or |
1907 |
+ |
.UL fh |
1908 |
|
entity will interpolate vertex normals if given, and |
1909 |
|
use the polygon plane normal otherwise. |
1910 |
|
See the |
1944 |
|
.UL cone, |
1945 |
|
.UL cyl, |
1946 |
|
.UL f, |
1947 |
+ |
.UL fh, |
1948 |
|
.UL n, |
1949 |
|
.UL p, |
1950 |
|
.UL prism, |
1989 |
|
.UL cone, |
1990 |
|
.UL cyl, |
1991 |
|
.UL f, |
1992 |
+ |
.UL fh, |
1993 |
|
.UL n, |
1994 |
|
.UL prism, |
1995 |
|
.UL ring, |
2036 |
|
SEE ALSO |
2037 |
|
.LP |
2038 |
|
.UL f, |
2039 |
+ |
.UL fh, |
2040 |
|
.UL p, |
2041 |
|
.UL prism, |
2042 |
|
.UL ring, |
2179 |
|
when normals are used. |
2180 |
|
Also, specified normals should point in the general direction of the |
2181 |
|
surface for best results. |
2182 |
+ |
.LP |
2183 |
+ |
Vertices should not be shared between any two contours. |
2184 |
+ |
I.e., a hole should not share a vertex or edge with the perimeter or |
2185 |
+ |
another hole, or incorrect rendering may result. |
2186 |
|
.SH |
2187 |
|
EXAMPLE |
2188 |
|
.DS |
2250 |
|
.UL cone, |
2251 |
|
.UL cyl, |
2252 |
|
.UL f, |
2253 |
+ |
.UL fh, |
2254 |
|
.UL m, |
2255 |
|
.UL prism, |
2256 |
|
.UL ring, |
2308 |
|
.LP |
2309 |
|
.UL cone, |
2310 |
|
.UL f, |
2311 |
+ |
.UL fh, |
2312 |
|
.UL m, |
2313 |
|
.UL prism, |
2314 |
|
.UL ring, |
2381 |
|
.LP |
2382 |
|
.UL cyl, |
2383 |
|
.UL f, |
2384 |
+ |
.UL fh, |
2385 |
|
.UL m, |
2386 |
|
.UL prism, |
2387 |
|
.UL ring, |
2448 |
|
.UL cyl, |
2449 |
|
.UL cone, |
2450 |
|
.UL f, |
2451 |
+ |
.UL fh, |
2452 |
|
.UL m, |
2453 |
|
.UL ring, |
2454 |
|
.UL sph, |
2505 |
|
.UL cyl, |
2506 |
|
.UL cone, |
2507 |
|
.UL f, |
2508 |
+ |
.UL fh, |
2509 |
|
.UL m, |
2510 |
|
.UL prism, |
2511 |
|
.UL sph, |
2566 |
|
.UL cyl, |
2567 |
|
.UL cone, |
2568 |
|
.UL f, |
2569 |
+ |
.UL fh, |
2570 |
|
.UL m, |
2571 |
|
.UL prism, |
2572 |
|
.UL ring, |
3927 |
|
|
3928 |
|
typedef struct { |
3929 |
|
int clock; /* incremented each change -- resettable */ |
3930 |
+ |
char *client_data; /* pointer to private client data */ |
3931 |
|
FVECT p, n; /* point and normal */ |
3932 |
|
} C_VERTEX; /* vertex context */ |
3933 |
|
.DE |
3949 |
|
(See the |
3950 |
|
.I xf_handler |
3951 |
|
page.)\0 |
3952 |
+ |
The |
3953 |
+ |
.I client_data |
3954 |
+ |
pointer may be used to index private application data for vertex |
3955 |
+ |
linking, etc. |
3956 |
+ |
This pointer is initialized to NULL when the context is created, |
3957 |
+ |
and otherwise ignored by the parser library. |
3958 |
|
.LP |
3959 |
< |
It is possible but not recommended to alter the contents of the |
3959 |
> |
It is possible but not recommended to alter the shared contents of the |
3960 |
|
vertex structure returned by |
3961 |
|
.I c_getvert. |
3962 |
|
Normally it is read during the |
4077 |
|
|
4078 |
|
typedef struct { |
4079 |
|
int clock; /* incremented each change */ |
4080 |
+ |
char *client_data; /* pointer to private client data */ |
4081 |
|
short flags; /* what's been set */ |
4082 |
|
short ssamp[C_CNSS]; /* spectral samples, min wl to max */ |
4083 |
|
long ssum; /* straight sum of spectral values */ |
4093 |
|
This is a convenient way to keep track of whether or not a color has |
4094 |
|
changed since its last use. |
4095 |
|
The |
4096 |
+ |
.I client_data |
4097 |
+ |
pointer may be used to index private application data. |
4098 |
+ |
This pointer is initialized to NULL when the context is created, |
4099 |
+ |
and otherwise ignored by the parser library. |
4100 |
+ |
The |
4101 |
|
.I flags |
4102 |
|
member indicates which color representations have been assigned, |
4103 |
|
and is an inclusive OR of one or more of the following: |
4242 |
|
|
4243 |
|
typedef struct { |
4244 |
|
int clock; /* incremented each change -- resettable */ |
4245 |
+ |
char *client_data; /* pointer to private client data */ |
4246 |
|
int sided; /* 1 if surface is 1-sided, 0 for 2-sided */ |
4247 |
|
float nr, ni; /* index of refraction, real and imaginary */ |
4248 |
|
float rd; /* diffuse reflectance */ |
4266 |
|
desired. |
4267 |
|
This is a convenient way to keep track of whether or not a material has |
4268 |
|
changed since its last use. |
4269 |
+ |
The |
4270 |
+ |
.I client_data |
4271 |
+ |
pointer may be used to index private application data. |
4272 |
+ |
This pointer is initialized to NULL when the context is created, |
4273 |
+ |
and otherwise ignored by the parser library. |
4274 |
|
.LP |
4275 |
|
All reflectance and transmittance values correspond to normal |
4276 |
|
incidence, and may vary as a function of angle depending on the |