458 |
|
if (delta_r2 >= maxangle*maxangle) |
459 |
|
continue; |
460 |
|
/* |
461 |
< |
* Original ray behind test |
461 |
> |
* Modified ray behind test |
462 |
|
*/ |
463 |
< |
d = 0.0; |
464 |
< |
for (j = 0; j < 3; j++) |
465 |
< |
d += (r->rop[j] - av->pos[j])*(r->ron[j] + uvw[2][j]); |
466 |
< |
d *= 0.5; |
463 |
> |
VSUB(ck0, r->rop, av->pos); |
464 |
> |
d = DOT(ck0, uvw[2]); |
465 |
|
if (d < -minarad*ambacc) |
466 |
|
continue; |
467 |
< |
/* Pre-empt following test if we can */ |
468 |
< |
if (fabs(d) >= av->rad[0]*ambacc) |
467 |
> |
d /= av->rad[0]; |
468 |
> |
delta_t2 = d*d; |
469 |
> |
if (delta_t2 >= ambacc*ambacc) |
470 |
|
continue; |
471 |
|
/* |
472 |
|
* Elliptical radii test based on Hessian |