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

Comparing ray/src/util/rmatrix.c (file contents):
Revision 2.53 by greg, Sat Mar 5 01:45:21 2022 UTC vs.
Revision 2.54 by greg, Sat Mar 5 15:33:09 2022 UTC

# Line 436 | Line 436 | rmx_write_rgbe(const RMATRIX *rm, FILE *fp)
436          for (i = 0; i < rm->nrows; i++) {
437              for (j = rm->ncols; j--; ) {
438                  const double    *dp = rmx_lval(rm,i,j);
439 <                setcolr(scan[j], dp[0], dp[1], dp[2]);
439 >                if (rm->ncomp == 1)
440 >                        setcolr(scan[j], dp[0], dp[0], dp[0]);
441 >                else
442 >                        setcolr(scan[j], dp[0], dp[1], dp[2]);
443              }
444              if (fwritecolrs(scan, rm->ncols, fp) < 0) {
445                  free(scan);
# Line 489 | Line 492 | rmx_write(const RMATRIX *rm, int dtype, FILE *fp)
492                  fprintf(fp, "NROWS=%d\n", rm->nrows);
493                  fprintf(fp, "NCOLS=%d\n", rm->ncols);
494                  fprintf(fp, "NCOMP=%d\n", rm->ncomp);
495 <        } else if (rm->ncomp != 3) {            /* wrong # components? */
496 <                CMATRIX *cm;                    /* convert & write */
494 <                if (rm->ncomp != 1)             /* only convert grayscale */
495 <                        return(0);
496 <                if (!(cm = cm_from_rmatrix(rm)))
497 <                        return(0);
498 <                fputformat(cm_fmt_id[dtype], fp);
499 <                fputc('\n', fp);
500 <                ok = cm_write(cm, dtype, fp);
501 <                cm_free(cm);
502 <                return(ok);
503 <        }
495 >        } else if ((rm->ncomp != 3) & (rm->ncomp != 1))
496 >                return(0);                      /* wrong # components */
497          if ((dtype == DTfloat) | (dtype == DTdouble))
498                  fputendian(fp);                 /* important to record */
499          fputformat(cm_fmt_id[dtype], fp);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines