40 |
|
extern int o_cone(); |
41 |
|
extern int o_cylinder(); |
42 |
|
extern int o_ring(); |
43 |
+ |
extern int m_glow(); |
44 |
+ |
extern int m_spot(); |
45 |
|
extern int m_dielectric(); |
46 |
|
extern int m_interface(); |
47 |
|
extern int text(); |
62 |
|
{ "instance", addxform }, |
63 |
|
{ "alias", alias }, |
64 |
|
{ "antimatter", passargs }, |
65 |
+ |
{ "glow", m_glow }, |
66 |
+ |
{ "spotlight", m_spot }, |
67 |
|
{ "dielectric", m_dielectric }, |
68 |
|
{ "interface", m_interface }, |
69 |
|
{ "colortext", text }, |
80 |
|
{ "mixtext", text }, |
81 |
|
{ "light", passargs }, |
82 |
|
{ "illum", passargs }, |
79 |
– |
{ "glow", passargs }, |
83 |
|
{ "plastic", passargs }, |
84 |
|
{ "metal", passargs }, |
85 |
|
{ "trans", passargs }, |
331 |
|
if (fscanf(fin, "%s", alias) != 1) |
332 |
|
return(-1); |
333 |
|
printf("\t%s\n", alias); |
334 |
+ |
return(0); |
335 |
+ |
} |
336 |
+ |
|
337 |
+ |
|
338 |
+ |
m_glow(fin) /* transform arguments for proximity light */ |
339 |
+ |
FILE *fin; |
340 |
+ |
{ |
341 |
+ |
register FUNARGS *fa; |
342 |
+ |
|
343 |
+ |
if ((fa = getfargs(fin)) == NULL) |
344 |
+ |
return(-1); |
345 |
+ |
if (fa->nsargs != 0 || fa->niargs != 0 || fa->nfargs != 4) |
346 |
+ |
return(-1); |
347 |
+ |
printf("0\n0\n4"); |
348 |
+ |
printf(" %18.12g %18.12g %18.12g", |
349 |
+ |
fa->farg[0], fa->farg[1], fa->farg[2]); |
350 |
+ |
printf(" %18.12g\n", fa->farg[3] * totscale); |
351 |
+ |
freefargs(fa); |
352 |
+ |
return(0); |
353 |
+ |
} |
354 |
+ |
|
355 |
+ |
|
356 |
+ |
m_spot(fin) /* transform arguments for spotlight */ |
357 |
+ |
FILE *fin; |
358 |
+ |
{ |
359 |
+ |
double v[3]; |
360 |
+ |
register FUNARGS *fa; |
361 |
+ |
|
362 |
+ |
if ((fa = getfargs(fin)) == NULL) |
363 |
+ |
return(-1); |
364 |
+ |
if (fa->nsargs != 0 || fa->niargs != 0 || fa->nfargs != 7) |
365 |
+ |
return(-1); |
366 |
+ |
printf("0\n0\n7"); |
367 |
+ |
printf(" %18.12g %18.12g %18.12g %18.12g\n", |
368 |
+ |
fa->farg[0], fa->farg[1], fa->farg[2], fa->farg[3]); |
369 |
+ |
multv3(v, fa->farg+4, totxform); |
370 |
+ |
printf("\t%18.12g %18.12g %18.12g\n", v[0], v[1], v[2]); |
371 |
+ |
freefargs(fa); |
372 |
|
return(0); |
373 |
|
} |
374 |
|
|