|
|
1.1 root 1: #include <stdio.h>
2: #include <math.h>
3: #include "view2d.h"
4:
5: extern Rd2d rd;
6: char *progname;
7: short timewarp;
8: double ts, te;
9: int verbose;
10:
11: main(argc,argv)
12: int argc;
13: char **argv;
14: {
15: register unsigned char *p;
16: register int prange;
17: register short *q;
18: register int r, rmin, ncolor1;
19: int i, j, k;
20: unsigned char *pict;
21: int ip;
22: short *v;
23: int ncolor = 10;
24: short nx, ny;
25: int frame, nframe;
26: int nf;
27: double frtime;
28: char *Malloc();
29: char junk[150];
30: double cleft, cright;
31: int printcol;
32: timewarp = -1;
33: verbose = 0;
34: progname=argv[0];
35:
36: for(argc--, argv++; *argv && (**argv == '-' ); argv++){
37: switch(argv[0][1]){
38: case 'S':
39: break;
40: case 'c':
41: ncolor = atoi(&argv[0][2]);
42: break;
43: case 't':
44: i = sscanf(&argv[0][2], "%he, %he", &ts, &te);
45: if(i<=0) error("bad TS,TE");
46: timewarp = i;
47: break;
48: case 'v':
49: verbose++;
50: if(argv[0][2]=='c') printcol++;
51: break;
52: case 'T':
53: case 'g':
54: case 's':
55: break;
56: default:
57: err:
58: fprintf(stderr,"unrecognized option: %s\n",argv[0]);
59: exit(1);
60: }
61: }
62:
63: if((timewarp>=0)&&verbose)
64: fprintf(stderr,"timewarp=%d ts=%g te=%g\n",timewarp,ts,te);
65: rd2dh(0,&nx,&ny);
66: if((timewarp>=0)&&verbose)
67: fprintf(stderr,"timewarp=%d ts=%g te=%g\n",timewarp,ts,te);
68: if(verbose){
69: fprintf(stderr,"nx=%d ny=%d\n",nx,ny);
70: fprintf(stderr,"fmin=%g fmax=%g\n",rd.fmin,rd.fmax);
71: }
72: v = (short *)Malloc(nx*ny*sizeof(short));
73: pict = (unsigned char *)Malloc(nx*ny*sizeof(char));
74:
75: prange = ((int)rd.pmax)-rd.pmin;
76: if(prange==0) prange = 1;
77: if(printcol){
78: for(j=0; j<=ncolor-1; j++){
79: cleft = rd.fmin + j*(rd.fmax-rd.fmin)/ncolor;
80: cright = rd.fmin + (j+1)*(rd.fmax-rd.fmin)/ncolor;
81: fprintf(stderr,"%g to %g\n",
82: cleft, cright );
83: }
84: }
85: frame=1;
86: while(rd2di(&frtime,v)){
87: if((timewarp>=0)&&(frtime>te)) break;
88: if(verbose) fprintf(stderr,"time=%.9g frame %d\n",frtime,frame);
89: p = pict;
90: rmin = rd.pmin;
91: ncolor1 = ncolor-1;
92: for(j=ny-1; j>=0; j--){
93: q = v+j*nx;
94: for(i=0; i<nx; i++,q++,p++){
95: r = *q;
96: if( r < -BIG ){ *p = 0; }
97: else{
98: k = ((r-rmin)*ncolor1)/prange;
99: *p = (k*127)/ncolor1;
100: }
101: }
102: }
103: Write(1,pict,nx*ny*sizeof(unsigned char));
104: frame++;
105: }
106: nframe = frame-1;
107: exit(0);
108: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.