--- ray/src/rt/t_func.c 2004/03/30 16:13:01 2.7 +++ ray/src/rt/t_func.c 2024/12/03 19:36:58 2.11 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: t_func.c,v 2.7 2004/03/30 16:13:01 schorsch Exp $"; +static const char RCSid[] = "$Id: t_func.c,v 2.11 2024/12/03 19:36:58 greg Exp $"; #endif /* * t_func.c - routine for procedural textures. @@ -28,16 +28,16 @@ static const char RCSid[] = "$Id: t_func.c,v 2.7 2004/ */ -extern int +int t_func( /* compute texture for ray */ - register OBJREC *m, - register RAY *r + OBJREC *m, + RAY *r ) { FVECT disp; double d; - register MFUNC *mf; - register int i; + MFUNC *mf; + int i; if (m->oargs.nsargs < 4) objerror(m, USER, "bad # arguments"); @@ -46,19 +46,18 @@ t_func( /* compute texture for ray */ errno = 0; for (i = 0; i < 3; i++) { disp[i] = evalue(mf->ep[i]); - if (errno == EDOM || errno == ERANGE) { + if ((errno == EDOM) | (errno == ERANGE)) { objerror(m, WARNING, "compute error"); return(0); } } - if (mf->f != &unitxf) - multv3(disp, disp, mf->f->xfm); + if (mf->fxp != &unitxf) + multv3(disp, disp, mf->fxp->xfm); if (r->rox != NULL) { multv3(disp, disp, r->rox->f.xfm); - d = 1.0 / (mf->f->sca * r->rox->f.sca); + d = 1.0 / (mf->fxp->sca * r->rox->f.sca); } else - d = 1.0 / mf->f->sca; - for (i = 0; i < 3; i++) - r->pert[i] += disp[i] * d; + d = 1.0 / mf->fxp->sca; + VSUM(r->pert, r->pert, disp, d); return(0); }