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

Comparing ray/src/rt/func.c (file contents):
Revision 1.1 by greg, Thu Feb 2 10:41:23 1989 UTC vs.
Revision 1.6 by greg, Thu Jul 27 22:25:13 1989 UTC

# Line 16 | Line 16 | static char SCCSid[] = "$SunId$ LBL";
16  
17  
18   typedef struct {
19        double  sca;                    /* scalefactor */
19          double  xfm[4][4];              /* transform matrix */
20 +        double  sca;                    /* scalefactor */
21   }  XF;
22  
23   static OBJREC  *fobj;           /* current function object */
# Line 25 | Line 25 | static RAY  *fray;             /* current function ray */
25   static XF  fxf;                 /* current transformation */
26  
27  
28 < setmap(m, r, sca, xfm)          /* set channels for function call */
28 > setmap(m, r, xfm, sca)          /* set channels for function call */
29   OBJREC  *m;
30   register RAY  *r;
31 double  sca;
31   double  xfm[4][4];
32 + double  sca;
33   {
34          extern double  l_noise3(), l_noise3a(), l_noise3b(), l_noise3c();
35          extern double  l_hermite(), l_fnoise3(), l_arg();
# Line 53 | Line 53 | double  xfm[4][4];
53          }
54          fobj = m;
55          fray = r;
56 <        fxf.sca = r->ros * sca;
57 <        multmat4(fxf.xfm, r->rox, xfm);
56 >        fxf.sca = r->robs * sca;
57 >        multmat4(fxf.xfm, r->robx, xfm);
58          eclock++;               /* notify expression evaluator */
59   }
60  
# Line 63 | Line 63 | setfunc(m, r)                          /* simplified interface to setmap */
63   register OBJREC  *m;
64   RAY  *r;
65   {
66 < #define  mxf    ((XF *)m->os)
66 >        register XF  *mxf;
67  
68 <        if (mxf == NULL) {
69 <                register int  n = m->oargs.nsargs;
70 <                register char  **sa = m->oargs.sarg;
68 >        if ((mxf = (XF *)m->os) == NULL) {
69 >                register int  n;
70 >                register char  **sa;
71  
72 <                while (n > 0 && **sa != '-') {
73 <                        n--;
74 <                        sa++;
75 <                }
72 >                for (n = m->oargs.nsargs, sa = m->oargs.sarg;
73 >                                n > 0 && **sa != '-'; n--, sa++)
74 >                        ;
75                  mxf = (XF *)malloc(sizeof(XF));
76                  if (mxf == NULL)
77                          goto memerr;
# Line 82 | Line 81 | RAY  *r;
81                          objerror(m, USER, "bad transform");
82                  if (mxf->sca < 0.0)
83                          mxf->sca = -mxf->sca;
84 +                m->os = (char *)mxf;
85          }
86 <        setmap(m, r, mxf->sca, mxf->xfm);
86 >        setmap(m, r, mxf->xfm, mxf->sca);
87          return;
88   memerr:
89          error(SYSTEM, "out of memory in setfunc");
# Line 97 | Line 97 | char  *fname;
97          extern char  *libpath;          /* library search path */
98          char  *ffname;
99  
100 <        if ((ffname = getpath(fname, libpath)) == NULL) {
100 >        if ((ffname = getpath(fname, libpath, R_OK)) == NULL) {
101                  sprintf(errmsg, "cannot find function file \"%s\"", fname);
102                  error(USER, errmsg);
103          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines