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

Comparing ray/src/rt/p_data.c (file contents):
Revision 2.2 by greg, Mon Nov 25 09:50:53 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   *  p_data.c - routine for stored patterns.
9 *
10 *     6/4/86
6   */
7  
8 + #include "copyright.h"
9 +
10   #include  "ray.h"
11  
12   #include  "data.h"
# Line 69 | Line 66 | RAY  *r;
66          errno = 0;
67          for (i = dp->nd; i-- > 0; ) {
68                  pt[i] = evalue(mf->ep[i]);
69 <                if (errno)
69 >                if (errno == EDOM || errno == ERANGE)
70                          goto computerr;
71          }
72          bval = datavalue(dp, pt);
73          errno = 0;
74          bval = funvalue(m->oargs.sarg[0], 1, &bval);
75 <        if (errno)
75 >        if (errno == EDOM || errno == ERANGE)
76                  goto computerr;
77          scalecolor(r->pcol, bval);
78 <        return;
78 >        return(0);
79   computerr:
80          objerror(m, WARNING, "compute error");
81 <        return;
81 >        return(0);
82   }
83  
84  
# Line 106 | Line 103 | RAY  *r;
103          errno = 0;
104          for (i = 0; i < nv; i++) {
105                  pt[i] = evalue(mf->ep[i]);
106 <                if (errno)
106 >                if (errno == EDOM || errno == ERANGE)
107                          goto computerr;
108          }
109          col[0] = datavalue(dp, pt);
# Line 117 | Line 114 | RAY  *r;
114                  col[i] = datavalue(dp, pt);
115          }
116          errno = 0;
117 <        setcolor(cval,  funvalue(m->oargs.sarg[0], 3, col),
118 <                        funvalue(m->oargs.sarg[1], 3, col),
119 <                        funvalue(m->oargs.sarg[2], 3, col));
120 <        if (errno)
117 >        for (i = 0; i < 3; i++)
118 >                if (fundefined(m->oargs.sarg[i]) < 3)
119 >                        colval(cval,i) = funvalue(m->oargs.sarg[i], 1, col+i);
120 >                else
121 >                        colval(cval,i) = funvalue(m->oargs.sarg[i], 3, col);
122 >        if (errno == EDOM || errno == ERANGE)
123                  goto computerr;
124          multcolor(r->pcol, cval);
125 <        return;
125 >        return(0);
126   computerr:
127          objerror(m, WARNING, "compute error");
128 <        return;
128 >        return(0);
129   }
130  
131  
# Line 148 | Line 147 | RAY  *r;
147          errno = 0;
148          pt[1] = evalue(mf->ep[0]);      /* y major ordering */
149          pt[0] = evalue(mf->ep[1]);
150 <        if (errno)
150 >        if (errno == EDOM || errno == ERANGE)
151                  goto computerr;
152          dp = getpict(m->oargs.sarg[3]);
153          for (i = 0; i < 3; i++)
154                  col[i] = datavalue(dp+i, pt);
155          errno = 0;
156 <        setcolor(cval,  funvalue(m->oargs.sarg[0], 3, col),
157 <                        funvalue(m->oargs.sarg[1], 3, col),
158 <                        funvalue(m->oargs.sarg[2], 3, col));
159 <        if (errno)
156 >        for (i = 0; i < 3; i++)
157 >                if (fundefined(m->oargs.sarg[i]) < 3)
158 >                        colval(cval,i) = funvalue(m->oargs.sarg[i], 1, col+i);
159 >                else
160 >                        colval(cval,i) = funvalue(m->oargs.sarg[i], 3, col);
161 >        if (errno == EDOM || errno == ERANGE)
162                  goto computerr;
163          multcolor(r->pcol, cval);
164 <        return;
164 >        return(0);
165  
166   computerr:
167          objerror(m, WARNING, "compute error");
168 <        return;
168 >        return(0);
169   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines