| # | Line 127 | Line 127 | o_cone( /* intersect ray with cone */ | |
|---|---|---|
| 127 | for (i = 0; i < 3; i++) | |
| 128 | r->ron[i] = (co->al*r->ron[i] - c*co->ad[i]) | |
| 129 | /co->sl; | |
| 130 | + | a = DOT(r->ron, r->ron); |
| 131 | + | if (a > 1.+FTINY || a < 1.-FTINY) { |
| 132 | + | c = 1./(.5 + .5*a); /* avoid numerical error */ |
| 133 | + | r->ron[0] *= c; r->ron[1] *= c; r->ron[2] *= c; |
| 134 | + | } |
| 135 | r->rod = -DOT(r->rdir, r->ron); | |
| 136 | r->pert[0] = r->pert[1] = r->pert[2] = 0.0; | |
| 137 | r->uv[0] = r->uv[1] = 0.0; | |
| – | Removed lines |
| + | Added lines |
| < | Changed lines (old) |
| > | Changed lines (new) |