Annotation of researchv10no/cmd/view2d/halft.c, revision 1.1.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.