home *** CD-ROM | disk | FTP | other *** search
- /* structure for 3D coordinate */
- typedef struct coord_3d {
- double x;
- double y;
- double z;
- } coord3d;
-
- /* structure for screen coordinate in doubleing point */
- typedef struct coord_2d {
- double x;
- double y;
- } coord2d;
-
- /* structure for screen coordinate in doubleing point or int */
- typedef struct coord_i2d {
- EG_TYPE x;
- EG_TYPE y;
- } coordi2d;
-
- /* structure for line coordinate */
- typedef struct line_coord {
- coord2d p1;
- coord2d p2;
- } linecoord;
-
- /* data for each single bar */
- typedef struct bar_item {
- double *val; /* value of each bar (also for stacked bar) */
- int topc; /* color of top side */
- int leftc; /* color of left side */
- int rightc; /* color of right side */
- int boundc; /* color of boundary */
- } baritem;
-
- /* relation between eye and object */
- typedef struct coordsphericaleq {
- long rho; /* distance between eye and object */
- long sd; /* distance between eye and screen */
- long theta; /* in degree, the degree from object and x-axis */
- long phi; /* in degree, the degree from object and z-axis */
- } sphr_crd;
-
- /* hidden line removal */
- typedef struct polygon_6 {
- coord2d poly[6];
- double top; /* top point of the polygon */
- double bottom; /* bottom point of the polygon */
- double left; /* left point of the polygon */
- double right; /* the most right point of the polygon */
- } polygon6;
-
- /* labels along 3D bar frame */
- typedef struct td_lab {
- struct vfont *fk; /* vector font to use */
- char **l; /* labels to print */
- int c; /* color for the labels */
- int nlab; /* how many labels along this frame */
- } tdlabels;
-
- /* stacked bars colors */
- typedef struct elemsta {
- int leftc; /* left side's color of stack bar */
- int rightc; /* right side's color of stack bar */
- } stack_cr;
-
- /* for legend */
- typedef struct eleleng {
- int style; /* style for that lengend small box filling */
- char *msg; /* string od the legend */
- } tdlegend;
-
- /* 3D pie each slice data */
- typedef struct elelpie {
- int color; /* color for the side shading */
- int style; /* style for the slice */
- coordi2d org; /* original point of this slice */
- coord2d start; /* start angle coordinate at the slice */
- coord2d end; /* end angle coordinate at the slice */
- int sa; /* starting angle */
- int ea; /* ending angle */
- int ma; /* middle angle */
- int mq; /* middle angle in which quadrant
- flag for the position of the label */
- /* 1st- 1 to 90 */
- /* 2nd- 91 to 180 */
- /* 3rd- 181 to 270 */
- /* 4th- 271 to 360 */
- /* 5- fit in the slice */
- /* 6- print this slice label in pieslice(),
- not in td_htpie() */
- coordi2d map; /* intersection point of middle angle line
- and arc */
- int eflag; /* exploded flag; 1- exploded */
- char *l; /* string of label for this slice */
- int w; /* width of the whole label string */
- coordi2d ll; /* coordinate of left lower corner for the
- label, same as inside the slice */
- coordi2d ru; /* coordinate of right upper corner for the
- label */
- } td_htpie;
-
- /* for intersection point between line and circle */
- typedef struct tdlineeq_struct {
- double x0;
- double y0;
- double dx;
- double dy;
- } tdlineeq;