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.46 by greg, Thu Apr 14 04:42:33 2005 UTC vs.
Revision 2.53 by greg, Mon Aug 22 07:02:21 2005 UTC

# Line 289 | Line 289 | getfocus(                              /* set focus distance */
289          char *s
290   )
291   {
292 +        char  buf[64];
293          FVECT  vc;
294          double  dist;
295  
# Line 305 | Line 306 | getfocus(                              /* set focus distance */
306                          error(COMMAND, "not on image");
307                          return;
308                  }
309 <                rayorigin(&thisray, NULL, PRIMARY, 1.0);
309 >                rayorigin(&thisray, PRIMARY, NULL, NULL);
310                  if (!localhit(&thisray, &thescene)) {
311                          error(COMMAND, "not a local object");
312                          return;
# Line 316 | Line 317 | getfocus(                              /* set focus distance */
317                  return;
318          }
319          ourview.vdist = dist;
320 +        sprintf(buf, "Focus distance set to %f\n", dist);
321 +        (*dev->comout)(buf);
322   }
323  
324  
# Line 522 | Line 525 | setparam(                              /* get/set program parameter */
525          
526          if (s[0] == '\0') {
527                  (*dev->comout)(
528 <                "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: ");
528 >                "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: ");
529                  (*dev->comin)(buf, NULL);
530                  s = buf;
531          }
532          switch (s[0]) {
533 +        case 'u':                       /* uncorrelated sampling */
534 +                getparam(s+1, "uncorrelated sampling", 'b',
535 +                                (void *)&rand_samp);
536 +                break;
537          case 'l':                       /* limit */
538                  switch (s[1]) {
539                  case 'w':                       /* weight */
# Line 719 | Line 726 | char  *s;
726                  return;
727          }
728  
729 <        rayorigin(&thisray, NULL, PRIMARY, 1.0);
729 >        rayorigin(&thisray, PRIMARY, NULL, NULL);
730          
731          rayvalue(&thisray);
732  
733          if (thisray.ro == NULL)
734                  (*dev->comout)("ray hit nothing");
735          else {
736 <                OBJREC  *mat = findmaterial(thisray.ro);
737 <                sprintf(buf, "ray hit %s%s %s \"%s\"",
738 <                                thisray.rod < 0.0 ? "back of " : "",
739 <                                mat==NULL ? VOIDID : mat->oname,
736 >                OBJREC  *mat = NULL;
737 >                OBJREC  *mod = NULL;
738 >                char    matspec[256];
739 >                matspec[0] = '\0';
740 >                if (thisray.ro->omod != OVOID) {
741 >                        mod = objptr(thisray.ro->omod);
742 >                        mat = findmaterial(mod);
743 >                }
744 >                if (thisray.rod < 0.0)
745 >                        strcpy(matspec, "back of ");
746 >                if (mod != NULL) {
747 >                        strcat(matspec, mod->oname);
748 >                        if (mat != mod && mat != NULL)
749 >                                sprintf(matspec+strlen(matspec),
750 >                                        " (%s)", mat->oname);
751 >                } else
752 >                        strcat(matspec, VOIDID);
753 >                sprintf(buf, "ray hit %s %s \"%s\"", matspec,
754                                  ofun[thisray.ro->otype].funame,
755                                  thisray.ro->oname);
756                  if ((ino = objptr(thisray.robj)) != thisray.ro)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines