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

Comparing ray/src/cv/bsdf2klems.c (file contents):
Revision 2.20 by greg, Wed Feb 3 01:57:06 2016 UTC vs.
Revision 2.24 by greg, Fri Feb 17 22:31:49 2017 UTC

# Line 41 | Line 41 | static int             do_prog = 79;
41   static char             *wrapBSDF[MAXCARG] = {"wrapBSDF", "-W", "-UU"};
42   static int              wbsdfac = 3;
43  
44 < /* Add argument to wrapBSDF, allocating space if isstatic */
44 > /* Add argument to wrapBSDF, allocating space if !isstatic */
45   static void
46   add_wbsdf(const char *arg, int isstatic)
47   {
# Line 202 | Line 202 | eval_bsdf(const char *fname)
202                                  goto err;
203                          sum += sdv.cieY;
204                          if (rbf_colorimetry == RBCtristimulus) {
205 <                                c_ccvt(&sdv.spec, C_CSXY);
206 <                                xsum += sdv.cieY*sdv.spec.cx;
207 <                                ysum += sdv.cieY*sdv.spec.cy;
205 >                                xsum += sdv.cieY * sdv.spec.cx;
206 >                                ysum += sdv.cieY * sdv.spec.cy;
207                          }
208                      }
209                      fprintf(cfp[CIE_Y], "\t%.3e\n", sum/npsamps);
210                      if (rbf_colorimetry == RBCtristimulus) {
211 <                        fprintf(cfp[CIE_X], "\t%3e\n", xsum*sum/(npsamps*ysum));
212 <                        fprintf(cfp[CIE_Z], "\t%3e\n",
211 >                        fprintf(cfp[CIE_X], "\t%.3e\n", xsum*sum/(npsamps*ysum));
212 >                        fprintf(cfp[CIE_Z], "\t%.3e\n",
213                                  (sum - xsum - ysum)*sum/(npsamps*ysum));
214                      }
215                  }
# Line 252 | Line 251 | eval_bsdf(const char *fname)
251                                  goto err;
252                          sum += sdv.cieY;
253                          if (rbf_colorimetry == RBCtristimulus) {
254 <                                c_ccvt(&sdv.spec, C_CSXY);
255 <                                xsum += sdv.cieY*sdv.spec.cx;
257 <                                ysum += sdv.cieY*sdv.spec.cy;
254 >                                xsum += sdv.cieY * sdv.spec.cx;
255 >                                ysum += sdv.cieY * sdv.spec.cy;
256                          }
257                      }
258                      fprintf(cfp[CIE_Y], "\t%.3e\n", sum/npsamps);
259                      if (rbf_colorimetry == RBCtristimulus) {
260 <                        fprintf(cfp[CIE_X], "\t%3e\n", xsum*sum/(npsamps*ysum));
261 <                        fprintf(cfp[CIE_Z], "\t%3e\n",
260 >                        fprintf(cfp[CIE_X], "\t%.3e\n", xsum*sum/(npsamps*ysum));
261 >                        fprintf(cfp[CIE_Z], "\t%.3e\n",
262                                  (sum - xsum - ysum)*sum/(npsamps*ysum));
263                      }
264                  }
# Line 301 | Line 299 | eval_bsdf(const char *fname)
299                                  goto err;
300                          sum += sdv.cieY;
301                          if (rbf_colorimetry == RBCtristimulus) {
302 <                                c_ccvt(&sdv.spec, C_CSXY);
303 <                                xsum += sdv.cieY*sdv.spec.cx;
306 <                                ysum += sdv.cieY*sdv.spec.cy;
302 >                                xsum += sdv.cieY * sdv.spec.cx;
303 >                                ysum += sdv.cieY * sdv.spec.cy;
304                          }
305                      }
306                      fprintf(cfp[CIE_Y], "\t%.3e\n", sum/npsamps);
307                      if (rbf_colorimetry == RBCtristimulus) {
308 <                        fprintf(cfp[CIE_X], "\t%3e\n", xsum*sum/(npsamps*ysum));
309 <                        fprintf(cfp[CIE_Z], "\t%3e\n",
308 >                        fprintf(cfp[CIE_X], "\t%.3e\n", xsum*sum/(npsamps*ysum));
309 >                        fprintf(cfp[CIE_Z], "\t%.3e\n",
310                                  (sum - xsum - ysum)*sum/(npsamps*ysum));
311                      }
312                  }
# Line 332 | Line 329 | eval_bsdf(const char *fname)
329          if ((bsd.tb != NULL) | (bsd.tf != NULL)) {
330              input_orient = -1; output_orient = 1;
331              cfp[CIE_Y] = open_component_file(CIE_Y);
332 <            if (bsd.tb != NULL && bsd.tb->comp[0].cspec[2].flags) {
333 <                rbf_colorimetry = RBCtristimulus;
332 >            if (bsd.tb != NULL)
333 >                rbf_colorimetry = bsd.tb->comp[0].cspec[2].flags
334 >                                        ? RBCtristimulus : RBCphotopic ;
335 >            if (rbf_colorimetry == RBCtristimulus) {
336                  cfp[CIE_X] = open_component_file(CIE_X);
337                  cfp[CIE_Z] = open_component_file(CIE_Z);
338 <            } else
340 <                rbf_colorimetry = RBCphotopic;
338 >            }
339              for (j = 0; j < abp->nangles; j++) {
340                  for (i = 0; i < abp->nangles; i++) {
341                      sum = 0;            /* average over patches */
# Line 350 | Line 348 | eval_bsdf(const char *fname)
348                                  goto err;
349                          sum += sdv.cieY;
350                          if (rbf_colorimetry == RBCtristimulus) {
351 <                                c_ccvt(&sdv.spec, C_CSXY);
352 <                                xsum += sdv.cieY*sdv.spec.cx;
355 <                                ysum += sdv.cieY*sdv.spec.cy;
351 >                                xsum += sdv.cieY * sdv.spec.cx;
352 >                                ysum += sdv.cieY * sdv.spec.cy;
353                          }
354                      }
355                      fprintf(cfp[CIE_Y], "\t%.3e\n", sum/npsamps);
356                      if (rbf_colorimetry == RBCtristimulus) {
357 <                        fprintf(cfp[CIE_X], "\t%3e\n", xsum*sum/(npsamps*ysum));
358 <                        fprintf(cfp[CIE_Z], "\t%3e\n",
357 >                        fprintf(cfp[CIE_X], "\t%.3e\n", xsum*sum/(npsamps*ysum));
358 >                        fprintf(cfp[CIE_Z], "\t%.3e\n",
359                                  (sum - xsum - ysum)*sum/(npsamps*ysum));
360                      }
361                  }
# Line 469 | Line 466 | eval_rbf(void)
466  
467                      eval_rbfcol(&sdv, rbf, vout);
468                      sum += sdv.cieY;
469 <                    if (XZarr != NULL) {
470 <                        c_ccvt(&sdv.spec, C_CSXY);
471 <                        xsum += sdv.cieY*sdv.spec.cx;
475 <                        ysum += sdv.cieY*sdv.spec.cy;
469 >                    if (rbf_colorimetry == RBCtristimulus) {
470 >                        xsum += sdv.cieY * sdv.spec.cx;
471 >                        ysum += sdv.cieY * sdv.spec.cy;
472                      }
473                  }
474                  n = j*abp->nangles + i;
475 <                bsdfarr[n] = sum / (double)npsamps;
476 <                if (XZarr != NULL) {
475 >                bsdfarr[n] = sum / npsamps;
476 >                if (rbf_colorimetry == RBCtristimulus) {
477                      XZarr[n][0] = xsum*sum/(npsamps*ysum);
478                      XZarr[n][1] = (sum - xsum - ysum)*sum/(npsamps*ysum);
479                  }
# Line 519 | Line 515 | eval_rbf(void)
515          }
516   }
517  
518 < #ifdef _WIN32
518 > #if defined(_WIN32) || defined(_WIN64)
519   /* Execute wrapBSDF command (may never return) */
520   static int
521   wrap_up(void)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines