##// END OF EJS Templates
Merge branch 'feature/DateTimeOfVariableAtInit' into develop
Merge branch 'feature/DateTimeOfVariableAtInit' into develop

File last commit:

r273:93cf201f35ca
r277:bc65aa8d09b9 merge
Show More
DataSeries.h
70 lines | 2.0 KiB | text/x-c | CLexer
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 #ifndef SCIQLOP_DATASERIES_H
#define SCIQLOP_DATASERIES_H
#include <Data/ArrayData.h>
#include <Data/IDataSeries.h>
Correction for pull request
r227 #include <QLoggingCategory>
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 #include <memory>
Correction for pull request
r227
Q_DECLARE_LOGGING_CATEGORY(LOG_DataSeries)
Q_LOGGING_CATEGORY(LOG_DataSeries, "DataSeries")
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 /**
* @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
Replaces QString unit by a new struct...
r164 Unit xAxisUnit() const override { return m_XAxisUnit; }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117
/// @return the values dataset
std::shared_ptr<ArrayData<Dim> > valuesData() const { return m_ValuesData; }
/// @sa IDataSeries::valuesUnit()
Alexandre Leroux
Replaces QString unit by a new struct...
r164 Unit valuesUnit() const override { return m_ValuesUnit; }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117
Add merge API and implement it for the DataSeries
r217 /// @sa IDataSeries::merge()
void merge(IDataSeries *dataSeries) override
{
if (auto dimDataSeries = dynamic_cast<DataSeries<Dim> *>(dataSeries)) {
Update DataSeries to make it compatible with the new arraydata
r273 m_XAxisData->merge(*dimDataSeries->xAxisData());
m_ValuesData->merge(*dimDataSeries->valuesData());
Add merge API and implement it for the DataSeries
r217 }
Correction for pull request
r227 else {
qCWarning(LOG_DataSeries())
<< QObject::tr("Dection of a type of IDataSeries we cannot merge with !");
}
Add merge API and implement it for the DataSeries
r217 }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 protected:
/// Protected ctor (DataSeries is abstract)
Alexandre Leroux
Fixes after review
r175 explicit DataSeries(std::shared_ptr<ArrayData<1> > xAxisData, const Unit &xAxisUnit,
std::shared_ptr<ArrayData<Dim> > valuesData, const Unit &valuesUnit)
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 : m_XAxisData{xAxisData},
Alexandre Leroux
Fixes after review
r175 m_XAxisUnit{xAxisUnit},
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 m_ValuesData{valuesData},
Alexandre Leroux
Fixes after review
r175 m_ValuesUnit{valuesUnit}
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 {
}
private:
std::shared_ptr<ArrayData<1> > m_XAxisData;
Alexandre Leroux
Replaces QString unit by a new struct...
r164 Unit m_XAxisUnit;
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 std::shared_ptr<ArrayData<Dim> > m_ValuesData;
Alexandre Leroux
Replaces QString unit by a new struct...
r164 Unit m_ValuesUnit;
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r117 };
#endif // SCIQLOP_DATASERIES_H