home *** CD-ROM | disk | FTP | other *** search
/ Encyclopedia of Graphics File Formats Companion / GFF_CD.ISO / software / unix / saoimage / sao1_07.tar / defs / cgraph.def < prev    next >
Text File  |  1989-11-09  |  13KB  |  239 lines

  1. #ifndef lint
  2. static char SccsCgraphdefId[] = "%W%  %G%";
  3. #endif
  4.  
  5. /* Module:    Cgraph.def
  6.  * Purpose:    Declare the struct for color graph parameters
  7.  * Modified:    {0} Michael VanHilst    initial version         11 June 1989
  8.  *        {n} <who> -- <does what> -- <when>
  9.  */
  10.  
  11. struct colbarRec colorbar = { /*    parameters for display color bar */
  12.  NULL,    /* Display *display;        display handle of colorbox */
  13.  NULL,    /* Window ID;            handle of bar subwindow */
  14.  0, 0,    /* int ref_width, ref_height;    colorbox size when last checked */
  15.  0, 0,    /* unsigned int width,height;    dimensions of bar subwindow */
  16.  0,    /* int ncolors;            number of shades represented */
  17.  NULL,    /* XImage *image;        uses image struct of colorbox */
  18.  0,    /* int data_size;        data allocated (both byte and bit) */
  19.  0,    /* int bytes_per_bit_line;    bytes per line for bitmap */
  20.  NULL,    /* char *byte_data;        one byte per pixel */
  21.  NULL    /* char *bit_data;        one bit per pixel (after byte_data */
  22. };
  23.  
  24. struct cgraphRec cgraph = {
  25.  1,    /* int inactive;        do-not-draw-graph */
  26.  0,    /* int vertical;        1=vertical sweep, else horizontal */
  27.  0,    /* int ncolors;            number of image color cells */
  28.  0,    /* int point_cnt;        applies to all color lines */
  29.  0,    /* int bargraph;        use-bar-type-instead-of-line */
  30.  NULL,    /* Font font;            font id for XDrawImageString */
  31.  NULL,    /* XFontStruct *fontstruct;    struct for font size info */
  32.  NULL,    /* GCspec *disp;        gc info to draw bar */
  33.  NULL,    /* GCspec *menu;        gc info for text */
  34.  NULL,    /* GCspec *black;        gc info for black text and lines */
  35.  {    /* struct colbarRec bar;    parameters for graph color bar */
  36.    NULL,  /* Display *display;        display handle of colorbox */
  37.    NULL,  /* Window ID;            handle of bar subwindow */
  38.    0, 0,  /* int ref_width, ref_height;    colorbox size when last checked */
  39.    0, 0,  /* unsigned int width,height;    dimensions of bar subwindow */
  40.    0,      /* int ncolors;        number of shades represented */
  41.    NULL,  /* XImage *image;        uses image struct of colorbox */
  42.    0,      /* int data_size;        data allocated (both byte and bit) */
  43.    0,      /* int bytes_per_bit_line;    bytes per line for bitmap */
  44.    NULL,  /* char *byte_data;        one byte per pixel */
  45.    NULL   /* char *bit_data;        one bit per pixel (after byte_data */
  46.  },
  47.  {    /* struct {            parameters to label the bar */
  48.    NULL,  /* Window min_ID;        lowest color (0) subwindow */
  49.    NULL,  /* Window max_ID;        highest color (ncolors-1) subwindow */
  50.    0, 0,  /* int min_x, min_y;        lowest color label placement */
  51.    0, 0,  /* int max_x, max_y;        highest color label placement */
  52.    0, 0,  /* int width, height;        size of both label subwindows */
  53.    0,      /* int base_width;        dimension of basic label to center */
  54.    0      /* int base_height; */
  55.  },    /* } barlabel; */
  56.  {    /* struct {            parameters for color graph */
  57.    NULL,  /* Display *display;        display handle of graphbox */
  58.    NULL,  /* Window ID;            handle of graph subwindow */
  59.    0, 0,  /* int ref_width, ref_height;    size of graphbox when last checked */
  60.    0,      /* int ncolors;        number of shades represented */
  61.    0, 0,  /* int width, height;        size of graph subwindow */
  62.    0, 0,  /* int xzero, yzero;        graph area offset */
  63.    0, 0,  /* int xwidth, yheight;    graph area dimensions */
  64.    0, 0,  /* int xmax, ymax;        maximum drawing coordinate */
  65.    0.0,0.0, /* double Xwidth, Yheight;    often used double version */
  66.    0.0,0.0  /* double Xinc, Yinc;    color spacing (ncolors/wdth;hght) */
  67.  },    /* } graph; */
  68.  {    /* struct {            parameters to label the graph */
  69.    NULL,  /* Window gamma_ID;        window in which to label gamma */
  70.    NULL,  /* Window minmax_ID;        window in which to label min & max */
  71.    0, 0,  /* int width, height;        size of both label subwindows */
  72.    NULL,  /* Window geq_ID;        borderless box with "g=" */
  73.    NULL,  /* Window red_ID;        red border box for red gamma */
  74.    NULL,  /* Window green_ID;        green border box for green gamma */
  75.    NULL,  /* Window blue_ID;        blue border box for blue gamma */
  76.    0, 0,  /* int box_width, box_height;    size of each gamma val boxes */
  77.    0, 0,  /* int box_x, box_y;        text string coord in box */
  78.    0, 0,  /* int geq_width, geq_height;    size of "g=" box */
  79.    0, 0,  /* int geq_text_x, geq_text_y;text string coord in "g=" box */
  80.    0,      /* int three_limit;        minimum size to hold 3 gamma vals */
  81.    0,      /* int four_limit;        three_limit plus the "g=" */
  82.    0, 0,  /* int geq_x, geq_y;        placement of "g=" box */
  83.    0, 0,  /* int red_x, red_y;        placement of red box */
  84.    0, 0,  /* int green_x, green_y;    placement of green box */
  85.    0, 0,  /* int blue_x, blue_y;    placement of blue box */
  86.    0, 0,  /* int min_x, min_y;        placement of "min" text string */
  87.    0, 0,  /* int max_x, max_y;        placement of "max" text string */
  88.    0,      /* int minmax_xoff;        coordinate offset from right */
  89.    0,      /* int minmax_yoff;        coordinate offset from bottom */
  90.    0,      /* int active;        label the color bar and graph */
  91.    0      /* int geq_active;        include "g=" in gamma label */
  92.  },    /* } graphlabel; */
  93.  {    /* struct {            special values for hash marks */
  94.    0.0,0.0, /* double Xzero, Yzero;    offset by HASH_RAY */
  95.    0.0,0.0, /* double Xwidth, Yheight;    decremented by inc */
  96.    0.0        /* double Ymax;        perceptually, y goes upward from max */
  97.  },    /* } hash; */
  98.  {    /* struct colgRec red;        ensemble for red */
  99.    0,      /* int active;        this-color-is-being-manipulated */
  100.    1,      /* int unset;            line-does-not-match-current-state */
  101.    NULL,  /* struct subtableRec *table;    color information */
  102.    NULL,  /* GCspec *draw;        gc info to draw graph this color */
  103.   -1,      /* int active_vertex;        vertex being manipulated */
  104.   -1,      /* int active_hash;        hash mark being manipulated */
  105.    0,      /* int hash_0;        index in table of hash[0] */
  106.    0,       /* int queue_index;        position in drawing queue */
  107.    0,      /* int hash_cnt;        number of hash marks */
  108.    0,      /* int pad;            allignment space */
  109.          /* XRectangle hash[PSEUDOSZ];    hash marks for X (PSEUDOSZ = 64) */
  110.    { { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  111.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  112.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  113.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  114.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  115.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  116.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  117.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  118.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  119.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  120.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  121.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  122.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  123.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  124.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  125.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  126.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  127.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  128.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  129.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  130.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  131.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  132.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  133.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  134.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  135.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  136.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  137.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  138.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  139.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  140.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  141.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ } },
  142.    { 0 }  /* XPoint line[MAXPOINTS];    graph line for this color */
  143.  },
  144.  {    /* struct colgRec green;    ensemble for green */
  145.    0,      /* int active;        this-color-is-being-manipulated */
  146.    1,      /* int unset;            line-does-not-match-current-state */
  147.    NULL,  /* struct subtableRec *table;    color information */
  148.    NULL,  /* GCspec *draw;        gc info to draw graph this color */
  149.   -1,      /* int active_vertex;        vertex being manipulated */
  150.   -1,      /* int active_hash;        hash mark being manipulated */
  151.    0,      /* int hash_0;        index in table of hash[0] */
  152.    1,       /* int queue_index;        position in drawing queue */
  153.    0,      /* int hash_cnt;        number of hash marks */
  154.    0,      /* int pad;            allignment space */
  155.    {      /* XRectangle hash[PSEUDOSZ];    hash marks for X (PSEUDOSZ = 64) */
  156.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  157.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  158.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  159.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  160.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  161.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  162.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  163.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  164.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  165.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  166.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  167.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  168.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  169.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  170.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  171.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  172.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  173.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  174.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  175.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  176.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  177.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  178.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  179.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  180.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  181.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  182.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  183.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  184.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  185.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  186.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  187.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ } },
  188.    { 0 }  /* XPoint line[MAXPOINTS];    graph line for this color */
  189.  },
  190.  {    /* struct colgRec blue;        ensemble for blue */
  191.    0,      /* int active;        this-color-is-being-manipulated */
  192.    1,      /* int unset;            line-does-not-match-current-state */
  193.    NULL,  /* struct subtableRec *table;    color information */
  194.    NULL,  /* GCspec *draw;        gc info to draw graph this color */
  195.   -1,      /* int active_vertex;        vertex being manipulated */
  196.   -1,      /* int active_hash;        hash mark being manipulated */
  197.    0,      /* int hash_0;        index in table of hash[0] */
  198.    2,       /* int queue_index;        position in drawing queue */
  199.    0,      /* int hash_cnt;        number of hash marks */
  200.    0,      /* int pad;            allignment space */
  201.    {      /* XRectangle hash[PSEUDOSZ];    hash marks for X (PSEUDOSZ = 64) */
  202.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  203.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  204.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  205.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  206.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  207.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  208.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  209.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  210.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  211.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  212.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  213.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  214.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  215.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  216.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  217.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  218.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  219.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  220.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  221.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  222.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  223.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  224.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  225.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  226.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  227.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  228.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  229.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  230.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  231.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  232.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
  233.      { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ } },
  234.    { 0 }  /* XPoint line[MAXPOINTS];    graph line for this color */
  235.  },
  236.  3,    /* int queue_cnt;        number of color ensembles in queue */
  237.  { 0 }    /* struct colgRec *queue[3];    order of drawing */
  238. };
  239.