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.1 by greg, Thu Feb 2 10:41:46 1989 UTC vs.
Revision 1.4 by greg, Tue Mar 14 11:02:35 1989 UTC

# Line 40 | Line 40 | t_func(m, r)                   /* compute texture for ray */
40   register OBJREC  *m;
41   register RAY  *r;
42   {
43 #define  mxf    ((XFORM *)m->os)
43          extern double  varvalue();
44          extern int  errno;
45          FVECT  disp;
46 +        register XFORM  *mxf;
47          register int  i;
48          register char  **sa;
49  
# Line 51 | Line 51 | register RAY  *r;
51                  objerror(m, USER, "bad # arguments");
52          sa = m->oargs.sarg;
53  
54 <        if (mxf == NULL) {
54 >        if ((mxf = (XFORM *)m->os) == NULL) {
55                  mxf = (XFORM *)malloc(sizeof(XFORM));
56                  if (mxf == NULL)
57                          goto memerr;
# Line 68 | Line 68 | register RAY  *r;
68                                  m->oargs.nsargs-4, sa+4);
69                  if (mxf->back.sca < 0.0)
70                          mxf->back.sca = -mxf->back.sca;
71 +                m->os = (char *)mxf;
72          }
73  
74 <        setmap(m, r, mxf->back.sca, mxf->back.xfm);
74 >        setmap(m, r, mxf->back.xfm, mxf->back.sca);
75  
76          if (!vardefined(sa[0]))
77                  loadfunc(sa[3]);
# Line 81 | Line 82 | register RAY  *r;
82                  objerror(m, WARNING, "compute error");
83                  return;
84          }
85 <        if (mxf->fore.xfm == NULL)
86 <                for (i = 0; i < 3; i++)
87 <                        r->pert[i] += disp[i];
88 <        else
89 <                for (i = 0; i < 3; i++)
89 <                        r->pert[i] += ( disp[0]*mxf->fore.xfm[0][i] +
90 <                                        disp[1]*mxf->fore.xfm[1][i] +
91 <                                        disp[2]*mxf->fore.xfm[2][i] )
92 <                                                / mxf->fore.sca;
85 >        for (i = 0; i < 3; i++)
86 >                r->pert[i] += ( disp[0]*mxf->fore.xfm[0][i] +
87 >                                disp[1]*mxf->fore.xfm[1][i] +
88 >                                disp[2]*mxf->fore.xfm[2][i] )
89 >                                        / mxf->fore.sca;
90          return;
91   memerr:
92          error(SYSTEM, "out of memory in t_func");
96 #undef  mxf
93   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines