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

Comparing ray/src/rt/t_data.c (file contents):
Revision 2.2 by greg, Mon Nov 25 09:50:54 1991 UTC vs.
Revision 2.7 by greg, Wed Mar 5 16:16:53 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1991 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   *  t_data.c - routine for stored textures
9 *
10 *     6/4/86
6   */
7  
8 + #include "copyright.h"
9 +
10   #include  "ray.h"
11  
12   #include  "data.h"
# Line 39 | Line 36 | register OBJREC  *m;
36   RAY  *r;
37   {
38          int  nv;
39 <        FVECT  dval, disp;
40 <        double  pt[MAXDIM];
39 >        FVECT  disp;
40 >        double  dval[3], pt[MAXDIM];
41          double  d;
42          DATARRAY  *dp;
43          register MFUNC  *mf;
# Line 53 | Line 50 | RAY  *r;
50          mf = getfunc(m, 6, i<<7, 1);
51          setfunc(m, r);
52          errno = 0;
53 <        for (i = 0; i < nv; i++) {
53 >        for (i = 0; i < nv; i++)
54                  pt[i] = evalue(mf->ep[i]);
55 <                if (errno)
56 <                        goto computerr;
60 <        }
55 >        if (errno == EDOM || errno == ERANGE)
56 >                goto computerr;
57          dval[0] = datavalue(dp, pt);
58          for (i = 1; i < 3; i++) {
59                  dp = getdata(m->oargs.sarg[i+3]);
# Line 66 | Line 62 | RAY  *r;
62                  dval[i] = datavalue(dp, pt);
63          }
64          errno = 0;
65 <        for (i = 0; i < 3; i++) {
65 >        for (i = 0; i < 3; i++)
66                  disp[i] = funvalue(m->oargs.sarg[i], 3, dval);
67 <                if (errno)
68 <                        goto computerr;
73 <        }
67 >        if (errno == EDOM || errno == ERANGE)
68 >                goto computerr;
69          if (mf->f != &unitxf)
70                  multv3(disp, disp, mf->f->xfm);
71          if (r->rox != NULL) {
# Line 80 | Line 75 | RAY  *r;
75                  d = 1.0 / mf->f->sca;
76          for (i = 0; i < 3; i++)
77                  r->pert[i] += disp[i] * d;
78 <        return;
78 >        return(0);
79   computerr:
80          objerror(m, WARNING, "compute error");
81 <        return;
81 >        return(0);
82   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines