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