#ifndef SCIQLOP_SPECTROGRAMSERIES_H #define SCIQLOP_SPECTROGRAMSERIES_H #include "CoreGlobal.h" #include /** * @brief The SpectrogramSeries class is the implementation for a data series representing a * spectrogram. * * It defines values on a x-axis and a y-axis. */ class SCIQLOP_CORE_EXPORT SpectrogramSeries : public DataSeries<2> { public: /// Ctor explicit SpectrogramSeries(std::vector xAxisData, std::vector yAxisData, std::vector valuesData, const Unit &xAxisUnit, 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, 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