CTL  0.6.1
Computed Tomography Library
tabulateddatamodel.h
1 #ifndef CTL_TABULATEDDATAMODEL_H
2 #define CTL_TABULATEDDATAMODEL_H
3 
4 #include "abstractdatamodel.h"
5 #include <QMap>
6 
7 namespace CTL {
8 
9 class PointSeriesBase;
10 
39 {
41 
42  // abstract interfaces
43  public: float valueAt(float position) const override;
44  public: float binIntegral(float position, float binWidth) const override;
45  public: AbstractIntegrableDataModel* clone() const override;
46 
47 public:
49  explicit TabulatedDataModel(const PointSeriesBase& dataSeries);
50  explicit TabulatedDataModel(QMap<float, float> table);
51  TabulatedDataModel(const QVector<float>& keys, const QVector<float>& values);
52 
53  // getter methods
54  const QMap<float, float>& lookupTable() const;
55 
56  // setter methods
57  void clearData();
58  void setData(const PointSeriesBase& dataSeries);
59  void setData(QMap<float, float> table);
60  void setData(const QVector<float>& keys, const QVector<float>& values);
61 
62  // other methods
63  QVariant parameter() const override;
64  void setParameter(const QVariant& parameter) override;
65 
66  void insertDataPoint(float key, float value);
67 
68 private:
69  QMap<float, float> _data;
70 
71  QVariantList dataAsVariantList() const;
72  void setDataFromVariantList(const QVariantList& list);
73 };
74 
75 } // namespace CTL
76 
77 #endif // CTL_TABULATEDDATAMODEL_H
void clearData()
Removes all values from the table.
Definition: tabulateddatamodel.cpp:126
void setDataFromVariantList(const QVariantList &list)
Sets the data of this instance based on values in list.
Definition: tabulateddatamodel.cpp:246
AbstractIntegrableDataModel * clone() const override
Definition: tabulateddatamodel.cpp:342
float binIntegral(float position, float binWidth) const override
Definition: tabulateddatamodel.cpp:273
void setData(const PointSeriesBase &dataSeries)
Definition: tabulateddatamodel.cpp:165
QVariantList dataAsVariantList() const
Puts all data in this instance into a QVariantList and returns it.
Definition: tabulateddatamodel.cpp:216
The PointSeriesBase class is the base class used to represent a series of data tuples.
Definition: pointseriesbase.h:32
const QMap< float, float > & lookupTable() const
Definition: tabulateddatamodel.cpp:121
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
float valueAt(float position) const override
Definition: tabulateddatamodel.cpp:349
void setParameter(const QVariant &parameter) override
Sets the data of this instance based on values in parameter.
Definition: tabulateddatamodel.cpp:399
The TabulatedDataModel class is a data model that handles values in a lookup table.
Definition: tabulateddatamodel.h:38
The AbstractIntegrableDataModel class is the base class for data models that provide a means to integ...
Definition: abstractdatamodel.h:110
QVariant parameter() const override
Definition: tabulateddatamodel.cpp:372
void insertDataPoint(float key, float value)
Definition: tabulateddatamodel.cpp:207