/*
Programmazione II - Esempio di codice
Common definitions for graph service routines. (20000816 prelz@mi.infn.it)
*/
#ifndef GraphHelperH
#define GraphHelperH
typedef struct graph_s
{
int cx, cy; /* Center coordinates */
int xal, yal; /* Axis length in pixels */
double dx, dy; /* Scale for 1 pixel along x and y */
double xmax, xmin, ymax, ymin; /* Axis extremes */
char lx[20],ly[20]; /* Axis labels */
int nval; /* Number of values in the graph */
double *vx,*vy;/* Arrays of values */
int wid; /* ID of created window */
} graph;
graph *graph_create_new(char *display, char *title,
int xws, int yws,
char *xlabel, char *ylabel);
void graph_clear(graph *graph);
void graph_clear_values(graph *graph);
void graph_draw_axis(graph *graph);
int graph_add_point(graph *graph, double x, double y);
void graph_set_scale(graph *graph, double xmin, double xmax,
double ymin, double ymax);
void graph_plot(graph *graph, char *color);
void graph_plot_last(graph *graph, char *color);
int graph_add_and_plot(graph *graph, double x, double y, char *color);
void graph_free(graph *graph);
void graph_pick_values(graph *graph, double *rx, double *ry);
#define WIN_BORDER 30
#endif /* ! defined GraphHelperH */