#include ScalarSeries::ScalarSeries(QVector xAxisData, QVector valuesData, const Unit &xAxisUnit, const Unit &valuesUnit) : DataSeries{std::make_shared >(std::move(xAxisData)), xAxisUnit, std::make_shared >(std::move(valuesData)), valuesUnit} { } std::unique_ptr ScalarSeries::clone() const { return std::make_unique(*this); } std::shared_ptr ScalarSeries::subDataSeries(const SqpRange &range) { auto subXAxisData = QVector(); auto subValuesData = QVector(); this->lockRead(); { auto bounds = xAxisRange(range.m_TStart, range.m_TEnd); for (auto it = bounds.first; it != bounds.second; ++it) { subXAxisData.append(it->x()); subValuesData.append(it->value()); } } this->unlock(); return std::make_shared(subXAxisData, subValuesData, this->xAxisUnit(), this->valuesUnit()); }