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

Comparing ray/src/util/rsensor.c (file contents):
Revision 2.9 by greg, Tue May 17 19:34:36 2011 UTC vs.
Revision 2.10 by greg, Thu May 19 16:09:38 2011 UTC

# Line 207 | Line 207 | load_sensor(
207          char    *sfile
208   )
209   {
210 +        int     warnedneg;
211          char    linebuf[8192];
212          int     nelem = 1000;
213          float   *sarr = (float *)malloc(sizeof(float)*nelem);
# Line 243 | Line 244 | load_sensor(
244                  }
245                  ++ntp[1];
246          }
247 +        warnedneg = 0;
248          ntp[0] = 0;                             /* get thetas + data */
249          while (fgets(linebuf, sizeof(linebuf), fp) != NULL) {
250                  ++ntp[0];
# Line 260 | Line 262 | load_sensor(
262                          cp = fskip(cp);
263                          if (cp == NULL)
264                                  break;
265 +                        if (i && sarr[i] < .0) {
266 +                                if (!warnedneg++) {
267 +                                        sprintf(errmsg,
268 +                "Negative value(s) in sensor file '%s' (ignored)\n", sfile);
269 +                                        error(WARNING, errmsg);
270 +                                }
271 +                                sarr[i] = .0;
272 +                        }
273                          ++i;
274                  }
275                  if (i == ntp[0]*(ntp[1]+1))
# Line 388 | Line 398 | init_ptable(
398                  tvals[i] = 1. - ( (1.-frac)*cos(thdiv[t]) +
399                                                  frac*cos(thdiv[t+1]) );
400                                  /* offset b/c sensor values are centered */
401 <                if (t <= 0 || frac > 0.5)
401 >                if (!t || (t < sntp[0]-1) & (frac >= 0.5))
402                          frac -= 0.5;
403 <                else if (t >= sntp[0]-1 || frac < 0.5) {
403 >                else {
404                          frac += 0.5;
405                          --t;
406                  }
# Line 403 | Line 413 | init_ptable(
413                                  if ((prob -= (1.-frac)*rowp[p]/rowsum[t] +
414                                              frac*rowp1[p]/rowsum[t+1]) <= .0)
415                                          break;
416 <                        if (p >= sntp[1]) {
416 >                        if (p >= sntp[1]) {     /* should never happen? */
417                                  p = sntp[1] - 1;
418                                  prob = .5;
419                          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines