--- ray/src/rt/o_instance.c 1989/04/19 21:35:57 1.3 +++ ray/src/rt/o_instance.c 1989/04/23 19:33:59 1.5 @@ -31,7 +31,6 @@ register RAY *r; rcont.rno = nrays; rcont.ro = NULL; rcont.rot = FHUGE; - rcont.rno = nrays; multp3(rcont.rorg, r->rorg, in->b.xfm); multv3(rcont.rdir, r->rdir, in->b.xfm); for (i = 0; i < 3; i++) @@ -41,10 +40,12 @@ register RAY *r; return(0); /* missed */ if (rcont.rot * in->f.sca >= r->rot) return(0); /* not close enough */ - /* if we have modifier, use it */ - if (o->omod != OVOID) + + if (o->omod != OVOID) { /* if we have modifier, use it */ r->ro = o; - else { /* else use theirs */ + r->rofs = 1.0; setident4(r->rofx); + r->robs = 1.0; setident4(r->robx); + } else { /* else use theirs */ r->ro = rcont.ro; multmat4(r->rofx, rcont.rofx, in->f.xfm); r->rofs = rcont.rofs * in->f.sca;