##// END OF EJS Templates
onRangeChanged is now based on the good range (the new one)...
onRangeChanged is now based on the good range (the new one) setTimeRange is now connected to rescaleAxes and replot methods

File last commit:

r310:9a5cb57f1573
r315:076efd0d6728
Show More
DataSeries.h
93 lines | 2.8 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; }
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 const std::shared_ptr<ArrayData<1> > xAxisData() const { return m_XAxisData; }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125
/// @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
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 std::shared_ptr<ArrayData<Dim> > valuesData() { return m_ValuesData; }
const std::shared_ptr<ArrayData<Dim> > valuesData() const { return m_ValuesData; }
Alexandre Leroux
Creates IDataSeries interface and its default implementation
r125
/// @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 {
}
Alexandre Leroux
Use std::shared_ptr in CosinusProvider
r310 /// Copy ctor
explicit DataSeries(const DataSeries<Dim> &other)
: m_XAxisData{std::make_shared<ArrayData<1> >(*other.m_XAxisData)},
m_XAxisUnit{other.m_XAxisUnit},
m_ValuesData{std::make_shared<ArrayData<Dim> >(*other.m_ValuesData)},
m_ValuesUnit{other.m_ValuesUnit}
{
}
/// Assignment operator
template <int D>
DataSeries &operator=(DataSeries<D> other)
{
std::swap(m_XAxisData, other.m_XAxisData);
std::swap(m_XAxisUnit, other.m_XAxisUnit);
std::swap(m_ValuesData, other.m_ValuesData);
std::swap(m_ValuesUnit, other.m_ValuesUnit);
return *this;
}
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