diff --git a/core/include/Data/ArrayData.h b/core/include/Data/ArrayData.h index 08bbcb4..92134dd 100644 --- a/core/include/Data/ArrayData.h +++ b/core/include/Data/ArrayData.h @@ -87,10 +87,9 @@ public: return it != end ? *it : std::numeric_limits::quiet_NaN(); } -private: - std::vector values() const + QVector values() const override { - auto result = std::vector{}; + auto result = QVector{}; for (auto i = 0; i < m_NbComponents; ++i) { result.push_back(*(m_It + i)); } @@ -98,6 +97,7 @@ private: return result; } +private: DataContainer::const_iterator m_It; int m_NbComponents; }; diff --git a/core/include/Data/ArrayDataIterator.h b/core/include/Data/ArrayDataIterator.h index af46ede..fa86409 100644 --- a/core/include/Data/ArrayDataIterator.h +++ b/core/include/Data/ArrayDataIterator.h @@ -4,6 +4,7 @@ #include "CoreGlobal.h" #include "Data/SqpIterator.h" +#include #include /** @@ -25,6 +26,7 @@ public: virtual double first() const = 0; virtual double min() const = 0; virtual double max() const = 0; + virtual QVector values() const = 0; }; explicit ArrayDataIteratorValue(std::unique_ptr impl); @@ -46,6 +48,8 @@ public: double min() const; /// Gets max value among all components double max() const; + /// Gets all values + QVector values() const; private: std::unique_ptr m_Impl; diff --git a/core/include/Data/DataSeries.h b/core/include/Data/DataSeries.h index c269c22..2d5ebd8 100644 --- a/core/include/Data/DataSeries.h +++ b/core/include/Data/DataSeries.h @@ -67,6 +67,7 @@ public: double value(int componentIndex) const override { return m_ValuesIt->at(componentIndex); } double minValue() const override { return m_ValuesIt->min(); } double maxValue() const override { return m_ValuesIt->max(); } + QVector values() const override { return m_ValuesIt->values(); } private: ArrayDataIterator m_XIt; diff --git a/core/include/Data/DataSeriesIterator.h b/core/include/Data/DataSeriesIterator.h index 3489d23..fd859bb 100644 --- a/core/include/Data/DataSeriesIterator.h +++ b/core/include/Data/DataSeriesIterator.h @@ -4,6 +4,7 @@ #include "CoreGlobal.h" #include "Data/SqpIterator.h" +#include #include /** @@ -27,6 +28,7 @@ public: virtual double value(int componentIndex) const = 0; virtual double minValue() const = 0; virtual double maxValue() const = 0; + virtual QVector values() const = 0; }; explicit DataSeriesIteratorValue(std::unique_ptr impl); @@ -50,6 +52,8 @@ public: double minValue() const; /// Gets max of all values data double maxValue() const; + /// Gets all values data + QVector values() const; private: std::unique_ptr m_Impl; diff --git a/core/src/Data/ArrayDataIterator.cpp b/core/src/Data/ArrayDataIterator.cpp index fb13181..cd397c4 100644 --- a/core/src/Data/ArrayDataIterator.cpp +++ b/core/src/Data/ArrayDataIterator.cpp @@ -50,3 +50,8 @@ double ArrayDataIteratorValue::max() const { return m_Impl->max(); } + +QVector ArrayDataIteratorValue::values() const +{ + return m_Impl->values(); +} diff --git a/core/src/Data/DataSeriesIterator.cpp b/core/src/Data/DataSeriesIterator.cpp index 03daf1e..d492b32 100644 --- a/core/src/Data/DataSeriesIterator.cpp +++ b/core/src/Data/DataSeriesIterator.cpp @@ -56,3 +56,8 @@ double DataSeriesIteratorValue::maxValue() const { return m_Impl->maxValue(); } + +QVector DataSeriesIteratorValue::values() const +{ + return m_Impl->values(); +}