| 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 |