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

Comparing ray/src/gen/mkillum.c (file contents):
Revision 2.31 by greg, Fri Sep 21 05:53:21 2007 UTC vs.
Revision 2.41 by greg, Tue Feb 2 18:02:32 2016 UTC

# Line 8 | Line 8 | static const char RCSid[] = "$Id$";
8   #include  <signal.h>
9   #include  <ctype.h>
10  
11 < #include  "platform.h"
11 > #include  "paths.h"             /* win_popen() */
12   #include  "mkillum.h"
13 #include  "random.h"
13  
14                                  /* default parameters */
15   #define  SAMPDENS       48              /* points per projected steradian */
# Line 25 | Line 24 | static const char RCSid[] = "$Id$";
24  
25   struct illum_args  thisillum = {        /* our illum and default values */
26                  0,
28                UDzpos,
29                0.,
27                  DFLMAT,
28                  DFLDAT,
29                  0,
30                  VOIDID,
31                  SAMPDENS,
32                  NSAMPS,
36                NULL,
33                  0.,
34          };
35  
# Line 70 | Line 66 | main(          /* compute illum distributions using rtrace */
66          gargv = argv;
67          progname = gargv[0];
68                                  /* set up rendering defaults */
69 <        dstrsrc = 0.25;
69 >        dstrsrc = 0.5;
70          directrelay = 3;
75        directvis = 0;
71          ambounce = 2;
72                                  /* get options from command line */
73          for (i = 1; i < argc; i++) {
# Line 178 | Line 173 | char  *s;
173  
174  
175   void
176 + quit(ec)                        /* make sure exit is called */
177 + int     ec;
178 + {
179 +        if (ray_pnprocs > 0)    /* close children if any */
180 +                ray_pclose(0);          
181 +        exit(ec);
182 + }
183 +
184 +
185 + void
186   filter(         /* process stream */
187          register FILE   *infp,
188          char    *name
# Line 299 | Line 304 | xoptions(                      /* process options in string s */
304                          }
305                          cp = sskip(cp);
306                          continue;
307 <                case 'd':                       /* sample density / BSDF data */
307 >                case 'd':                       /* sample density */
308                          if (*++cp != '=')
309                                  break;
305                        if (thisillum.sd != NULL) {
306                                free_BSDF(thisillum.sd);
307                                thisillum.sd = NULL;
308                        }
310                          if (!*++cp || isspace(*cp))
311                                  continue;
312 <                        if (isintd(++cp, " \t\n\r")) {
312 >                        if (isintd(cp, " \t\n\r")) {
313                                  thisillum.sampdens = atoi(cp);
314                          } else {
315 <                                atos(buf, sizeof(buf), cp);
316 <                                thisillum.sd = load_BSDF(buf);
316 <                                if (thisillum.sd == NULL)
317 <                                        break;
315 >                                error(WARNING, "direct BSDF input unsupported");
316 >                                goto opterr;
317                          }
318                          cp = sskip(cp);
319                          continue;
# Line 360 | Line 359 | xoptions(                      /* process options in string s */
359                          }
360                          doneheader = 0;
361                          continue;
363                case 'u':                       /* up direction */
364                        if (*++cp != '=')
365                                break;
366                        if (!*++cp || isspace(*cp)) {
367                                thisillum.udir = UDunknown;
368                                continue;
369                        }
370                        negax = 0;
371                        if (*cp == '+')
372                                cp++;
373                        else if (*cp == '-') {
374                                negax++;
375                                cp++;
376                        }
377                        switch (*cp++) {
378                        case 'x':
379                        case 'X':
380                                thisillum.udir = negax ? UDxneg : UDxpos;
381                                break;
382                        case 'y':
383                        case 'Y':
384                                thisillum.udir = negax ? UDyneg : UDypos;
385                                break;
386                        case 'z':
387                        case 'Z':
388                                thisillum.udir = negax ? UDxneg : UDxpos;
389                                break;
390                        default:
391                                thisillum.udir = UDunknown;
392                                break;
393                        }
394                        if (thisillum.udir == UDunknown || !isspace(*cp))
395                                break;
396                        continue;
397                case 't':                       /* object thickness */
398                        if (*++cp != '=')
399                                break;
400                        if (!isfltd(++cp, " \t\n\r"))
401                                break;
402                        thisillum.thick = atof(cp);
403                        if (thisillum.thick < .0)
404                                thisillum.thick = .0;
405                        cp = sskip(cp);
406                        continue;
362                  case '!':                       /* processed file! */
363                          sprintf(errmsg, "(%s): already processed!", nm);
364                          error(WARNING, errmsg);
# Line 446 | Line 401 | printopts(void)                        /* print out option default values *
401                  printf("l+\t\t\t\t# light type on\n");
402          else
403                  printf("l-\t\t\t\t# light type off\n");
404 <        printf("d=%d\t\t\t\t# density of points\n", thisillum.sampdens);
405 <        printf("s=%d\t\t\t\t# samples per point\n", thisillum.nsamps);
404 >        printf("d=%d\t\t\t\t# density of directions\n", thisillum.sampdens);
405 >        printf("s=%d\t\t\t\t# samples per direction\n", thisillum.nsamps);
406          printf("b=%f\t\t\t# minimum average brightness\n", thisillum.minbrt);
452        switch (thisillum.udir) {
453        case UDzneg:
454                fputs("u=-Z\t\t\t\t# up is negative Z\n", stdout);
455                break;
456        case UDyneg:
457                fputs("u=-Y\t\t\t\t# up is negative Y\n", stdout);
458                break;
459        case UDxneg:
460                fputs("u=-X\t\t\t\t# up is negative X\n", stdout);
461                break;
462        case UDxpos:
463                fputs("u=+X\t\t\t\t# up is positive X\n", stdout);
464                break;
465        case UDypos:
466                fputs("u=+Y\t\t\t\t# up is positive Y\n", stdout);
467                break;
468        case UDzpos:
469                fputs("u=+Z\t\t\t\t# up is positive Z\n", stdout);
470                break;
471        case UDunknown:
472                break;
473        }
474        printf("t=%f\t\t\t# object thickness\n", thisillum.thick);
407   }
408  
409  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines