##// END OF EJS Templates
Temporal parameters of the selected variables can be updated using the...
Temporal parameters of the selected variables can be updated using the time widget.

File last commit:

r295:93cf201f35ca
r304:08349e12a7ef
Show More
DataSeries.h
70 lines | 2.0 KiB | text/x-c | CLexer
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 #ifndef SCIQLOP_DATASERIES_H
#define SCIQLOP_DATASERIES_H
#include <Data/ArrayData.h>
#include <Data/IDataSeries.h>
Correction for pull request
r243 #include <QLoggingCategory>
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 #include <memory>
Correction for pull request
r243
Q_DECLARE_LOGGING_CATEGORY(LOG_DataSeries)
Q_LOGGING_CATEGORY(LOG_DataSeries, "DataSeries")
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 /**
* @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...
r177 Unit xAxisUnit() const override { return m_XAxisUnit; }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125
/// @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...
r177 Unit valuesUnit() const override { return m_ValuesUnit; }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125
Add merge API and implement it for the DataSeries
r233 /// @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
r295 m_XAxisData->merge(*dimDataSeries->xAxisData());
m_ValuesData->merge(*dimDataSeries->valuesData());
Add merge API and implement it for the DataSeries
r233 }
Correction for pull request
r243 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
r233 }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 protected:
/// Protected ctor (DataSeries is abstract)
Alexandre Leroux
Fixes after review
r188 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
r125 : m_XAxisData{xAxisData},
Alexandre Leroux
Fixes after review
r188 m_XAxisUnit{xAxisUnit},
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 m_ValuesData{valuesData},
Alexandre Leroux
Fixes after review
r188 m_ValuesUnit{valuesUnit}
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 {
}
private:
std::shared_ptr<ArrayData<1> > m_XAxisData;
Alexandre Leroux
Replaces QString unit by a new struct...
r177 Unit m_XAxisUnit;
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 std::shared_ptr<ArrayData<Dim> > m_ValuesData;
Alexandre Leroux
Replaces QString unit by a new struct...
r177 Unit m_ValuesUnit;
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125 };
#endif // SCIQLOP_DATASERIES_H