##// END OF EJS Templates
Merge branch 'feature/VariableColumns' into develop
Merge branch 'feature/VariableColumns' into develop

File last commit:

r539:7c107b5923b0
r552:780b372cbdd1 merge
Show More
ScalarSeries.cpp
41 lines | 1.5 KiB | text/x-c | CppLexer
/ core / src / Data / ScalarSeries.cpp
Alexandre Leroux
Creates scalar series
r126 #include <Data/ScalarSeries.h>
Alexandre Leroux
Creates constructor for ScalarSeries that directly takes vectors...
r392 ScalarSeries::ScalarSeries(QVector<double> xAxisData, QVector<double> valuesData,
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
Use std::shared_ptr in CosinusProvider
r310 std::unique_ptr<IDataSeries> ScalarSeries::clone() const
{
return std::make_unique<ScalarSeries>(*this);
}
Implementation of V5 acquisition
r539
std::shared_ptr<IDataSeries> ScalarSeries::subData(const SqpRange &range)
{
auto subXAxisData = QVector<double>();
auto subValuesData = QVector<double>();
this->lockRead();
{
const auto &currentXData = this->xAxisData()->cdata();
const auto &currentValuesData = this->valuesData()->cdata();
auto xDataBegin = currentXData.cbegin();
auto xDataEnd = currentXData.cend();
auto lowerIt = std::lower_bound(xDataBegin, xDataEnd, range.m_TStart);
auto upperIt = std::upper_bound(xDataBegin, xDataEnd, range.m_TEnd);
auto distance = std::distance(xDataBegin, lowerIt);
auto valuesDataIt = currentValuesData.cbegin() + distance;
for (auto xAxisDataIt = lowerIt; xAxisDataIt != upperIt; ++xAxisDataIt, ++valuesDataIt) {
subXAxisData.append(*xAxisDataIt);
subValuesData.append(*valuesDataIt);
}
}
this->unlock();
return std::make_shared<ScalarSeries>(subXAxisData, subValuesData, this->xAxisUnit(),
this->valuesUnit());
}