* Initial checkin.
[scdataviz] / graph.h
1 /*
2 ** Graph.h
3 ** 
4 ** Made by Johnny Q. Hacker
5 ** Login   <solarion@johnathan>
6 ** 
7
8 Copyright (C) 2008 Joseph Pingenot
9
10 This program is free software: you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 GNU Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23 ** Started on  Thu Jul 17 10:51:32 2008 Johnny Q. Hacker
24 ** Last update Thu Jul 17 10:51:32 2008 Johnny Q. Hacker
25 */
26
27 #ifndef         GRAPH_H_
28 # define        GRAPH_H_
29
30 #include <glib-2.0/glib-object.h>
31
32 enum graph_symbol {
33      SQUARE,
34      CIRCLE,
35      STAR,
36      PLUS,
37      MINUX,
38      CROSS
39    };
40
41 typedef struct _Graph {
42   GObject parent;
43   /*Array of n_points sets of x,y coords*/
44   GPtrArray *points;
45   double maxx;
46   double minx;
47   double maxy;
48   double miny;
49   graph_symbol symbol;
50 } Graph;
51
52 typedef struct _GraphClass {
53   GObject parent;
54 } GraphClass;
55
56 #define GRAPH_TYPE (graph_get_type())
57 #define GRAPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GRAPH_TYPE, Graph))
58 #define GRAPH_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GRAPH, GraphClass))
59 #define IS_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRAPH_TYPE))
60 #define IS_GRAPH_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), GRAPH_CLASS_TYPE))
61 #define GRAPH_GET_CLASS (G_TYPE_INSTANCE_GET_CLASS ((obj), GRAPH, GraphClass))
62
63 Graph *graph_new(void);
64 int graph_add_point(Graph* graph, double x, double y);
65
66 #endif      /* !GRAPH_H_ */