255 |
|
case 't': |
256 |
|
switch (argv[i][2]) { |
257 |
|
case '3': |
258 |
< |
single_plane_incident = 0; |
258 |
> |
single_plane_incident = 1; |
259 |
|
break; |
260 |
|
case '4': |
261 |
< |
single_plane_incident = 1; |
261 |
> |
single_plane_incident = 0; |
262 |
|
break; |
263 |
|
case '\0': |
264 |
|
pctcull = atof(argv[++i]); |
276 |
|
if (single_plane_incident >= 0) { /* function-based BSDF? */ |
277 |
|
void (*evf)(char *s) = single_plane_incident ? |
278 |
|
&eval_isotropic : &eval_anisotropic; |
279 |
< |
if (i != argc-1 || fundefined(argv[i]) != 6) |
279 |
> |
if (i != argc-1 || fundefined(argv[i]) != 6) { |
280 |
> |
fprintf(stderr, |
281 |
> |
"%s: need single function with 6 arguments: bsdf(ix,iy,iz,ox,oy,oz)\n", |
282 |
> |
progname); |
283 |
|
goto userr; |
284 |
+ |
} |
285 |
|
xml_prologue(argc, argv); /* start XML output */ |
286 |
|
if (dofwd) { |
287 |
|
input_orient = -1; |
301 |
|
return(0); |
302 |
|
} |
303 |
|
if (i < argc) { /* open input files if given */ |
304 |
< |
xml_prologue(argc, argv); /* start XML output */ |
304 |
> |
int nbsdf = 0; |
305 |
|
for ( ; i < argc; i++) { /* interpolate each component */ |
306 |
|
FILE *fpin = fopen(argv[i], "rb"); |
307 |
|
if (fpin == NULL) { |
312 |
|
if (!load_bsdf_rep(fpin)) |
313 |
|
return(1); |
314 |
|
fclose(fpin); |
315 |
+ |
if (!nbsdf++) /* start XML on first dist. */ |
316 |
+ |
xml_prologue(argc, argv); |
317 |
|
if (single_plane_incident) |
318 |
|
eval_isotropic(NULL); |
319 |
|
else |