|
|
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: int lim202 = 255;
33: int inv_vid = 0;
34: timewarp = -1;
35: verbose = 0;
36: progname=argv[0];
37:
38: for(argc--, argv++; *argv && (**argv == '-' ); argv++){
39: switch(argv[0][1]){
40: case 'S':
41: break;
42: case 'c':
43: ncolor = atoi(&argv[0][2]);
44: break;
45: case 'i':
46: inv_vid = 1;
47: break;
48: case 't':
49: i = sscanf(&argv[0][2], "%he, %he", &ts, &te);
50: if(i<=0) error("bad TS,TE");
51: timewarp = i;
52: break;
53: case 'v':
54: verbose++;
55: if(argv[0][2]=='c') printcol++;
56: break;
57: case 'T':
58: case 'g':
59: case 's':
60: break;
61: default:
62: err:
63: fprintf(stderr,"unrecognized option: %s\n",argv[0]);
64: exit(1);
65: }
66: }
67:
68: if((timewarp>=0)&&verbose)
69: fprintf(stderr,"timewarp=%d ts=%g te=%g\n",timewarp,ts,te);
70: rd2dh(0,&nx,&ny);
71: if((timewarp>=0)&&verbose)
72: fprintf(stderr,"timewarp=%d ts=%g te=%g\n",timewarp,ts,te);
73: if(verbose){
74: fprintf(stderr,"nx=%d ny=%d\n",nx,ny);
75: fprintf(stderr,"fmin=%g fmax=%g\n",rd.fmin,rd.fmax);
76: }
77: v = (short *)Malloc(nx*ny*sizeof(short));
78: pict = (unsigned char *)Malloc(nx*ny*sizeof(char));
79:
80: prange = ((int)rd.pmax)-rd.pmin;
81: if(prange==0) prange = 1;
82: if(printcol){
83: for(j=0; j<=ncolor-1; j++){
84: cleft = rd.fmin + j*(rd.fmax-rd.fmin)/ncolor;
85: cright = rd.fmin + (j+1)*(rd.fmax-rd.fmin)/ncolor;
86: fprintf(stderr,"%g to %g\n", cleft, cright );
87: }
88: }
89: frame=1;
90: while(rd2di(&frtime,v)){
91: if((timewarp>=0)&&(frtime>te)) break;
92: if(verbose) fprintf(stderr,"time=%.9g frame %d\n",frtime,frame);
93: p = pict;
94: rmin = rd.pmin;
95: ncolor1 = ncolor-1;
96: for(j=ny-1; j>=0; j--){
97: q = v+j*nx;
98: for(i=0; i<nx; i++,q++,p++){
99: r = *q;
100: if( r < -BIG ){ *p = 0; }
101: else{
102: k = ((r-rmin)*ncolor)/prange;
103: if(k>=ncolor) k = ncolor1;
104: k = (k*lim202)/ncolor1;
105: *p = k;
106: }
107: if(inv_vid) *p = lim202 - *p;
108: }
109: }
110: Write(1,pict,nx*ny*sizeof(unsigned char));
111: frame++;
112: }
113: nframe = frame-1;
114: exit(0);
115: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.