ScalarSeries.cpp
31 lines
| 1.1 KiB
| text/x-c
|
CppLexer
Alexandre Leroux
|
r126 | #include <Data/ScalarSeries.h> | ||
Alexandre Leroux
|
r694 | ScalarSeries::ScalarSeries(std::vector<double> xAxisData, std::vector<double> valuesData, | ||
Alexandre Leroux
|
r392 | const Unit &xAxisUnit, const Unit &valuesUnit) | ||
: DataSeries{std::make_shared<ArrayData<1> >(std::move(xAxisData)), xAxisUnit, | ||||
std::make_shared<ArrayData<1> >(std::move(valuesData)), valuesUnit} | ||||
{ | ||||
} | ||||
Alexandre Leroux
|
r310 | std::unique_ptr<IDataSeries> ScalarSeries::clone() const | ||
{ | ||||
return std::make_unique<ScalarSeries>(*this); | ||||
} | ||||
r539 | ||||
Alexandre Leroux
|
r554 | std::shared_ptr<IDataSeries> ScalarSeries::subDataSeries(const SqpRange &range) | ||
r539 | { | |||
Alexandre Leroux
|
r694 | auto subXAxisData = std::vector<double>(); | ||
auto subValuesData = std::vector<double>(); | ||||
r539 | this->lockRead(); | |||
{ | ||||
Alexandre Leroux
|
r605 | auto bounds = xAxisRange(range.m_TStart, range.m_TEnd); | ||
Alexandre Leroux
|
r561 | for (auto it = bounds.first; it != bounds.second; ++it) { | ||
Alexandre Leroux
|
r694 | subXAxisData.push_back(it->x()); | ||
subValuesData.push_back(it->value()); | ||||
r539 | } | |||
} | ||||
this->unlock(); | ||||
Alexandre Leroux
|
r694 | return std::make_shared<ScalarSeries>(std::move(subXAxisData), std::move(subValuesData), | ||
this->xAxisUnit(), this->valuesUnit()); | ||||
r539 | } | |||