267 |
|
FVECT offsdir; |
268 |
|
double or, d; |
269 |
|
int infront; |
270 |
< |
int ssn; |
270 |
> |
int stestlim, ssn; |
271 |
|
int nhit, nok; |
272 |
|
register int i, n; |
273 |
|
/* return if pretesting disabled */ |
293 |
|
#endif |
294 |
|
/* sample */ |
295 |
|
or = sqrt(or2); |
296 |
< |
ssn = STESTMAX*n; |
296 |
> |
stestlim = n*STESTMAX; |
297 |
> |
ssn = 0; |
298 |
|
nhit = nok = 0; |
299 |
|
while (n-- > 0) { |
300 |
|
/* get sample point */ |
301 |
|
do { |
302 |
< |
if (--ssn < 0) { |
302 |
> |
if (ssn >= stestlim) { |
303 |
|
#ifdef DEBUG |
304 |
|
fprintf(stderr, "\ttoo hard to hit\n"); |
305 |
|
#endif |
307 |
|
} |
308 |
|
for (i = 0; i < 3; i++) |
309 |
|
offsdir[i] = or*(1. - |
310 |
< |
2.*urand(931*i+5827+ssn)); |
310 |
> |
2.*urand(urind(931*i+5827,ssn))); |
311 |
> |
ssn++; |
312 |
|
for (i = 0; i < 3; i++) |
313 |
|
sr.rorg[i] = oc[i] + offsdir[i]; |
314 |
|
d = DOT(offsdir,onorm); |