wxFreeChart
xydynamicdataset.h
1 // Name: xydynamidataset.h
3 // Purpose: xy dynamic serie and dataset declaration.
4 // Author: Mike Sazonov
5 // E-mail: msazonov(at)gmail.com
6 // Created: 2010/01/29
7 // Copyright: (c) 2010 Mike Sazonov
8 // Licence: wxWidgets licence
10 
11 #ifndef __XYDYNAMICDATASET_H
12 #define __XYDYNAMICDATASET_H
13 
14 #include <wx/wx.h>
15 #include <wx/gdicmn.h>
16 #include <wx/dynarray.h>
17 
18 #include "wx/wxfreechartdefs.h"
19 #include "wx/xy/xydataset.h"
20 
21 class WXDLLIMPEXP_FREECHART XYDynamicDataset;
22 
23 WX_DECLARE_USER_EXPORTED_OBJARRAY(wxRealPoint
24  , wxRealPointArray
25  , WXDLLIMPEXP_FREECHART);
26 
31 class WXDLLIMPEXP_FREECHART XYDynamicSerie : public wxObject
32 {
33  // Inherits only for wxWidgets RTTI support
34  DECLARE_CLASS(XYDynamicSerie);
35 
36 public:
37  friend class XYDynamicDataset;
38 
40  XYDynamicSerie(const wxRealPointArray& data);
41 
42  virtual ~XYDynamicSerie();
43 
49  double GetX(size_t index);
50 
56  double GetY(size_t index);
57 
63  wxRealPoint GetXY(size_t index);
64 
69  size_t GetCount();
70 
75  const wxString &GetName();
76 
81  void SetName(const wxString &name);
82 
88  void AddXY(double x, double y);
89 
94  void AddXY(const wxRealPoint& xy);
95 
100  void AddXY(const wxRealPointArray& data);
101 
108  void Insert(size_t index, double x, double y);
109 
115  void Insert(size_t index, const wxRealPoint& xy);
116 
122  void Insert(size_t index, const wxRealPointArray& data);
123 
129  void Remove(size_t index, size_t count = 1);
130 
134  void Clear();
135 
136 private:
137  void SetDataset(XYDynamicDataset *dataset);
138 
139  wxRealPointArray m_data;
140  wxString m_name;
141  XYDynamicDataset *m_dataset;
142 };
143 
144 WX_DECLARE_USER_EXPORTED_OBJARRAY(XYDynamicSerie *
145  , XYDynamicSerieArray
146  , WXDLLIMPEXP_FREECHART);
147 
151 class WXDLLIMPEXP_FREECHART XYDynamicDataset : public XYDataset
152 {
153  DECLARE_CLASS(XYDynamicDataset);
154 
155 public:
156  friend class XYDynamicSerie;
157 
159  virtual ~XYDynamicDataset();
160 
165  void AddSerie(const wxRealPointArray& data);
166 
171  void AddSerie(XYDynamicSerie *serie);
172 
173  virtual size_t GetSerieCount();
174 
175  virtual wxString GetSerieName(size_t serie);
176  void SetSerieName(size_t serie, const wxString &name);
177 
178  virtual double GetX(size_t index, size_t serie);
179  virtual double GetY(size_t index, size_t serie);
180  virtual size_t GetCount(size_t serie);
181 
182 private:
183  XYDynamicSerieArray m_series;
184 };
185 
186 #endif /* __XYDYNAMICDATASET_H */
187 
virtual size_t GetSerieCount()=0
Returns serie count in this dataset.
virtual size_t GetCount(size_t serie)
Returns value count in serie specified by index.
virtual double GetX(size_t index, size_t serie)=0
Returns x value at index.
virtual double GetY(size_t index, size_t serie)=0
Returns y value at index.
virtual double GetY(size_t index, size_t serie)
Returns y value at index.
XY dynamic serie.
virtual size_t GetCount(size_t serie)=0
Returns value count in serie specified by index.
virtual double GetX(size_t index, size_t serie)
Returns x value at index.
Base class for XY datasets.
Definition: xydataset.h:21
XY dynamic dataset.
virtual wxString GetSerieName(size_t serie)=0
Returns serie name.