DataSeries.h
50 lines
| 1.4 KiB
| text/x-c
|
CLexer
Alexandre Leroux
|
r125 | #ifndef SCIQLOP_DATASERIES_H | ||
#define SCIQLOP_DATASERIES_H | ||||
#include <Data/ArrayData.h> | ||||
#include <Data/IDataSeries.h> | ||||
#include <memory> | ||||
/** | ||||
* @brief The DataSeries class is the base (abstract) implementation of IDataSeries. | ||||
* | ||||
* It proposes to set a dimension for the values data | ||||
* | ||||
* @tparam Dim The dimension of the values data | ||||
* | ||||
*/ | ||||
template <int Dim> | ||||
class DataSeries : public IDataSeries { | ||||
public: | ||||
/// @sa IDataSeries::xAxisData() | ||||
std::shared_ptr<ArrayData<1> > xAxisData() override { return m_XAxisData; } | ||||
/// @sa IDataSeries::xAxisUnit() | ||||
Alexandre Leroux
|
r177 | Unit xAxisUnit() const override { return m_XAxisUnit; } | ||
Alexandre Leroux
|
r125 | |||
/// @return the values dataset | ||||
std::shared_ptr<ArrayData<Dim> > valuesData() const { return m_ValuesData; } | ||||
/// @sa IDataSeries::valuesUnit() | ||||
Alexandre Leroux
|
r177 | Unit valuesUnit() const override { return m_ValuesUnit; } | ||
Alexandre Leroux
|
r125 | |||
protected: | ||||
/// Protected ctor (DataSeries is abstract) | ||||
Alexandre Leroux
|
r188 | explicit DataSeries(std::shared_ptr<ArrayData<1> > xAxisData, const Unit &xAxisUnit, | ||
std::shared_ptr<ArrayData<Dim> > valuesData, const Unit &valuesUnit) | ||||
Alexandre Leroux
|
r125 | : m_XAxisData{xAxisData}, | ||
Alexandre Leroux
|
r188 | m_XAxisUnit{xAxisUnit}, | ||
Alexandre Leroux
|
r125 | m_ValuesData{valuesData}, | ||
Alexandre Leroux
|
r188 | m_ValuesUnit{valuesUnit} | ||
Alexandre Leroux
|
r125 | { | ||
} | ||||
private: | ||||
std::shared_ptr<ArrayData<1> > m_XAxisData; | ||||
Alexandre Leroux
|
r177 | Unit m_XAxisUnit; | ||
Alexandre Leroux
|
r125 | std::shared_ptr<ArrayData<Dim> > m_ValuesData; | ||
Alexandre Leroux
|
r177 | Unit m_ValuesUnit; | ||
Alexandre Leroux
|
r125 | }; | ||
#endif // SCIQLOP_DATASERIES_H | ||||