| 942 |
|
register char *op; |
| 943 |
|
char *po; |
| 944 |
|
{ |
| 945 |
< |
double d, org[3], siz[3]; |
| 945 |
> |
double d, org[3], siz[3], asz; |
| 946 |
|
|
| 947 |
|
*op = '\0'; |
| 948 |
|
*po = '\0'; |
| 953 |
|
if (siz[0] <= FTINY | siz[1] <= FTINY | siz[2] <= FTINY) |
| 954 |
|
badvalue(ZONE); |
| 955 |
|
getoctcube(org, &d); |
| 956 |
< |
d *= 3./(siz[0]+siz[1]+siz[2]); |
| 956 |
> |
asz = (siz[0]+siz[1]+siz[2])/3.; |
| 957 |
> |
d /= asz; |
| 958 |
|
switch (vscale(DETAIL)) { |
| 959 |
|
case LOW: |
| 960 |
|
po = addarg(po, vbool(PENUMBRAS) ? "-ps 4" : "-ps 8"); |
| 961 |
|
op = addarg(op, "-dp 256"); |
| 962 |
|
sprintf(op, " -ar %d", (int)(8*d)); |
| 963 |
|
op += strlen(op); |
| 964 |
+ |
sprintf(op, " -ms %.2g", asz/20.); |
| 965 |
+ |
op += strlen(op); |
| 966 |
|
break; |
| 967 |
|
case MEDIUM: |
| 968 |
|
po = addarg(po, vbool(PENUMBRAS) ? "-ps 3" : "-ps 6"); |
| 969 |
|
op = addarg(op, "-dp 512"); |
| 970 |
|
sprintf(op, " -ar %d", (int)(16*d)); |
| 971 |
|
op += strlen(op); |
| 972 |
+ |
sprintf(op, " -ms %.2g", asz/40.); |
| 973 |
+ |
op += strlen(op); |
| 974 |
|
break; |
| 975 |
|
case HIGH: |
| 976 |
|
po = addarg(po, vbool(PENUMBRAS) ? "-ps 2" : "-ps 4"); |
| 977 |
|
op = addarg(op, "-dp 1024"); |
| 978 |
|
sprintf(op, " -ar %d", (int)(32*d)); |
| 979 |
|
op += strlen(op); |
| 980 |
+ |
sprintf(op, " -ms %.2g", asz/80.); |
| 981 |
+ |
op += strlen(op); |
| 982 |
|
break; |
| 983 |
|
} |
| 984 |
|
po = addarg(po, "-pt .08"); |
| 1020 |
|
register char *op; |
| 1021 |
|
char *po; |
| 1022 |
|
{ |
| 1023 |
< |
double d, org[3], siz[3]; |
| 1023 |
> |
double d, org[3], siz[3], asz; |
| 1024 |
|
|
| 1025 |
|
*op = '\0'; |
| 1026 |
|
*po = '\0'; |
| 1031 |
|
if (siz[0] <= FTINY | siz[1] <= FTINY | siz[2] <= FTINY) |
| 1032 |
|
badvalue(ZONE); |
| 1033 |
|
getoctcube(org, &d); |
| 1034 |
< |
d *= 3./(siz[0]+siz[1]+siz[2]); |
| 1034 |
> |
asz = (siz[0]+siz[1]+siz[2])/3.; |
| 1035 |
> |
d /= asz; |
| 1036 |
|
switch (vscale(DETAIL)) { |
| 1037 |
|
case LOW: |
| 1038 |
|
po = addarg(po, vbool(PENUMBRAS) ? "-ps 1" : "-ps 8"); |
| 1039 |
|
op = addarg(op, "-dp 1024"); |
| 1040 |
|
sprintf(op, " -ar %d", (int)(16*d)); |
| 1041 |
|
op += strlen(op); |
| 1042 |
+ |
sprintf(op, " -ms %.2g", asz/40.); |
| 1043 |
+ |
op += strlen(op); |
| 1044 |
|
break; |
| 1045 |
|
case MEDIUM: |
| 1046 |
|
po = addarg(po, vbool(PENUMBRAS) ? "-ps 1" : "-ps 5"); |
| 1047 |
|
op = addarg(op, "-dp 2048"); |
| 1048 |
|
sprintf(op, " -ar %d", (int)(32*d)); |
| 1049 |
|
op += strlen(op); |
| 1050 |
+ |
sprintf(op, " -ms %.2g", asz/80.); |
| 1051 |
+ |
op += strlen(op); |
| 1052 |
|
break; |
| 1053 |
|
case HIGH: |
| 1054 |
|
po = addarg(po, vbool(PENUMBRAS) ? "-ps 1" : "-ps 3"); |
| 1055 |
|
op = addarg(op, "-dp 4096"); |
| 1056 |
|
sprintf(op, " -ar %d", (int)(64*d)); |
| 1057 |
+ |
op += strlen(op); |
| 1058 |
+ |
sprintf(op, " -ms %.2g", asz/160.); |
| 1059 |
|
op += strlen(op); |
| 1060 |
|
break; |
| 1061 |
|
} |