| 135 |
|
char *argv[]; |
| 136 |
|
{ |
| 137 |
|
char ropts[512]; |
| 138 |
+ |
char popts[64]; |
| 139 |
|
int i; |
| 140 |
|
|
| 141 |
|
progname = argv[0]; |
| 190 |
|
/* check date on ambient file */ |
| 191 |
|
checkambfile(); |
| 192 |
|
/* run simulation */ |
| 193 |
< |
renderopts(ropts); |
| 193 |
> |
renderopts(ropts, popts); |
| 194 |
|
xferopts(ropts); |
| 195 |
|
if (rvdevice != NULL) |
| 196 |
< |
rview(ropts); |
| 196 |
> |
rview(ropts, popts); |
| 197 |
|
else |
| 198 |
< |
rpict(ropts); |
| 198 |
> |
rpict(ropts, popts); |
| 199 |
|
exit(0); |
| 200 |
|
userr: |
| 201 |
|
fprintf(stderr, |
| 821 |
|
} |
| 822 |
|
|
| 823 |
|
|
| 824 |
< |
renderopts(op) /* set rendering options */ |
| 825 |
< |
char *op; |
| 824 |
> |
renderopts(op, po) /* set rendering options */ |
| 825 |
> |
char *op, *po; |
| 826 |
|
{ |
| 827 |
|
switch(vscale(QUALITY)) { |
| 828 |
|
case LOW: |
| 829 |
< |
lowqopts(op); |
| 829 |
> |
lowqopts(op, po); |
| 830 |
|
break; |
| 831 |
|
case MEDIUM: |
| 832 |
< |
medqopts(op); |
| 832 |
> |
medqopts(op, po); |
| 833 |
|
break; |
| 834 |
|
case HIGH: |
| 835 |
< |
hiqopts(op); |
| 835 |
> |
hiqopts(op, po); |
| 836 |
|
break; |
| 837 |
|
} |
| 838 |
|
} |
| 839 |
|
|
| 840 |
|
|
| 841 |
< |
lowqopts(op) /* low quality rendering options */ |
| 841 |
> |
lowqopts(op, po) /* low quality rendering options */ |
| 842 |
|
register char *op; |
| 843 |
+ |
char *po; |
| 844 |
|
{ |
| 845 |
|
double d, org[3], siz[3]; |
| 846 |
|
|
| 847 |
|
*op = '\0'; |
| 848 |
+ |
*po = '\0'; |
| 849 |
|
if (sscanf(vval(ZONE), "%*s %lf %lf %lf %lf %lf %lf", &org[0], |
| 850 |
|
&siz[0], &org[1], &siz[1], &org[2], &siz[2]) != 6) |
| 851 |
|
badvalue(ZONE); |
| 854 |
|
d *= 3./(siz[0]+siz[1]+siz[2]); |
| 855 |
|
switch (vscale(DETAIL)) { |
| 856 |
|
case LOW: |
| 857 |
< |
op = addarg(op, "-ps 16 -dp 64"); |
| 857 |
> |
po = addarg(po, "-ps 16"); |
| 858 |
> |
op = addarg(op, "-dp 64"); |
| 859 |
|
sprintf(op, " -ar %d", (int)(4*d)); |
| 860 |
|
op += strlen(op); |
| 861 |
|
break; |
| 862 |
|
case MEDIUM: |
| 863 |
< |
op = addarg(op, "-ps 8 -dp 128"); |
| 863 |
> |
po = addarg(po, "-ps 8"); |
| 864 |
> |
op = addarg(op, "-dp 128"); |
| 865 |
|
sprintf(op, " -ar %d", (int)(8*d)); |
| 866 |
|
op += strlen(op); |
| 867 |
|
break; |
| 868 |
|
case HIGH: |
| 869 |
< |
op = addarg(op, "-ps 4 -dp 256"); |
| 869 |
> |
po = addarg(po, "-ps 4"); |
| 870 |
> |
op = addarg(op, "-dp 256"); |
| 871 |
|
sprintf(op, " -ar %d", (int)(16*d)); |
| 872 |
|
op += strlen(op); |
| 873 |
|
break; |
| 874 |
|
} |
| 875 |
< |
op = addarg(op, "-pt .16"); |
| 875 |
> |
po = addarg(po, "-pt .16"); |
| 876 |
|
if (vbool(PENUMBRAS)) |
| 877 |
|
op = addarg(op, "-ds .4"); |
| 878 |
|
else |
| 904 |
|
} |
| 905 |
|
|
| 906 |
|
|
| 907 |
< |
medqopts(op) /* medium quality rendering options */ |
| 907 |
> |
medqopts(op, po) /* medium quality rendering options */ |
| 908 |
|
register char *op; |
| 909 |
+ |
char *po; |
| 910 |
|
{ |
| 911 |
|
double d, org[3], siz[3]; |
| 912 |
|
|
| 913 |
|
*op = '\0'; |
| 914 |
+ |
*po = '\0'; |
| 915 |
|
if (sscanf(vval(ZONE), "%*s %lf %lf %lf %lf %lf %lf", &org[0], |
| 916 |
|
&siz[0], &org[1], &siz[1], &org[2], &siz[2]) != 6) |
| 917 |
|
badvalue(ZONE); |
| 920 |
|
d *= 3./(siz[0]+siz[1]+siz[2]); |
| 921 |
|
switch (vscale(DETAIL)) { |
| 922 |
|
case LOW: |
| 923 |
< |
op = addarg(op, vbool(PENUMBRAS) ? "-ps 4" : "-ps 8"); |
| 923 |
> |
po = addarg(po, vbool(PENUMBRAS) ? "-ps 4" : "-ps 8"); |
| 924 |
|
op = addarg(op, "-dp 256"); |
| 925 |
|
sprintf(op, " -ar %d", (int)(8*d)); |
| 926 |
|
op += strlen(op); |
| 927 |
|
break; |
| 928 |
|
case MEDIUM: |
| 929 |
< |
op = addarg(op, vbool(PENUMBRAS) ? "-ps 3" : "-ps 6"); |
| 929 |
> |
po = addarg(po, vbool(PENUMBRAS) ? "-ps 3" : "-ps 6"); |
| 930 |
|
op = addarg(op, "-dp 512"); |
| 931 |
|
sprintf(op, " -ar %d", (int)(16*d)); |
| 932 |
|
op += strlen(op); |
| 933 |
|
break; |
| 934 |
|
case HIGH: |
| 935 |
< |
op = addarg(op, vbool(PENUMBRAS) ? "-ps 2" : "-ps 4"); |
| 935 |
> |
po = addarg(po, vbool(PENUMBRAS) ? "-ps 2" : "-ps 4"); |
| 936 |
|
op = addarg(op, "-dp 1024"); |
| 937 |
|
sprintf(op, " -ar %d", (int)(32*d)); |
| 938 |
|
op += strlen(op); |
| 939 |
|
break; |
| 940 |
|
} |
| 941 |
< |
op = addarg(op, "-pt .08"); |
| 941 |
> |
po = addarg(po, "-pt .08"); |
| 942 |
|
if (vbool(PENUMBRAS)) |
| 943 |
|
op = addarg(op, "-ds .2 -dj .5"); |
| 944 |
|
else |
| 973 |
|
} |
| 974 |
|
|
| 975 |
|
|
| 976 |
< |
hiqopts(op) /* high quality rendering options */ |
| 976 |
> |
hiqopts(op, po) /* high quality rendering options */ |
| 977 |
|
register char *op; |
| 978 |
+ |
char *po; |
| 979 |
|
{ |
| 980 |
|
double d, org[3], siz[3]; |
| 981 |
|
|
| 982 |
|
*op = '\0'; |
| 983 |
+ |
*po = '\0'; |
| 984 |
|
if (sscanf(vval(ZONE), "%*s %lf %lf %lf %lf %lf %lf", &org[0], |
| 985 |
|
&siz[0], &org[1], &siz[1], &org[2], &siz[2]) != 6) |
| 986 |
|
badvalue(ZONE); |
| 989 |
|
d *= 3./(siz[0]+siz[1]+siz[2]); |
| 990 |
|
switch (vscale(DETAIL)) { |
| 991 |
|
case LOW: |
| 992 |
< |
op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 8"); |
| 992 |
> |
po = addarg(po, vbool(PENUMBRAS) ? "-ps 1" : "-ps 8"); |
| 993 |
|
op = addarg(op, "-dp 1024"); |
| 994 |
|
sprintf(op, " -ar %d", (int)(16*d)); |
| 995 |
|
op += strlen(op); |
| 996 |
|
break; |
| 997 |
|
case MEDIUM: |
| 998 |
< |
op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 5"); |
| 998 |
> |
po = addarg(po, vbool(PENUMBRAS) ? "-ps 1" : "-ps 5"); |
| 999 |
|
op = addarg(op, "-dp 2048"); |
| 1000 |
|
sprintf(op, " -ar %d", (int)(32*d)); |
| 1001 |
|
op += strlen(op); |
| 1002 |
|
break; |
| 1003 |
|
case HIGH: |
| 1004 |
< |
op = addarg(op, vbool(PENUMBRAS) ? "-ps 1" : "-ps 3"); |
| 1004 |
> |
po = addarg(po, vbool(PENUMBRAS) ? "-ps 1" : "-ps 3"); |
| 1005 |
|
op = addarg(op, "-dp 4096"); |
| 1006 |
|
sprintf(op, " -ar %d", (int)(64*d)); |
| 1007 |
|
op += strlen(op); |
| 1008 |
|
break; |
| 1009 |
|
} |
| 1010 |
< |
op = addarg(op, "-pt .04"); |
| 1010 |
> |
po = addarg(po, "-pt .04"); |
| 1011 |
|
if (vbool(PENUMBRAS)) |
| 1012 |
|
op = addarg(op, "-ds .1 -dj .7"); |
| 1013 |
|
else |
| 1320 |
|
} |
| 1321 |
|
|
| 1322 |
|
|
| 1323 |
< |
rview(opts) /* run rview with first view */ |
| 1324 |
< |
char *opts; |
| 1323 |
> |
rview(opts, po) /* run rview with first view */ |
| 1324 |
> |
char *opts, *po; |
| 1325 |
|
{ |
| 1326 |
|
char *vw; |
| 1327 |
|
char combuf[512]; |
| 1330 |
|
return; |
| 1331 |
|
if (sayview) |
| 1332 |
|
printview(vw); |
| 1333 |
< |
sprintf(combuf, "rview %s%s -R %s ", vw, opts, rifname); |
| 1333 |
> |
sprintf(combuf, "rview %s%s%s -R %s ", vw, po, opts, rifname); |
| 1334 |
|
if (rvdevice != NULL) |
| 1335 |
|
sprintf(combuf+strlen(combuf), "-o %s ", rvdevice); |
| 1336 |
|
if (vdef(EXPOSURE)) |
| 1343 |
|
} |
| 1344 |
|
|
| 1345 |
|
|
| 1346 |
< |
rpict(opts) /* run rpict and pfilt for each view */ |
| 1347 |
< |
char *opts; |
| 1346 |
> |
rpict(opts, po) /* run rpict and pfilt for each view */ |
| 1347 |
> |
char *opts, *po; |
| 1348 |
|
{ |
| 1349 |
|
char combuf[1024]; |
| 1350 |
|
char rawfile[MAXPATH], picfile[MAXPATH], rep[MAXPATH+16], res[32]; |
| 1405 |
|
/* build rpict command */ |
| 1406 |
|
sprintf(rawfile, "%s_%s.raw", vval(PICTURE), vs); |
| 1407 |
|
if (fdate(rawfile) >= oct1date) /* recover */ |
| 1408 |
< |
sprintf(combuf, "rpict%s%s -ro %s %s", |
| 1409 |
< |
rep, opts, rawfile, oct1name); |
| 1408 |
> |
sprintf(combuf, "rpict%s%s%s -ro %s %s", |
| 1409 |
> |
rep, po, opts, rawfile, oct1name); |
| 1410 |
|
else { |
| 1411 |
|
if (overture) { /* run overture calculation */ |
| 1412 |
|
sprintf(combuf, |
| 1423 |
|
rmfile(overfile); |
| 1424 |
|
#endif |
| 1425 |
|
} |
| 1426 |
< |
sprintf(combuf, "rpict%s %s %s%s %s > %s", |
| 1427 |
< |
rep, vw, res, opts, |
| 1426 |
> |
sprintf(combuf, "rpict%s %s %s%s%s %s > %s", |
| 1427 |
> |
rep, vw, res, po, opts, |
| 1428 |
|
oct1name, rawfile); |
| 1429 |
|
} |
| 1430 |
|
if (runcom(combuf)) { /* run rpict */ |