double p3_y;
};
+struct graph_axis {
+ double major_start;
+ double major_step;
+ int major;
+ int minor;
+ int subminor;
+ GString *title;
+};
+
typedef struct _Graph {
GObject parent_instance;
/*Array of n_points sets of x,y coords*/
double maxy;
double miny;
graph_symbol symbol;
+ struct graph_axis *xaxis;
+ struct graph_axis *yaxis;
} Graph;
typedef struct _GraphClass {
int graph_add_point(Graph* graph, double x, double y, const GString *label);
int graph_add_graph_point(Graph* graph, struct graph_point *pt);
int graph_add_line(Graph* graph, double p0_x, double p0_y, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y);
+int graph_add_graph_line(Graph* graph, struct graph_line *l);
void graph_add_linear_connectors(Graph* graph);
/*Provide x0, x3; x1 and x2 will be set*/
void graph_bezier_linear_to_cubic(double x0, double x3, double *x1, double *x2);
/*Provide x0, x1, x2. x1 and x2 will be set appropriately.*/
-void graph_bezier_qudratic_to_cubic(double x0, double x3, double *x1, double *x2);
+void graph_bezier_quadratic_to_cubic(double x0, double x3, double *x1, double *x2);
+void graph_set_xaxis(Graph *g, struct graph_axis *axis);
+void graph_set_yaxis(Graph *g, struct graph_axis *axis);
+int graph_autoset_xaxis(Graph *g, GString *title);
+int graph_autoset_yaxis(Graph *g, GString *title);