home *** CD-ROM | disk | FTP | other *** search
/ Photo CD Demo 1 / Demo.bin / gle / gle / name.c < prev    next >
C/C++ Source or Header  |  1992-11-29  |  1KB  |  81 lines

  1. #include "all.h"
  2. #include "mygraph.h"
  3. #define MAXNAME 400
  4. #ifdef __TURBOC__
  5. #define MAXNAME 40
  6. #endif
  7. static double namex1[MAXNAME],namey1[MAXNAME],namex2[MAXNAME],namey2[MAXNAME];
  8. static char *names[MAXNAME];
  9. static int nnam=0;
  10. int swap_minmax(double *x1, double *y1, double *x2, double *y2);
  11. name_set(char *n,double x1,double y1,double x2,double y2)
  12. {
  13.     double xx1,yy1,xx2,yy2;
  14.     int i;
  15.     strupr(n);
  16.     for (i=0;i<nnam;i++) if (strcmp(n,names[i])==0) break;
  17.     if (i==nnam) {
  18.         nnam++;
  19.         if (nnam>=MAXNAME) {
  20.             gprint("Too many names in gle file, reuse them\n");
  21.             return;
  22.         }
  23.         names[i] = sdup(n);
  24.     }
  25.     g_dev(x1,y1,&xx1,&yy1);
  26.     g_dev(x2,y2,&xx2,&yy2);
  27.     swap_minmax(&xx1, &yy1, &xx2, &yy2);
  28.     namex1[i] = xx1;
  29.     namey1[i] = yy1;
  30.     namex2[i] = xx2;
  31.     namey2[i] = yy2;
  32. }
  33. swap_minmax(double *x1, double *y1, double *x2, double *y2)
  34. {
  35.     double a;
  36.     if (*x1 > *x2) { a = *x1; *x1 = *x2; *x2 = a;}
  37.     if (*y1 > *y2) { a = *y1; *y1 = *y2; *y2 = a;}
  38. }
  39. name_show()
  40. {
  41.     int i;
  42.     for (i=0;i<nnam;i++) {
  43.         gprint("Name %d {%s} \n",i,names[i]);
  44.     }
  45. }
  46. name_get(char *n,double *x1,double *y1,double *x2,double *y2)
  47. {
  48.     int i;
  49.     double xx1,yy1,xx2,yy2;
  50.     for (i=0;i<nnam;i++) {
  51.         if (strcmp(n,names[i])==0) break;
  52.     }
  53.     if (i==nnam) {
  54.         gprint("Name not defined {%s} \n",n);
  55.         i=0;
  56.         return;
  57.     }
  58.     g_undev(namex1[i],namey1[i],&xx1,&yy1);
  59.     g_undev(namex2[i],namey2[i],&xx2,&yy2);
  60.     swap_minmax(&xx1, &yy1, &xx2, &yy2);
  61.     *x1 = xx1;
  62.     *y1 = yy1;
  63.     *x2 = xx2;
  64.     *y2 = yy2;
  65. }
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.