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 |
|
} |