ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/t_func.c
(Generate patch)

Comparing ray/src/rt/t_func.c (file contents):
Revision 1.2 by greg, Tue Feb 21 14:56:22 1989 UTC vs.
Revision 1.6 by greg, Wed Apr 19 21:20:29 1989 UTC

# Line 43 | Line 43 | register RAY  *r;
43          extern double  varvalue();
44          extern int  errno;
45          FVECT  disp;
46 +        double  d;
47          register XFORM  *mxf;
48          register int  i;
49          register char  **sa;
# Line 71 | Line 72 | register RAY  *r;
72                  m->os = (char *)mxf;
73          }
74  
75 <        setmap(m, r, mxf->back.sca, mxf->back.xfm);
75 >        setmap(m, r, mxf->back.xfm, mxf->back.sca);
76  
77          if (!vardefined(sa[0]))
78                  loadfunc(sa[3]);
# Line 82 | Line 83 | register RAY  *r;
83                  objerror(m, WARNING, "compute error");
84                  return;
85          }
86 <        if (mxf->fore.xfm == NULL)
87 <                for (i = 0; i < 3; i++)
88 <                        r->pert[i] += disp[i];
89 <        else
90 <                for (i = 0; i < 3; i++)
90 <                        r->pert[i] += ( disp[0]*mxf->fore.xfm[0][i] +
91 <                                        disp[1]*mxf->fore.xfm[1][i] +
92 <                                        disp[2]*mxf->fore.xfm[2][i] )
93 <                                                / mxf->fore.sca;
86 >        multv3(disp, disp, mxf->fore.xfm);
87 >        multv3(disp, disp, r->rofx);
88 >        d = 1.0 / (mxf->fore.sca * r->rofs);
89 >        for (i = 0; i < 3; i++)
90 >                r->pert[i] += disp[i] * d;
91          return;
92   memerr:
93          error(SYSTEM, "out of memory in t_func");

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines