--- ray/src/rt/raytrace.c 1993/05/25 10:30:01 2.6 +++ ray/src/rt/raytrace.c 1993/12/09 09:34:08 2.8 @@ -105,7 +105,8 @@ RAY *r; raycont(r) /* check for clipped object and continue */ register RAY *r; { - if (r->clipset != NULL && inset(r->clipset, r->ro->omod)) + if ((r->clipset != NULL && inset(r->clipset, r->ro->omod)) || + r->ro->omod == OVOID) raytrans(r); else rayshade(r, r->ro->omod); @@ -330,9 +331,9 @@ register CUBE *scene; sflags = 0; for (i = 0; i < 3; i++) { curpos[i] = r->rorg[i]; - if (r->rdir[i] > FTINY) + if (r->rdir[i] > 1e-7) sflags |= 1 << i; - else if (r->rdir[i] < -FTINY) + else if (r->rdir[i] < -1e-7) sflags |= 0x10 << i; } if (sflags == 0) @@ -463,8 +464,6 @@ OBJECT *cxs; checkset(oset, cxs); /* eliminate double-checking */ for (i = oset[0]; i > 0; i--) { o = objptr(oset[i]); - if (o->omod == OVOID && issurface(o->otype)) - continue; /* ignore void surfaces */ (*ofun[o->otype].funp)(o, r); } if (r->ro == NULL)