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