00001
00002
00003
00004
00005
00006
00007
00009
00010 #ifndef VECTORDATASET_H_
00011 #define VECTORDATASET_H_
00012
00013 #include <wx/xy/xydataset.h>
00014 #include <wx/dynarray.h>
00015
00016 WX_DECLARE_USER_EXPORTED_OBJARRAY(double, wxDoubleArray, WXDLLIMPEXP_FREECHART);
00017
00023 class WXDLLIMPEXP_FREECHART VectorDataset : public XYDataset
00024 {
00025 public:
00031 VectorDataset();
00032 virtual ~VectorDataset();
00033
00034 virtual size_t GetSerieCount();
00035
00036 virtual size_t GetCount(size_t serie);
00037
00038 virtual wxString GetSerieName(size_t serie);
00039
00040 virtual double GetX(size_t index, size_t serie);
00041
00042 virtual double GetY(size_t index, size_t serie);
00043
00048 void Add(double y)
00049 {
00050 m_values.Add(y);
00051 DatasetChanged();
00052 }
00053
00059 void Replace(size_t index, double y)
00060 {
00061 if (index < m_values.Count()) {
00062 m_values[index] = y;
00063
00064 DatasetChanged();
00065 }
00066 }
00067
00072 void RemoveAt(size_t index)
00073 {
00074 if (index < m_values.Count()) {
00075 m_values.RemoveAt(index);
00076
00077 DatasetChanged();
00078 }
00079 }
00080
00084 void Clear()
00085 {
00086 m_values.Clear();
00087 DatasetChanged();
00088 }
00089
00090 private:
00091 wxDoubleArray m_values;
00092 };
00093
00094 #endif