| 530 |
|
{ |
| 531 |
|
int i; |
| 532 |
|
|
| 533 |
< |
if (!getperpendicular(uva[0], nrm)) { |
| 533 |
> |
if (!getperpendicular(uva[0], nrm, 1)) { |
| 534 |
|
fputs(progname, stderr); |
| 535 |
|
fputs(": bad surface normal in make_axes!\n", stderr); |
| 536 |
|
exit(1); |
| 849 |
|
|
| 850 |
|
while (n--) { /* stratified sampling */ |
| 851 |
|
SDmultiSamp(samp2, 2, (n+frandom())/sampcnt); |
| 852 |
< |
if (!fi_getvec(duvw, b+samp2[1], kbasis[bi])) |
| 852 |
> |
if (!fo_getvec(duvw, b+samp2[1], kbasis[bi])) |
| 853 |
|
return(0); |
| 854 |
|
for (i = 3; i--; ) |
| 855 |
|
orig_dir[1][i] = -duvw[0]*p->udir[i] - |
| 1292 |
|
if (argv[a][2] != 'v') na = 2; |
| 1293 |
|
break; |
| 1294 |
|
case 'a': /* special case */ |
| 1295 |
< |
na = (argv[a][2] == 'v') ? 4 : 2; |
| 1295 |
> |
if (argv[a][2] == 'p') { |
| 1296 |
> |
na = 2; /* photon map [+ bandwidth(s)] */ |
| 1297 |
> |
if (a < argc-3 && atoi(argv[a+1]) > 0) |
| 1298 |
> |
na += 1 + (a < argc-4 && atoi(argv[a+2]) > 0); |
| 1299 |
> |
} else |
| 1300 |
> |
na = (argv[a][2] == 'v') ? 4 : 2; |
| 1301 |
|
break; |
| 1302 |
|
case 'm': /* special case */ |
| 1303 |
|
if (!argv[a][2]) goto userr; |