#include "Data/VectorSeries.h" VectorSeries::VectorSeries(QVector xAxisData, QVector xValuesData, QVector yValuesData, QVector zValuesData, const Unit &xAxisUnit, const Unit &valuesUnit) : DataSeries{std::make_shared >(std::move(xAxisData)), xAxisUnit, std::make_shared >(QVector >{ std::move(xValuesData), std::move(yValuesData), std::move(zValuesData)}), valuesUnit} { } std::unique_ptr VectorSeries::clone() const { return std::make_unique(*this); } std::shared_ptr VectorSeries::subDataSeries(const SqpRange &range) { auto subXAxisData = QVector(); auto subXValuesData = QVector(); auto subYValuesData = QVector(); auto subZValuesData = 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()); subXValuesData.append(it->value(0)); subYValuesData.append(it->value(1)); subZValuesData.append(it->value(2)); } } this->unlock(); return std::make_shared(subXAxisData, subXValuesData, subYValuesData, subZValuesData, this->xAxisUnit(), this->valuesUnit()); }