--- ray/src/rt/func.c 1989/02/21 14:56:17 1.2 +++ ray/src/rt/func.c 1989/04/19 21:36:11 1.5 @@ -16,8 +16,8 @@ static char SCCSid[] = "$SunId$ LBL"; typedef struct { - double sca; /* scalefactor */ double xfm[4][4]; /* transform matrix */ + double sca; /* scalefactor */ } XF; static OBJREC *fobj; /* current function object */ @@ -25,11 +25,11 @@ static RAY *fray; /* current function ray */ static XF fxf; /* current transformation */ -setmap(m, r, sca, xfm) /* set channels for function call */ +setmap(m, r, xfm, sca) /* set channels for function call */ OBJREC *m; register RAY *r; -double sca; double xfm[4][4]; +double sca; { extern double l_noise3(), l_noise3a(), l_noise3b(), l_noise3c(); extern double l_hermite(), l_fnoise3(), l_arg(); @@ -53,8 +53,8 @@ double xfm[4][4]; } fobj = m; fray = r; - fxf.sca = r->ros * sca; - multmat4(fxf.xfm, r->rox, xfm); + fxf.sca = r->robs * sca; + multmat4(fxf.xfm, r->robx, xfm); eclock++; /* notify expression evaluator */ } @@ -66,13 +66,12 @@ RAY *r; register XF *mxf; if ((mxf = (XF *)m->os) == NULL) { - register int n = m->oargs.nsargs; - register char **sa = m->oargs.sarg; + register int n; + register char **sa; - while (n > 0 && **sa != '-') { - n--; - sa++; - } + for (n = m->oargs.nsargs, sa = m->oargs.sarg; + n > 0 && **sa != '-'; n--, sa++) + ; mxf = (XF *)malloc(sizeof(XF)); if (mxf == NULL) goto memerr; @@ -84,7 +83,7 @@ RAY *r; mxf->sca = -mxf->sca; m->os = (char *)mxf; } - setmap(m, r, mxf->sca, mxf->xfm); + setmap(m, r, mxf->xfm, mxf->sca); return; memerr: error(SYSTEM, "out of memory in setfunc");