From 2928e844924554b5b04663566617c12938a62bc5 2017-11-23 16:39:10 From: Alexandre Leroux Date: 2017-11-23 16:39:10 Subject: [PATCH] Updates spectrogram to hold time resolution Time resolution will be used to compute mesh for spectrogram display --- diff --git a/core/include/Data/SpectrogramSeries.h b/core/include/Data/SpectrogramSeries.h index a58bc74..f13ea1e 100644 --- a/core/include/Data/SpectrogramSeries.h +++ b/core/include/Data/SpectrogramSeries.h @@ -16,18 +16,25 @@ public: /// Ctor explicit SpectrogramSeries(std::vector xAxisData, std::vector yAxisData, std::vector valuesData, const Unit &xAxisUnit, - const Unit &yAxisUnit, const Unit &valuesUnit); + const Unit &yAxisUnit, const Unit &valuesUnit, + double xResolution = std::numeric_limits::quiet_NaN()); /// Ctor directly with the y-axis explicit SpectrogramSeries(std::shared_ptr > xAxisData, const Unit &xAxisUnit, std::shared_ptr > valuesData, const Unit &valuesUnit, - OptionalAxis yAxis); + OptionalAxis yAxis, + double xResolution = std::numeric_limits::quiet_NaN()); /// @sa DataSeries::clone() std::unique_ptr clone() const override; /// @sa DataSeries::subDataSeries() std::shared_ptr subDataSeries(const SqpRange &range) override; + + inline double xResolution() const noexcept { return m_XResolution; } + +private: + double m_XResolution; ///< Resolution used on x-axis to build the spectrogram }; #endif // SCIQLOP_SPECTROGRAMSERIES_H diff --git a/core/src/Data/SpectrogramSeries.cpp b/core/src/Data/SpectrogramSeries.cpp index 2d91860..2ea57ba 100644 --- a/core/src/Data/SpectrogramSeries.cpp +++ b/core/src/Data/SpectrogramSeries.cpp @@ -2,20 +2,25 @@ SpectrogramSeries::SpectrogramSeries(std::vector xAxisData, std::vector yAxisData, std::vector valuesData, const Unit &xAxisUnit, - const Unit &yAxisUnit, const Unit &valuesUnit) + const Unit &yAxisUnit, const Unit &valuesUnit, + double resolution) : SpectrogramSeries{ - std::make_shared >(std::move(xAxisData)), xAxisUnit, - std::make_shared >(std::move(valuesData), yAxisData.size()), valuesUnit, - OptionalAxis{std::make_shared >(std::move(yAxisData)), yAxisUnit}} + std::make_shared >(std::move(xAxisData)), + xAxisUnit, + std::make_shared >(std::move(valuesData), yAxisData.size()), + valuesUnit, + OptionalAxis{std::make_shared >(std::move(yAxisData)), yAxisUnit}, + resolution} { } SpectrogramSeries::SpectrogramSeries(std::shared_ptr > xAxisData, const Unit &xAxisUnit, std::shared_ptr > valuesData, - const Unit &valuesUnit, OptionalAxis yAxis) + const Unit &valuesUnit, OptionalAxis yAxis, double resolution) : DataSeries{std::move(xAxisData), xAxisUnit, std::move(valuesData), valuesUnit, - std::move(yAxis)} + std::move(yAxis)}, + m_XResolution{resolution} { } diff --git a/plugins/amda/src/AmdaResultParserHelper.cpp b/plugins/amda/src/AmdaResultParserHelper.cpp index 0f76d1c..c137783 100644 --- a/plugins/amda/src/AmdaResultParserHelper.cpp +++ b/plugins/amda/src/AmdaResultParserHelper.cpp @@ -308,7 +308,8 @@ std::shared_ptr SpectrogramParserHelper::createSeries() std::move(m_XAxisData), std::move(m_YAxisData), std::move(m_ValuesData), Unit{"t", true}, // x-axis unit is always a time unit m_Properties.value(Y_AXIS_UNIT_PROPERTY).value(), - m_Properties.value(VALUES_UNIT_PROPERTY).value()); + m_Properties.value(VALUES_UNIT_PROPERTY).value(), + m_Properties.value(MIN_SAMPLING_PROPERTY).value()); } void SpectrogramParserHelper::readPropertyLine(const QString &line)