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

Comparing ray/src/util/rad.c (file contents):
Revision 2.21 by greg, Tue Aug 24 22:14:21 1993 UTC vs.
Revision 2.25 by greg, Wed Sep 15 15:11:47 1993 UTC

# Line 117 | Line 117 | char   *viewselect = NULL;     /* specific view only */
117   int     overture = 0;           /* overture calculation needed */
118  
119   char    *progname;              /* global argv[0] */
120 + char    *rifname;               /* global rad input file name */
121  
122   char    radname[MAXPATH];       /* root Radiance file name */
123  
# Line 155 | Line 156 | char   *argv[];
156                  }
157          if (i >= argc)
158                  goto userr;
159 +        rifname = argv[i];
160                                  /* assign Radiance root file name */
161 <        rootname(radname, argv[i]);
161 >        rootname(radname, rifname);
162                                  /* load variable values */
163 <        load(argv[i]);
163 >        load(rifname);
164                                  /* get any additional assignments */
165          for (i++; i < argc; i++)
166                  setvariable(argv[i]);
# Line 206 | Line 208 | register char  *rn, *fn;
208   }
209  
210  
211 + #define NOCHAR  127             /* constant for character to delete */
212 +
213 +
214   load(rfname)                    /* load Radiance simulation file */
215   char    *rfname;
216   {
# Line 221 | Line 226 | char   *rfname;
226                  for (cp = buf; *cp; cp++) {
227                          switch (*cp) {
228                          case '\\':
229 <                        case '\n':
225 <                                *cp = ' ';
229 >                                *cp++ = NOCHAR;
230                                  continue;
231                          case '#':
232                                  *cp = '\0';
# Line 242 | Line 246 | setvariable(ass)               /* assign variable according to stri
246   register char   *ass;
247   {
248          char    varname[32];
249 +        char    varval[512];
250 +        int     n;
251          register char   *cp;
252          register VARIABLE       *vp;
253          register int    i;
248        int     n;
254  
255          while (isspace(*ass))           /* skip leading space */
256                  ass++;
# Line 259 | Line 264 | register char  *ass;
264                                          /* trim value */
265          while (isspace(*ass) || *ass == '=')
266                  ass++;
267 <        cp = ass + strlen(ass);
268 <        do
269 <                *cp-- = '\0';
265 <        while (cp >= ass && isspace(*cp));
266 <        n = cp - ass + 1;
267 >        for (n = strlen(ass); n > 0; n--)
268 >                if (!isspace(ass[n-1]))
269 >                        break;
270          if (!n) {
271                  fprintf(stderr, "%s: warning - missing value for variable '%s'\n",
272                                  progname, varname);
# Line 288 | Line 291 | register char  *ass;
291                  vp->value = malloc(n+1);
292          if (vp->value == NULL)
293                  syserr(progname);
294 <        strcpy(vp->value+i, ass);
294 >        cp = vp->value+i;               /* copy value, squeezing spaces */
295 >        *cp = *ass;
296 >        for (i = 1; i <= n; i++) {
297 >                if (ass[i] == NOCHAR)
298 >                        continue;
299 >                if (isspace(*cp))
300 >                        while (isspace(ass[i]))
301 >                                i++;
302 >                *++cp = ass[i];
303 >        }
304 >        *++cp = '\0';
305          vp->nass++;
306   }
307  
# Line 610 | Line 623 | register char  *op;
623          d *= 3./(siz[0]+siz[1]+siz[2]);
624          switch (vscale(DETAIL)) {
625          case LOW:
626 <                op = addarg(op, "-ps 16 -dp 16");
626 >                op = addarg(op, "-ps 16 -dp 64");
627                  sprintf(op, " -ar %d", (int)(4*d));
628                  op += strlen(op);
629                  break;
630          case MEDIUM:
631 <                op = addarg(op, "-ps 8 -dp 32");
631 >                op = addarg(op, "-ps 8 -dp 128");
632                  sprintf(op, " -ar %d", (int)(8*d));
633                  op += strlen(op);
634                  break;
635          case HIGH:
636 <                op = addarg(op, "-ps 4 -dp 64");
636 >                op = addarg(op, "-ps 4 -dp 256");
637                  sprintf(op, " -ar %d", (int)(16*d));
638                  op += strlen(op);
639                  break;
# Line 672 | Line 685 | register char  *op;
685          switch (vscale(DETAIL)) {
686          case LOW:
687                  op = addarg(op, vbool(PENUMBRAS) ? "-ps 4" : "-ps 8");
688 <                op = addarg(op, "-dp 64");
688 >                op = addarg(op, "-dp 256");
689                  sprintf(op, " -ar %d", (int)(8*d));
690                  op += strlen(op);
691                  break;
692          case MEDIUM:
693                  op = addarg(op, vbool(PENUMBRAS) ? "-ps 3" : "-ps 6");
694 <                op = addarg(op, "-dp 128");
694 >                op = addarg(op, "-dp 512");
695                  sprintf(op, " -ar %d", (int)(16*d));
696                  op += strlen(op);
697                  break;
698          case HIGH:
699                  op = addarg(op, vbool(PENUMBRAS) ? "-ps 2" : "-ps 4");
700 <                op = addarg(op, "-dp 256");
700 >                op = addarg(op, "-dp 1024");
701                  sprintf(op, " -ar %d", (int)(32*d));
702                  op += strlen(op);
703                  break;
# Line 739 | Line 752 | register char  *op;
752          switch (vscale(DETAIL)) {
753          case LOW:
754                  op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 8");
755 <                op = addarg(op, "-dp 256");
755 >                op = addarg(op, "-dp 1024");
756                  sprintf(op, " -ar %d", (int)(16*d));
757                  op += strlen(op);
758                  break;
759          case MEDIUM:
760                  op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 5");
761 <                op = addarg(op, "-dp 512");
761 >                op = addarg(op, "-dp 2048");
762                  sprintf(op, " -ar %d", (int)(32*d));
763                  op += strlen(op);
764                  break;
765          case HIGH:
766                  op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 3");
767 <                op = addarg(op, "-dp 1024");
767 >                op = addarg(op, "-dp 4096");
768                  sprintf(op, " -ar %d", (int)(64*d));
769                  op += strlen(op);
770                  break;
# Line 1013 | Line 1026 | char   *vn;            /* returned view name */
1026   printview(vopts)                        /* print out selected view */
1027   register char   *vopts;
1028   {
1029 <        extern char     *atos();
1029 >        extern char     *atos(), *getenv();
1030          char    buf[256];
1031          FILE    *fp;
1032          register char   *cp;
# Line 1048 | Line 1061 | register char  *vopts;
1061                          while (isspace(*vopts))
1062                                  vopts++;
1063                          putchar(' ');
1064 <                        while (*vopts && !isspace(*vopts))
1065 <                                putchar(*vopts++);
1064 > #ifdef MSDOS
1065 >                        if (*vopts == '$') {            /* expand env. var. */
1066 >                                if (!*atos(buf, sizeof(buf), vopts+1))
1067 >                                        return(-1);
1068 >                                if ((cp = getenv(buf)) == NULL)
1069 >                                        return(-1);
1070 >                                fputs(cp, stdout);
1071 >                                vopts = sskip(vopts);
1072 >                        } else
1073 > #endif
1074 >                                while (*vopts && !isspace(*vopts))
1075 >                                        putchar(*vopts++);
1076                  }
1077          } while (*vopts++);
1078          putchar('\n');
# Line 1067 | Line 1090 | char   *opts;
1090                  return;
1091          if (sayview)
1092                  printview(vw);
1093 <        sprintf(combuf, "rview %s%s ", vw, opts);
1093 >        sprintf(combuf, "rview %s%s -R %s ", vw, opts, rifname);
1094          if (rvdevice != NULL)
1095                  sprintf(combuf+strlen(combuf), "-o %s ", rvdevice);
1096          strcat(combuf, vval(OCTREE));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines