CTL  0.6.1
Computed Tomography Library
xydataseries.h
1 #ifndef CTL_XYDATASERIES_H
2 #define CTL_XYDATASERIES_H
3 
4 #include "pointseriesbase.h"
5 #include <memory>
6 
7 namespace CTL {
8 
9 class AbstractDataModel;
10 template<typename> class Range;
11 typedef Range<float> SamplingRange;
12 
61 {
62 public:
63  enum Sampling { Linear, Exponential };
64 
65  XYDataSeries() = default;
66  XYDataSeries(QList<QPointF>&& dataSeries);
67  XYDataSeries(const QList<QPointF>& dataSeries);
68  XYDataSeries(const QVector<float>& x, const QVector<float>& y);
69  XYDataSeries(const std::vector<float>& x, const std::vector<float>& y);
70 
71  // factory methods
72  static XYDataSeries sampledFromModel(const AbstractDataModel& dataModel,
73  const QVector<float>& samplingPoints);
74  static XYDataSeries sampledFromModel(std::shared_ptr<AbstractDataModel> dataModel,
75  const QVector<float>& samplingPoints);
76  static XYDataSeries sampledFromModel(const AbstractDataModel& dataModel,
77  const std::vector<float>& samplingPoints);
78  static XYDataSeries sampledFromModel(std::shared_ptr<AbstractDataModel> dataModel,
79  const std::vector<float>& samplingPoints);
80  static XYDataSeries sampledFromModel(const AbstractDataModel& dataModel,
83  Sampling samplingPattern = Linear);
84  static XYDataSeries sampledFromModel(std::shared_ptr<AbstractDataModel> dataModel,
87  Sampling samplingPattern = Linear);
88  static XYDataSeries sampledFromModel(const AbstractDataModel& dataModel,
89  float from,
90  float to,
92  Sampling samplingPattern = Linear);
93  static XYDataSeries sampledFromModel(std::shared_ptr<AbstractDataModel> dataModel,
94  float from,
95  float to,
97  Sampling samplingPattern = Linear);
98 
99  // data manipulation
100  void append(const QPointF& sample);
101  void append(float x, float y);
102  void append(const QList<QPointF>& series);
103  using PointSeriesBase::normalizeByMaxAbsVal;
104  using PointSeriesBase::normalizeByMaxVal;
106  void remove(uint idx);
107  void remove(const QPointF& sample);
108 
109  // other methods
110  using PointSeriesBase::data;
111  QList<QPointF>& data();
112 };
113 
114 } // namespace CTL
115 
116 #endif // CTL_XYDATASERIES_H
const QList< QPointF > & data() const
Definition: pointseriesbase.cpp:29
std::vector< float > samplingPoints() const
Definition: pointseriesbase.cpp:87
Range< float > samplingRange() const
Definition: pointseriesbase.cpp:99
void remove(uint idx)
Definition: xydataseries.cpp:311
QList< QPointF > & data()
Definition: xydataseries.cpp:322
The PointSeriesBase class is the base class used to represent a series of data tuples.
Definition: pointseriesbase.h:32
The AbstractDataModel class is the base class for basic data models.
Definition: abstractdatamodel.h:55
static XYDataSeries sampledFromModel(const AbstractDataModel &dataModel, const QVector< float > &samplingPoints)
Definition: xydataseries.cpp:99
The XYDataSeries class is container for a series of data points, each representing x and y value pair...
Definition: xydataseries.h:60
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
void append(const QPointF &sample)
Definition: xydataseries.cpp:295
uint nbSamples() const
Definition: pointseriesbase.cpp:59
void scaleValues(float factor)
Definition: pointseriesbase.cpp:251