#include ScalarSeries::ScalarSeries(std::vector xAxisData, std::vector 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 = std::vector(); auto subValuesData = std::vector(); this->lockRead(); { auto bounds = xAxisRange(range.m_TStart, range.m_TEnd); for (auto it = bounds.first; it != bounds.second; ++it) { subXAxisData.push_back(it->x()); subValuesData.push_back(it->value()); } } this->unlock(); return std::make_shared(std::move(subXAxisData), std::move(subValuesData), this->xAxisUnit(), this->valuesUnit()); }