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

Comparing ray/src/hd/rholo.c (file contents):
Revision 3.25 by gregl, Sat Dec 13 10:30:56 1997 UTC vs.
Revision 3.28 by gregl, Mon Dec 15 20:43:01 1997 UTC

# Line 88 | Line 88 | char   *argv[];
88                  default:
89                          goto userr;
90                  }
91                                                /* do we have a job? */
92        if (outdev == NULL && ncprocs <= 0)
93                goto userr;
91                                                  /* get root file name */
92          rootname(froot, hdkfile=argv[i++]);
93 <                                                /* load... */
94 <        if (i < argc) {                         /* variables */
95 <                loadvars(argv[i++]);
96 <                                                        /* cmdline settings */
97 <                for ( ; i < argc; i++)
98 <                        if (setvariable(argv[i], matchvar) < 0) {
99 <                                sprintf(errmsg, "unknown variable: %s",
100 <                                                argv[i]);
101 <                                error(USER, errmsg);
102 <                        }
103 <                                                        /* check settings */
104 <                checkvalues();
105 <                                                        /* load RIF if any */
106 <                getradfile();
93 >                                                /* load variables? */
94 >        if (i < argc)
95 >                if (argv[i][0] != '-' && argv[i][0] != '+')
96 >                        loadvars(argv[i]);      /* load variables from file */
97 >
98 >        if (i >= argc || argv[i][0] == '+')
99 >                loadholo();                     /* load existing holodeck */
100 >
101 >        while (++i < argc)                      /* get command line settings */
102 >                if (setvariable(argv[i], matchvar) < 0) {
103 >                        sprintf(errmsg, "unknown variable: %s", argv[i]);
104 >                        error(USER, errmsg);
105 >                }
106 >                                                /* check settings */
107 >        checkvalues();
108 >                                                /* load RIF if any */
109 >        getradfile();
110 >
111 >        if (hdlist[0] == NULL) {                /* create new holodeck */
112                                                          /* set defaults */
113                  setdefaults(&hdg);
114                                                          /* holodeck exists? */
# Line 115 | Line 117 | char   *argv[];
117                                  "holodeck file exists -- use -f to overwrite");
118                                                          /* create holodeck */
119                  creatholo(&hdg);
120 <        } else {                                /* else load holodeck */
119 <                loadholo();
120 <                                                        /* check settings */
121 <                checkvalues();
122 <                                                        /* load RIF if any */
123 <                getradfile();
124 <                                                        /* set defaults */
120 >        } else                                  /* else just set defaults */
121                  setdefaults(NULL);
126        }
122                                                  /* initialize */
123          initrholo();
124                                                  /* main loop */
# Line 133 | Line 128 | char   *argv[];
128          quit(0);
129   userr:
130          fprintf(stderr,
131 < "Usage: %s {-n nprocs|-o disp} [-w][-f] output.hdk [control.hif [VAR=val ..]]\n",
131 > "Usage: %s [-n nprocs][-o disp][-w][-f] output.hdk [control.hif|+|- [VAR=val ..]]\n",
132                          progname);
133          quit(1);
134   }
# Line 147 | Line 142 | int  signo;
142          if (gotsig++)                   /* two signals and we're gone! */
143                  _exit(signo);
144  
145 <        alarm(30);                      /* allow 30 seconds to clean up */
145 >        alarm(60);                      /* allow 60 seconds to clean up */
146          signal(SIGALRM, SIG_DFL);       /* make certain we do die */
147          eputs("signal - ");
148          eputs(sigerr[signo]);
# Line 277 | Line 272 | rholo()                                /* holodeck main loop */
272                  if (!disp_check(idle))
273                          return(0);
274                                          /* display only? */
275 <        if (nprocs <= 0)
275 >        if (nprocs <= 0) {
276 >                idle = 1;
277                  return(outdev != NULL);
278 +        }
279                                          /* check file size */
280          if (maxdisk > 0 && hdfilen(hdlist[0]->fd) >= maxdisk) {
281                  error(WARNING, "file limit exceeded");
282                  done_rtrace();
286                idle = 1;
283                  return(1);      /* comes back */
284          }
285                                          /* check time */
# Line 292 | Line 288 | rholo()                                /* holodeck main loop */
288          if (endtime > 0 && t >= endtime) {
289                  error(WARNING, "time limit exceeded");
290                  done_rtrace();
295                idle = 1;
291                  return(1);      /* comes back */
292          }
293          if (reporttime > 0 && t >= reporttime)
294                  report(t);
295 <                                        /* get packets to process */
295 >        idle = 0;                       /* get packets to process */
296          while (freepacks != NULL) {
297                  p = freepacks; freepacks = p->next; p->next = NULL;
298                  if (!next_packet(p)) {
# Line 340 | Line 335 | register HDGRID        *gp;
335          if (!vdef(VDIST)) {
336                  vval(VDIST) = "F";
337                  vdef(VDIST)++;
343        }
344        if (!vdef(OCCUPANCY)) {
345                vval(OCCUPANCY) = "U";
346                vdef(OCCUPANCY)++;
338          }
339                                  /* append rendering options */
340          if (vdef(RENDER))

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines