| 9 |
|
#include <stdio.h> |
| 10 |
|
#include <signal.h> |
| 11 |
|
#include <sys/types.h> |
| 12 |
+ |
|
| 13 |
+ |
#include "platform.h" |
| 14 |
|
#ifndef NON_POSIX /* XXX need abstraction for process management */ |
| 15 |
|
#include <sys/wait.h> |
| 16 |
|
#endif |
| 17 |
|
|
| 16 |
– |
#include "platform.h" |
| 18 |
|
#include "standard.h" |
| 19 |
|
#include "color.h" |
| 20 |
|
#include "view.h" |
| 108 |
|
while ((rval = expandarg(&argc, &argv, i)) > 0) |
| 109 |
|
; |
| 110 |
|
if (rval < 0) { |
| 111 |
< |
fprintf(stderr, "%s: cannot expand '%s'", |
| 111 |
> |
fprintf(stderr, "%s: cannot expand '%s'\n", |
| 112 |
|
argv[0], argv[i]); |
| 113 |
|
exit(1); |
| 114 |
|
} |
| 136 |
|
} |
| 137 |
|
break; |
| 138 |
|
case 'p': /* pixel aspect ratio? */ |
| 139 |
+ |
if (argv[i][2] == 'm') { |
| 140 |
+ |
fprintf(stderr, "%s: -pm unsupported\n", |
| 141 |
+ |
argv[0]); |
| 142 |
+ |
++i; |
| 143 |
+ |
continue; |
| 144 |
+ |
} |
| 145 |
|
if (argv[i][2] != 'a' || argv[i][3]) |
| 146 |
|
break; |
| 147 |
|
pixaspect = atof(argv[++i]); |
| 150 |
|
if (argv[i][2]) |
| 151 |
|
break; |
| 152 |
|
timelim = atof(argv[++i])*3600. + .5; |
| 153 |
< |
break; |
| 153 |
> |
continue; |
| 154 |
|
case 'x': /* overall x resolution */ |
| 155 |
|
if (argv[i][2]) |
| 156 |
|
break; |
| 444 |
|
pview = ourview; |
| 445 |
|
switch (ourview.type) { |
| 446 |
|
case VT_PER: |
| 447 |
< |
pview.horiz = 2.*180./PI*atan( |
| 448 |
< |
tan(PI/180./2.*ourview.horiz)/hmult ); |
| 449 |
< |
pview.vert = 2.*180./PI*atan( |
| 450 |
< |
tan(PI/180./2.*ourview.vert)/vmult ); |
| 447 |
> |
pview.horiz = (2.*180./PI)*atan( |
| 448 |
> |
tan((PI/180./2.)*ourview.horiz)/hmult ); |
| 449 |
> |
pview.vert = (2.*180./PI)*atan( |
| 450 |
> |
tan((PI/180./2.)*ourview.vert)/vmult ); |
| 451 |
|
break; |
| 452 |
|
case VT_PAR: |
| 453 |
|
case VT_ANG: |
| 456 |
|
break; |
| 457 |
|
case VT_CYL: |
| 458 |
|
pview.horiz = ourview.horiz / hmult; |
| 459 |
< |
pview.vert = 2.*180./PI*atan( |
| 460 |
< |
tan(PI/180./2.*ourview.vert)/vmult ); |
| 459 |
> |
pview.vert = (2.*180./PI)*atan( |
| 460 |
> |
tan((PI/180./2.)*ourview.vert)/vmult ); |
| 461 |
|
break; |
| 462 |
|
case VT_HEM: |
| 463 |
< |
pview.horiz = 2.*180./PI*asin( |
| 464 |
< |
sin(PI/180./2.*ourview.horiz)/hmult ); |
| 465 |
< |
pview.vert = 2.*180./PI*asin( |
| 466 |
< |
sin(PI/180./2.*ourview.vert)/vmult ); |
| 463 |
> |
pview.horiz = (2.*180./PI)*asin( |
| 464 |
> |
sin((PI/180./2.)*ourview.horiz)/hmult ); |
| 465 |
> |
pview.vert = (2.*180./PI)*asin( |
| 466 |
> |
sin((PI/180./2.)*ourview.vert)/vmult ); |
| 467 |
> |
break; |
| 468 |
> |
case VT_PLS: |
| 469 |
> |
pview.horiz = sin((PI/180./2.)*ourview.horiz) / |
| 470 |
> |
(1.0 + cos((PI/180./2.)*ourview.horiz)) / hmult; |
| 471 |
> |
pview.horiz *= pview.horiz; |
| 472 |
> |
pview.horiz = (2.*180./PI)*acos((1. - pview.horiz) / |
| 473 |
> |
(1. + pview.horiz)); |
| 474 |
> |
pview.vert = sin((PI/180./2.)*ourview.vert) / |
| 475 |
> |
(1.0 + cos((PI/180./2.)*ourview.vert)) / vmult; |
| 476 |
> |
pview.vert *= pview.vert; |
| 477 |
> |
pview.vert = (2.*180./PI)*acos((1. - pview.vert) / |
| 478 |
> |
(1. + pview.vert)); |
| 479 |
|
break; |
| 480 |
|
default: |
| 481 |
|
fprintf(stderr, "%s: unknown view type '-vt%c'\n", |