| 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) |