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

Comparing ray/src/util/cmatrix.c (file contents):
Revision 2.16 by schorsch, Sun Mar 6 01:13:18 2016 UTC vs.
Revision 2.20 by greg, Thu Aug 2 18:33:49 2018 UTC

# Line 21 | Line 21 | const char     *cm_fmt_id[] = {
21                  };
22  
23   const int       cm_elem_size[] = {
24 <                        0, 0, 3*sizeof(float), 3*sizeof(double), 4, 4
24 >                        0, 0, 4, 4, 3*sizeof(float), 3*sizeof(double)
25                  };
26  
27   /* Allocate a color coefficient matrix */
# Line 87 | Line 87 | static int
87   get_cminfo(char *s, void *p)
88   {
89          CMINFO  *ip = (CMINFO *)p;
90 <        char    fmt[32];
90 >        char    fmt[MAXFMTLEN];
91          int     i;
92  
93          if (!strncmp(s, "NCOMP=", 6) && atoi(s+6) != 3) {
# Line 244 | Line 244 | cm_load(const char *inspec, int nrows, int ncols, int
244                  if (sizeof(COLOR) == cm_elem_size[dtype]) {
245                          int     nread = 0;
246                          do {                            /* read all we can */
247 <                                nread += fread(cm->cmem + 3*nread,
247 >                                nread += getbinary(cm->cmem + 3*nread,
248                                                  sizeof(COLOR),
249                                                  cm->nrows*cm->ncols - nread,
250                                                  fp);
# Line 269 | Line 269 | cm_load(const char *inspec, int nrows, int ncols, int
269                          if (n <= 0)
270                                  goto not_handled;
271                          while (n--) {
272 <                                if (fread(dc, sizeof(double), 3, fp) != 3)
272 >                                if (getbinary(dc, sizeof(double), 3, fp) != 3)
273                                          goto EOFerror;
274                                  copycolor(cvp, dc);
275                                  cvp += 3;
# Line 282 | Line 282 | cm_load(const char *inspec, int nrows, int ncols, int
282                          if (n <= 0)
283                                  goto not_handled;
284                          while (n--) {
285 <                                if (fread(fc, sizeof(float), 3, fp) != 3)
285 >                                if (getbinary(fc, sizeof(float), 3, fp) != 3)
286                                          goto EOFerror;
287                                  copycolor(cvp, fc);
288                                  cvp += 3;
# Line 403 | Line 403 | cm_multiply(const CMATRIX *cm1, const CMATRIX *cm2)
403                  for (i = 0; i < cm1->ncols; i++) {
404                      const COLORV        *cp1 = cm_lval(cm1,dr,i);
405                      const COLORV        *cp2 = cm_lval(cm2,i,dc);
406 <                    res[0] += cp1[0] * cp2[0];
407 <                    res[1] += cp1[1] * cp2[1];
408 <                    res[2] += cp1[2] * cp2[2];
406 >                    res[0] += (double)cp1[0] * cp2[0];
407 >                    res[1] += (double)cp1[1] * cp2[1];
408 >                    res[2] += (double)cp1[2] * cp2[2];
409                  }
410                  copycolor(dp, res);
411              }
# Line 435 | Line 435 | cm_write(const CMATRIX *cm, int dtype, FILE *fp)
435                  if (sizeof(COLOR) == cm_elem_size[dtype]) {
436                          r = cm->ncols*cm->nrows;
437                          while (r > 0) {
438 <                                c = fwrite(mp, sizeof(COLOR), r, fp);
438 >                                c = putbinary(mp, sizeof(COLOR), r, fp);
439                                  if (c <= 0)
440                                          return(0);
441                                  mp += 3*c;
# Line 446 | Line 446 | cm_write(const CMATRIX *cm, int dtype, FILE *fp)
446                          r = cm->ncols*cm->nrows;
447                          while (r--) {
448                                  copycolor(dc, mp);
449 <                                if (fwrite(dc, sizeof(double), 3, fp) != 3)
449 >                                if (putbinary(dc, sizeof(double), 3, fp) != 3)
450                                          return(0);
451                                  mp += 3;
452                          }
# Line 455 | Line 455 | cm_write(const CMATRIX *cm, int dtype, FILE *fp)
455                          r = cm->ncols*cm->nrows;
456                          while (r--) {
457                                  copycolor(fc, mp);
458 <                                if (fwrite(fc, sizeof(float), 3, fp) != 3)
458 >                                if (putbinary(fc, sizeof(float), 3, fp) != 3)
459                                          return(0);
460                                  mp += 3;
461                          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines