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

Comparing ray/src/rt/rv2.c (file contents):
Revision 2.66 by greg, Fri Mar 30 23:14:07 2018 UTC vs.
Revision 2.75 by greg, Fri Nov 17 20:02:07 2023 UTC

# Line 16 | Line 16 | static const char      RCSid[] = "$Id$";
16   #include  "rtprocess.h" /* win_popen() */
17   #include  "paths.h"
18   #include  "ray.h"
19 #include  "source.h"
19   #include  "ambient.h"
20   #include  "otypes.h"
21 + #include  "otspecial.h"
22   #include  "rpaint.h"
23  
24   extern int  psample;                    /* pixel sample size */
# Line 399 | Line 399 | getorigin(                             /* origin viewpoint */
399                  }
400                  if (thisray.rod < 0.0)  /* don't look through other side */
401                          flipsurface(&thisray);
402 <                VSUM(nv.vp, thisray.rop, thisray.ron, 2.0*FTINY);
402 >                VSUM(nv.vp, thisray.rop, thisray.ron, 20.0*FTINY);
403                  VCOPY(nv.vdir, thisray.ron);
404          } else if (!sscanvec(sskip2(s,3), nv.vdir) || normalize(nv.vdir) == 0.0)
405                  VCOPY(nv.vdir, ourview.vdir);
# Line 483 | Line 483 | getexposure(                           /* get new exposure */
483   }
484  
485   typedef union {int i; double d; COLOR C;}       *MyUptr;
486 #define  FEQ(x,y)     (fabs((x)-(y)) <= FTINY)
486  
487   int
488   getparam(               /* get variable from user */
# Line 521 | Line 520 | getparam(              /* get variable from user */
520                          if (sscanf(buf, "%lf", &d0) != 1)
521                                  return(0);
522                  }
523 <                if (FEQ(ptr->d, d0))
523 >                if (FABSEQ(ptr->d, d0))
524                          return(0);
525                  ptr->d = d0;
526                  break;
# Line 553 | Line 552 | getparam(              /* get variable from user */
552                          if (sscanf(buf, "%lf %lf %lf", &d0, &d1, &d2) != 3)
553                                  return(0);
554                  }
555 <                if (FEQ(colval(ptr->C,RED), d0) &&
556 <                                FEQ(colval(ptr->C,GRN), d1) &&
557 <                                FEQ(colval(ptr->C,BLU), d2))
555 >                if (FABSEQ(colval(ptr->C,RED), d0) &&
556 >                                FABSEQ(colval(ptr->C,GRN), d1) &&
557 >                                FABSEQ(colval(ptr->C,BLU), d2))
558                          return(0);
559                  setcolor(ptr->C, d0, d1, d2);
560                  break;
# Line 756 | Line 755 | traceray(                              /* trace a single ray */
755   {
756          RAY     thisray;
757          char    buf[512];
758 +        COLOR   col;
759  
760          thisray.rmax = 0.0;
761  
# Line 793 | Line 793 | traceray(                              /* trace a single ray */
793                  matspec[0] = '\0';
794                  if (thisray.ro->omod != OVOID) {
795                          mod = objptr(thisray.ro->omod);
796 <                        mat = findmaterial(mod);
796 >                        mat = findmaterial(thisray.ro);
797                  }
798                  if (thisray.rod < 0.0)
799                          strcpy(matspec, "back of ");
# Line 812 | Line 812 | traceray(                              /* trace a single ray */
812                                          ofun[ino->otype].funame, ino->oname);
813                  (*dev->comout)(buf);
814                  (*dev->comin)(buf, NULL);
815 <                if (thisray.rot >= FHUGE)
815 >                if (thisray.rot >= FHUGE*.99)
816                          (*dev->comout)("at infinity");
817                  else {
818                          sprintf(buf, "at (%.6g %.6g %.6g) (%.6g)",
819                                          thisray.rop[0], thisray.rop[1],
820 <                                        thisray.rop[2], thisray.rt);
820 >                                        thisray.rop[2], raydistance(&thisray));
821                          (*dev->comout)(buf);
822                  }
823                  (*dev->comin)(buf, NULL);
824 +                scolor_rgb(col, thisray.rcol);
825                  sprintf(buf, "value (%.5g %.5g %.5g) (%.3gL)",
826 <                                colval(thisray.rcol,RED),
827 <                                colval(thisray.rcol,GRN),
828 <                                colval(thisray.rcol,BLU),
829 <                                luminance(thisray.rcol));
826 >                                colval(col,RED),
827 >                                colval(col,GRN),
828 >                                colval(col,BLU),
829 >                                luminance(col));
830                  (*dev->comout)(buf);
831          }
832          (*dev->comin)(buf, NULL);
# Line 871 | Line 872 | writepict(                             /* write the picture to a file */
872                  fputexpos(exposure, fp);
873          if (dev->pixaspect != 1.0)
874                  fputaspect(dev->pixaspect, fp);
875 +        fputprims(stdprims, fp);
876          fputformat(COLRFMT, fp);
877          putc('\n', fp);
878          fprtresolu(hresolu, vresolu, fp);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines