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

1.1     ! root        1: /* undocumented feature:
        !             2:    -clx,x,x,x  sets contour levels at x, x, x, and x.   up to 8 levels allowed.
        !             3: */
        !             4: #include <stdio.h>
        !             5: #include <math.h>
        !             6: #include "view2d.h"
        !             7: 
        !             8: extern Rd2d rd;
        !             9: char *progname;
        !            10: short timewarp;
        !            11: double ts, te;
        !            12: 
        !            13: main(argc,argv)
        !            14:   int argc;
        !            15:   char **argv;
        !            16: {
        !            17:   float *p, *pict;
        !            18:   float u2, v2, pow2();
        !            19:   short *v, *q;
        !            20:   char *map;
        !            21:   int prange;
        !            22:   int ncontour = 6;
        !            23:   int i, j, r;
        !            24:   short nx, ny, fru, frv;
        !            25:   int nf;
        !            26:   double frtime;
        !            27:   int zero;
        !            28:   int g2nx, g2ny;
        !            29:   float g2s[6], g2d[4], g2c[300];
        !            30:   float NaN;
        !            31:   int explcont = 0;
        !            32:   timewarp = 0;
        !            33:   progname=argv[0];
        !            34: 
        !            35:   for(argc--, argv++; *argv && (**argv == '-' ); argv++){
        !            36:     switch(argv[0][1]){
        !            37:      case 'c':
        !            38:        if(argv[0][2]=='l'){
        !            39:          ncontour = sscanf(&(argv[0][3]),"%f,%f,%f,%f,%f,%f,%f,%f",
        !            40:             g2c+0,g2c+1,g2c+2,g2c+3,g2c+4,g2c+5,g2c+6,g2c+7,g2c+8);
        !            41:          explcont = 1;
        !            42:          break;
        !            43:        }
        !            44:        ncontour = atoi(&argv[0][2]);
        !            45:        break;
        !            46:      case 't':
        !            47:        i = sscanf(&argv[0][2], "%hd, %hd", &ts, &te);
        !            48:        if(i==0) error("bad TS,TE");
        !            49:        timewarp = i;
        !            50:        break;
        !            51:      case 'T':
        !            52:        break;
        !            53:      default:
        !            54:      err:
        !            55:        fprintf(stderr,"unrecognized option: %s\n",argv[0]);
        !            56:        exit(1);
        !            57:      }
        !            58:    }
        !            59: 
        !            60:   rd2dh(0,&nx,&ny);
        !            61:   v = (short *)Malloc(nx*ny*sizeof(short));
        !            62:   pict = (float *)Malloc(nx*ny*sizeof(float));
        !            63: 
        !            64:   g2open_();
        !            65:   g2d[0] = 0;
        !            66:   g2d[1] = 0;
        !            67:   g2d[2] = nx-1;
        !            68:   g2d[3] = ny-1;
        !            69:   i = 4;
        !            70:   g2sce_(g2s,g2d,&i);
        !            71:   g2nx = nx;
        !            72:   g2ny = ny;
        !            73:   fprintf(stderr,"contours at:\n");
        !            74:   for( i=1; i<=ncontour; i++){
        !            75:     if(!explcont)
        !            76:       g2c[i-1] = rd.fmin + i*(rd.fmax-rd.fmin)/(ncontour+1);
        !            77:     fprintf(stderr," %g\n",g2c[i-1]);
        !            78:   }
        !            79: 
        !            80:   /* for a not-a-number flag, choose a value below all the data */
        !            81:   NaN = rd.fmin;
        !            82:   if(NaN > -1) NaN = -1;
        !            83:   NaN *= 2;
        !            84: 
        !            85:   u2 = rd.u;
        !            86:   v2 = pow2(rd.v);
        !            87:   while(rd2di(&frtime,v)){
        !            88:     p = pict;
        !            89:     q = v;
        !            90:     for(i=0; i<nx*ny; i++){
        !            91:       r = *q;
        !            92:       if( r < -BIG ){ *p = NaN; }
        !            93:        else{
        !            94:         *p = (r-u2)*v2;
        !            95:        }
        !            96:       p++; q++;
        !            97:     }
        !            98:     g2ff_();
        !            99:     g2box_(g2s,g2d);
        !           100:     g2co_(g2s,g2d,&g2nx,&g2ny,pict,&ncontour,g2c,&NaN);
        !           101:   }
        !           102:   g2clos_();
        !           103: }

unix.superglobalmegacorp.com

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