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

Comparing ray/src/common/bsdf_t.c (file contents):
Revision 3.24 by greg, Sun Sep 2 15:33:15 2012 UTC vs.
Revision 3.25 by greg, Mon Sep 10 18:06:08 2012 UTC

# Line 499 | Line 499 | build_scaffold(float val, const double *cmin, double c
499   {
500          SDdistScaffold  *sp = (SDdistScaffold *)cptr;
501          int             wid = csiz*(double)iwmax + .5;
502 +        double          revcmin[2];
503          bitmask_t       bmin[2], bmax[2];
504  
505 <        cmin += sp->nic * !sp->rev;     /* skip to output coords */
505 >        if (sp->rev) {                  /* need to reverse sense? */
506 >                revcmin[0] = 1. - cmin[0] - csiz;
507 >                revcmin[1] = 1. - cmin[1] - csiz;
508 >                cmin = revcmin;
509 >        } else {
510 >                cmin += sp->nic;        /* else skip to output coords */
511 >        }
512          if (wid < sp->wmin)             /* new minimum width? */
513                  sp->wmin = wid;
514          if (wid > sp->wmax)             /* new maximum? */
# Line 667 | Line 674 | SDgetTreCDist(const FVECT inVec, SDComponent *sdc)
674                          return &SDemptyCD;
675                  inCoord[0] = .5 - .5*sqrt(inVec[0]*inVec[0] + inVec[1]*inVec[1]);
676          } else if (sdt->st->ndim == 4) {
677 <                SDdisk2square(inCoord, -inVec[0], -inVec[1]);
677 >                if (mode != sdt->sidef) /* use reciprocity? */
678 >                        SDdisk2square(inCoord, inVec[0], inVec[1]);
679 >                else
680 >                        SDdisk2square(inCoord, -inVec[0], -inVec[1]);
681          } else
682                  return NULL;            /* should be internal error */
683                                          /* quantize to avoid f.p. errors */
# Line 947 | Line 957 | load_bsdf_data(SDData *sd, ezxml_t wdb, int ndim)
957           * Remember that front and back are reversed from WINDOW 6 orientations
958           */
959          if (!strcasecmp(sdata, "Transmission Front")) {
950                if (sd->tf != NULL)
951                        SDfreeSpectralDF(sd->tf);
952                if ((sd->tf = SDnewSpectralDF(1)) == NULL)
953                        return SDEmemory;
954                df = sd->tf;
955        } else if (!strcasecmp(sdata, "Transmission Back")) {
960                  if (sd->tb != NULL)
961                          SDfreeSpectralDF(sd->tb);
962                  if ((sd->tb = SDnewSpectralDF(1)) == NULL)
963                          return SDEmemory;
964                  df = sd->tb;
965 +        } else if (!strcasecmp(sdata, "Transmission Back")) {
966 +                if (sd->tf != NULL)
967 +                        SDfreeSpectralDF(sd->tf);
968 +                if ((sd->tf = SDnewSpectralDF(1)) == NULL)
969 +                        return SDEmemory;
970 +                df = sd->tf;
971          } else if (!strcasecmp(sdata, "Reflection Front")) {
972 <                if (sd->rb != NULL)     /* note back-front reversal */
972 >                if (sd->rb != NULL)
973                          SDfreeSpectralDF(sd->rb);
974                  if ((sd->rb = SDnewSpectralDF(1)) == NULL)
975                          return SDEmemory;
976                  df = sd->rb;
977          } else if (!strcasecmp(sdata, "Reflection Back")) {
978 <                if (sd->rf != NULL)     /* note front-back reversal */
978 >                if (sd->rf != NULL)
979                          SDfreeSpectralDF(sd->rf);
980                  if ((sd->rf = SDnewSpectralDF(1)) == NULL)
981                          return SDEmemory;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines