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.8 by greg, Wed Aug 27 13:33:47 2014 UTC vs.
Revision 2.12 by greg, Fri Jan 23 01:14:20 2015 UTC

# Line 246 | Line 246 | rmx_load(const char *fname)
246          case DTascii:
247                  if (!rmx_load_ascii(dnew, fp))
248                          goto loaderr;
249 +                dnew->dtype = DTascii;          /* should leave double? */
250                  break;
251          case DTfloat:
252                  if (!rmx_load_float(dnew, fp))
# Line 356 | Line 357 | rmx_write_rgbe(const RMATRIX *rm, FILE *fp)
357   }
358  
359   /* Write matrix to file type indicated by dtype */
360 < long
360 > int
361   rmx_write(const RMATRIX *rm, int dtype, FILE *fp)
362   {
363          RMATRIX *mydm = NULL;
# Line 371 | Line 372 | rmx_write(const RMATRIX *rm, int dtype, FILE *fp)
372                  dtype = rm->dtype;
373          else if ((dtype == DTrgbe) & (rm->dtype == DTxyze))
374                  dtype = DTxyze;
375 <        else if ((dtype = DTxyze) & (rm->dtype == DTrgbe))
375 >        else if ((dtype == DTxyze) & (rm->dtype == DTrgbe))
376                  dtype = DTrgbe;
377          if ((dtype != DTrgbe) & (dtype != DTxyze)) {
378                  fprintf(fp, "NROWS=%d\n", rm->nrows);
# Line 409 | Line 410 | rmx_write(const RMATRIX *rm, int dtype, FILE *fp)
410          }
411          ok &= (fflush(fp) == 0);
412          rmx_free(mydm);
413 <        return(ftell(fp) * ok);         /* return # bytes written */
413 >        return(ok);
414   }
415  
416   /* Allocate and assign square identity matrix with n components */
# Line 417 | Line 418 | RMATRIX *
418   rmx_identity(const int dim, const int n)
419   {
420          RMATRIX *rid = rmx_alloc(dim, dim, n);
421 <        int     i;
421 >        int     i, k;
422  
423          if (rid == NULL)
424                  return(NULL);
425 <        memset(rid->mtx, 0, sizeof(rid->mtx[0])*dim*dim);
425 >        memset(rid->mtx, 0, sizeof(rid->mtx[0])*n*dim*dim);
426          for (i = dim; i--; )
427 <                rmx_lval(rid,i,i,0) = 1;
428 <        for (i = n; --i; )
428 <                memcpy(rid->mtx+i*(dim*dim), rid->mtx,
429 <                                sizeof(rid->mtx[0])*dim*dim);
427 >            for (k = n; k--; )
428 >                rmx_lval(rid,i,i,k) = 1;
429          return(rid);
430   }
431  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines