25 |
|
extern double minweight; /* minimum ray weight */ |
26 |
|
extern int do_irrad; /* compute irradiance? */ |
27 |
|
|
28 |
< |
long raynum = 0L; /* next unique ray number */ |
29 |
< |
long nrays = 0L; /* number of calls to localhit */ |
28 |
> |
unsigned long raynum = 0; /* next unique ray number */ |
29 |
> |
unsigned long nrays = 0; /* number of calls to localhit */ |
30 |
|
|
31 |
|
static FLOAT Lambfa[5] = {PI, PI, PI, 0.0, 0.0}; |
32 |
|
OBJREC Lamb = { |
105 |
|
raycont(r) /* check for clipped object and continue */ |
106 |
|
register RAY *r; |
107 |
|
{ |
108 |
< |
if (r->clipset != NULL && inset(r->clipset, r->ro->omod)) |
108 |
> |
if ((r->clipset != NULL && inset(r->clipset, r->ro->omod)) || |
109 |
> |
r->ro->omod == OVOID) |
110 |
|
raytrans(r); |
111 |
|
else |
112 |
|
rayshade(r, r->ro->omod); |
464 |
|
checkset(oset, cxs); /* eliminate double-checking */ |
465 |
|
for (i = oset[0]; i > 0; i--) { |
466 |
|
o = objptr(oset[i]); |
466 |
– |
if (o->omod == OVOID && issurface(o->otype)) |
467 |
– |
continue; /* ignore void surfaces */ |
467 |
|
(*ofun[o->otype].funp)(o, r); |
468 |
|
} |
469 |
|
if (r->ro == NULL) |