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

Comparing ray/src/util/rfluxmtx.c (file contents):
Revision 2.37 by greg, Fri Apr 15 00:06:36 2016 UTC vs.
Revision 2.41 by greg, Sat Aug 20 03:43:24 2016 UTC

# Line 64 | Line 64 | typedef struct {
64          FVECT   uva[2];                 /* tangent axes */
65          int     ntris;                  /* number of triangles */
66          struct ptri {
67 <                float   afrac;                  /* fraction of total area */
67 >                double  afrac;                  /* fraction of total area */
68                  short   vndx[3];                /* vertex indices */
69          }       tri[1];                 /* triangle array (extends struct) */
70   } POLYTRIS;                     /* triangulated polygon */
# Line 602 | Line 602 | ssamp_poly(FVECT orig, SURF *sp, double x)
602                  sp->priv = (void *)ptp;
603          }
604                                          /* pick triangle by partial area */
605 <        for (i = 0; i < ptp->ntris && x > ptp->tri[i].afrac; i++)
605 >        for (i = 0; i < ptp->ntris-1 && x > ptp->tri[i].afrac; i++)
606                  x -= ptp->tri[i].afrac;
607          SDmultiSamp(samp2, 2, x/ptp->tri[i].afrac);
608          samp2[0] *= samp2[1] = sqrt(samp2[1]);
# Line 690 | Line 690 | sample_uniform(PARAMS *p, int b, FILE *fp)
690                                                  duvw[2]*p->nrm[i] ;
691                  if (!sample_origin(p, orig_dir[0], orig_dir[1], samp3[0]))
692                          return(0);
693 <                if (fwrite(orig_dir, sizeof(FVECT), 2, fp) != 2)
693 >                if (putbinary(orig_dir, sizeof(FVECT), 2, fp) != 2)
694                          return(0);
695          }
696          return(1);
# Line 720 | Line 720 | sample_shirchiu(PARAMS *p, int b, FILE *fp)
720                                                  duvw[2]*p->nrm[i] ;
721                  if (!sample_origin(p, orig_dir[0], orig_dir[1], samp3[0]))
722                          return(0);
723 <                if (fwrite(orig_dir, sizeof(FVECT), 2, fp) != 2)
723 >                if (putbinary(orig_dir, sizeof(FVECT), 2, fp) != 2)
724                          return(0);
725          }
726          return(1);
# Line 768 | Line 768 | sample_reinhart(PARAMS *p, int b, FILE *fp)
768                                                  duvw[2]*p->nrm[i] ;
769                  if (!sample_origin(p, orig_dir[0], orig_dir[1], samp3[0]))
770                          return(0);
771 <                if (fwrite(orig_dir, sizeof(FVECT), 2, fp) != 2)
771 >                if (putbinary(orig_dir, sizeof(FVECT), 2, fp) != 2)
772                          return(0);
773          }
774          return(1);
# Line 819 | Line 819 | sample_klems(PARAMS *p, int b, FILE *fp)
819                                                  duvw[2]*p->nrm[i] ;
820                  if (!sample_origin(p, orig_dir[0], orig_dir[1], samp2[0]))
821                          return(0);
822 <                if (fwrite(orig_dir, sizeof(FVECT), 2, fp) != 2)
822 >                if (putbinary(orig_dir, sizeof(FVECT), 2, fp) != 2)
823                          return(0);
824          }
825          return(1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines