468 |
|
/* convert vector coordinates */ |
469 |
|
if (sdt->st->ndim == 3) { |
470 |
|
spinvector(rOutVec, outVec, zvec, -atan2(-inVec[1],-inVec[0])); |
471 |
< |
gridPos[0] = .5 - .5*sqrt(inVec[0]*inVec[0] + inVec[1]*inVec[1]); |
471 |
> |
gridPos[0] = (.5-FTINY) - |
472 |
> |
.5*sqrt(inVec[0]*inVec[0] + inVec[1]*inVec[1]); |
473 |
|
SDdisk2square(gridPos+1, rOutVec[0], rOutVec[1]); |
474 |
|
} else if (sdt->st->ndim == 4) { |
475 |
|
SDdisk2square(gridPos, -inVec[0], -inVec[1]); |
673 |
|
if (sdt->st->ndim == 3) { /* isotropic BSDF? */ |
674 |
|
if (mode != sdt->sidef) /* XXX unhandled reciprocity */ |
675 |
|
return &SDemptyCD; |
676 |
< |
inCoord[0] = .5 - .5*sqrt(inVec[0]*inVec[0] + inVec[1]*inVec[1]); |
676 |
> |
inCoord[0] = (.5-FTINY) - |
677 |
> |
.5*sqrt(inVec[0]*inVec[0] + inVec[1]*inVec[1]); |
678 |
|
} else if (sdt->st->ndim == 4) { |
679 |
|
if (mode != sdt->sidef) /* use reciprocity? */ |
680 |
|
SDdisk2square(inCoord, inVec[0], inVec[1]); |
750 |
|
psa[1] = myPSA[1]; |
751 |
|
/* fall through */ |
752 |
|
case SDqueryMin: |
753 |
< |
if (myPSA[0] < psa[0]) |
753 |
> |
if ((myPSA[0] > 0) & (myPSA[0] < psa[0])) |
754 |
|
psa[0] = myPSA[0]; |
755 |
|
break; |
756 |
|
} |