--- ray/src/cv/mgflib/xf.c 1994/06/29 16:15:25 1.5 +++ ray/src/cv/mgflib/xf.c 1994/07/21 14:56:39 1.7 @@ -80,10 +80,14 @@ char **av; /* translate new specification */ if (xf(&thisxf, spec->xac, &xf_argv[spec->xav0]) != spec->xac) return(MG_ETYPE); + /* check for vertex reversal */ + if ((spec->rev = (thisxf.sca < 0.))) + thisxf.sca = -thisxf.sca; /* compute total transformation */ if (spec->prev != NULL) { - multmat4(spec->xf.xfm, spec->prev->xf.xfm, thisxf.xfm); - spec->xf.sca = spec->prev->xf.sca * thisxf.sca; + multmat4(spec->xf.xfm, thisxf.xfm, spec->prev->xf.xfm); + spec->xf.sca = thisxf.sca * spec->prev->xf.sca; + spec->rev ^= spec->prev->rev; } else spec->xf = thisxf; spec->xid = comp_xfid(spec->xf.xfm); /* compute unique ID */