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.26 by greg, Mon Apr 9 21:30:07 2018 UTC vs.
Revision 2.30 by greg, Fri Oct 19 00:21:31 2018 UTC

# Line 81 | Line 81 | static int
81   get_dminfo(char *s, void *p)
82   {
83          RMATRIX *ip = (RMATRIX *)p;
84 <        char    fmt[64];
84 >        char    fmt[MAXFMTLEN];
85          int     i;
86  
87          if (headidval(fmt, s))
# Line 290 | Line 290 | loaderr:                                       /* should report error? */
290   static int
291   rmx_write_ascii(const RMATRIX *rm, FILE *fp)
292   {
293 +        const char      *fmt = (rm->dtype == DTfloat) ? " %.7e" :
294 +                        (rm->dtype == DTrgbe) | (rm->dtype == DTxyze) ? " %.3e" :
295 +                                " %.15e" ;
296          int     i, j, k;
297  
298          for (i = 0; i < rm->nrows; i++) {
299              for (j = 0; j < rm->ncols; j++) {
300                  for (k = 0; k < rm->ncomp; k++)
301 <                    fprintf(fp, " %.15e", rmx_lval(rm,i,j,k));
301 >                    fprintf(fp, fmt, rmx_lval(rm,i,j,k));
302                  fputc('\t', fp);
303              }
304              fputc('\n', fp);
# Line 338 | Line 341 | rmx_write_double(const RMATRIX *rm, FILE *fp)
341   static int
342   rmx_write_rgbe(const RMATRIX *rm, FILE *fp)
343   {
344 <        COLOR   *scan = (COLOR *)malloc(sizeof(COLOR)*rm->ncols);
344 >        COLR    *scan = (COLR *)malloc(sizeof(COLR)*rm->ncols);
345          int     i, j;
346  
347          if (scan == NULL)
348                  return(0);
349          for (i = 0; i < rm->nrows; i++) {
350              for (j = rm->ncols; j--; )
351 <                setcolor(scan[j],       rmx_lval(rm,i,j,0),
351 >                setcolr(scan[j],        rmx_lval(rm,i,j,0),
352                                          rmx_lval(rm,i,j,1),
353                                          rmx_lval(rm,i,j,2)      );
354 <            if (fwritescan(scan, rm->ncols, fp) < 0) {
354 >            if (fwritecolrs(scan, rm->ncols, fp) < 0) {
355                  free(scan);
356                  return(0);
357              }
# Line 611 | Line 614 | rmx_scale(RMATRIX *rm, const double sf[])
614                  for (k = rm->ncomp; k--; )
615                      rmx_lval(rm,i,j,k) *= sf[k];
616  
617 +        if (rm->info)
618 +                rmx_addinfo(rm, "Applied scalar\n");
619          return(1);
620   }
621  
# Line 626 | Line 631 | rmx_transform(const RMATRIX *msrc, int n, const double
631          dnew = rmx_alloc(msrc->nrows, msrc->ncols, n);
632          if (dnew == NULL)
633                  return(NULL);
634 +        if (msrc->info) {
635 +                char    buf[128];
636 +                sprintf(buf, "Applied %dx%d matrix transform\n",
637 +                                dnew->ncomp, msrc->ncomp);
638 +                rmx_addinfo(dnew, msrc->info);
639 +                rmx_addinfo(dnew, buf);
640 +        }
641          dnew->dtype = msrc->dtype;
642          for (i = dnew->nrows; i--; )
643              for (j = dnew->ncols; j--; )

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines