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

Comparing ray/src/util/dctimestep.c (file contents):
Revision 2.4 by greg, Fri Jun 19 14:24:06 2009 UTC vs.
Revision 2.6 by greg, Sat Jun 20 04:37:43 2009 UTC

# Line 160 | Line 160 | cm_load(const char *fname, int nrows, int ncols, int d
160                  int     maxrow = (nrows > 0 ? nrows : 32000);
161                  int     r, c;
162                  for (r = 0; r < maxrow; r++) {
163 <                    if (r >= cm->nrows)         /* need more space? */
163 >                    if (r >= cm->nrows)                 /* need more space? */
164                          cm = cm_resize(cm, 2*cm->nrows);
165                      for (c = 0; c < ncols; c++) {
166                          COLORV  *cv = cm_lval(cm,r,c);
167                          if (fscanf(fp, COLSPEC, cv, cv+1, cv+2) != 3)
168 <                                if ((nrows <= 0) & (r > 0) & (c == 0)) {
168 >                                if ((nrows <= 0) & (r > 0) & !c) {
169                                          cm = cm_resize(cm, maxrow=r);
170                                          break;
171                                  } else
# Line 193 | Line 193 | cm_load(const char *fname, int nrows, int ncols, int d
193                                          if (nread == cm->nrows*cm->ncols)
194                                                          /* need more space? */
195                                                  cm = cm_resize(cm, 2*cm->nrows);
196 <                                        else if (nread % cm->ncols == 0)
196 >                                        else if (nread && !(nread % cm->ncols))
197                                                          /* seem to be  done */
198                                                  cm = cm_resize(cm, nread/cm->ncols);
199                                          else            /* ended mid-row */
# Line 429 | Line 429 | main(int argc, char *argv[])
429                                  progname);
430                  return(1);
431          }
432 +                                                /* load Tregenza vector */
433          tvec = cm_load(argv[4], 0, 1, DTascii); /* argv[4]==NULL iff argc==4 */
434 <        Dmat = cm_load(argv[3], 0, tvec->nrows, DTfromHeader);
434 >                                                /* load BTDF */
435          btdf = load_BSDF(argv[2]);
436          if (btdf == NULL)
437                  return(1);
438 <        if (btdf->ninc != Dmat->nrows) {
439 <                sprintf(errmsg, "Incoming BTDF dir (%d) mismatch to D (%d)",
439 <                                btdf->ninc, Dmat->nrows);
440 <                error(USER, errmsg);
441 <        }
438 >                                                /* load Daylight matrix */
439 >        Dmat = cm_load(argv[3], btdf->ninc, tvec->nrows, DTfromHeader);
440                                                  /* multiply vector through */
441          ivec = cm_multiply(Dmat, tvec);
442          cm_free(Dmat); cm_free(tvec);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines