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