247 |
|
double |
248 |
|
eval_rbfrep(const RBFNODE *rp, const FVECT outvec) |
249 |
|
{ |
250 |
+ |
double minval = bsdf_min*output_orient*outvec[2]; |
251 |
|
double res = 0; |
252 |
|
const RBFVAL *rbfp; |
253 |
|
FVECT odir; |
257 |
|
if (rp == NULL) { |
258 |
|
if (outvec[2] > 0 ^ output_orient > 0) |
259 |
|
return(.0); |
260 |
< |
return(bsdf_min*output_orient*outvec[2]); |
260 |
> |
return(minval); |
261 |
|
} |
262 |
|
rbfp = rp->rbfa; |
263 |
|
for (n = rp->nrbf; n--; rbfp++) { |
267 |
|
if (sig2 > -19.) |
268 |
|
res += rbfp->peak * exp(sig2); |
269 |
|
} |
270 |
+ |
if (res < minval) /* never return less than minval */ |
271 |
+ |
return(minval); |
272 |
|
return(res); |
273 |
|
} |
274 |
|
|