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.45 by greg, Fri Jan 21 00:52:59 2005 UTC vs.
Revision 2.54 by schorsch, Wed Jun 7 17:52:04 2006 UTC

# Line 14 | Line 14 | static const char      RCSid[] = "$Id$";
14  
15   #include  "platform.h"
16   #include  "ray.h"
17 + #include  "source.h"
18   #include  "ambient.h"
19   #include  "otypes.h"
20   #include  "rpaint.h"
# Line 288 | Line 289 | getfocus(                              /* set focus distance */
289          char *s
290   )
291   {
292 <        FVECT  vc;
292 >        char  buf[64];
293          double  dist;
294  
295          if (sscanf(s, "%lf", &dist) < 1) {
# Line 304 | Line 305 | getfocus(                              /* set focus distance */
305                          error(COMMAND, "not on image");
306                          return;
307                  }
308 <                rayorigin(&thisray, NULL, PRIMARY, 1.0);
308 >                rayorigin(&thisray, PRIMARY, NULL, NULL);
309                  if (!localhit(&thisray, &thescene)) {
310                          error(COMMAND, "not a local object");
311                          return;
# Line 315 | Line 316 | getfocus(                              /* set focus distance */
316                  return;
317          }
318          ourview.vdist = dist;
319 +        sprintf(buf, "Focus distance set to %f\n", dist);
320 +        (*dev->comout)(buf);
321   }
322  
323  
# Line 521 | Line 524 | setparam(                              /* get/set program parameter */
524          
525          if (s[0] == '\0') {
526                  (*dev->comout)(
527 <                "aa ab ad ar as av aw b dc dv dj ds dt i lr lw me ma mg ms ps pt sj st bv: ");
527 >                "aa ab ad ar as av aw b bv dc dv dj ds dt i lr lw me ma mg ms ps pt sj st u: ");
528                  (*dev->comin)(buf, NULL);
529                  s = buf;
530          }
531          switch (s[0]) {
532 +        case 'u':                       /* uncorrelated sampling */
533 +                getparam(s+1, "uncorrelated sampling", 'b',
534 +                                (void *)&rand_samp);
535 +                break;
536          case 'l':                       /* limit */
537                  switch (s[1]) {
538                  case 'w':                       /* weight */
# Line 718 | Line 725 | char  *s;
725                  return;
726          }
727  
728 <        rayorigin(&thisray, NULL, PRIMARY, 1.0);
728 >        rayorigin(&thisray, PRIMARY, NULL, NULL);
729          
730          rayvalue(&thisray);
731  
732          if (thisray.ro == NULL)
733                  (*dev->comout)("ray hit nothing");
734          else {
735 <                sprintf(buf, "ray hit %s%s %s \"%s\"",
736 <                                thisray.rod < 0.0 ? "back of " : "",
737 <                                thisray.ro->omod == OVOID ? VOIDID :
738 <                                        objptr(thisray.ro->omod)->oname,
735 >                OBJREC  *mat = NULL;
736 >                OBJREC  *mod = NULL;
737 >                char    matspec[256];
738 >                matspec[0] = '\0';
739 >                if (thisray.ro->omod != OVOID) {
740 >                        mod = objptr(thisray.ro->omod);
741 >                        mat = findmaterial(mod);
742 >                }
743 >                if (thisray.rod < 0.0)
744 >                        strcpy(matspec, "back of ");
745 >                if (mod != NULL) {
746 >                        strcat(matspec, mod->oname);
747 >                        if (mat != mod && mat != NULL)
748 >                                sprintf(matspec+strlen(matspec),
749 >                                        " (%s)", mat->oname);
750 >                } else
751 >                        strcat(matspec, VOIDID);
752 >                sprintf(buf, "ray hit %s %s \"%s\"", matspec,
753                                  ofun[thisray.ro->otype].funame,
754                                  thisray.ro->oname);
755                  if ((ino = objptr(thisray.robj)) != thisray.ro)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines