Annotation of researchv10no/cmd/view2d/halft.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.