SpectrogramSeries.h
40 lines
| 1.5 KiB
| text/x-c
|
CLexer
Alexandre Leroux
|
r863 | #ifndef SCIQLOP_SPECTROGRAMSERIES_H | ||
#define SCIQLOP_SPECTROGRAMSERIES_H | ||||
#include "CoreGlobal.h" | ||||
#include <Data/DataSeries.h> | ||||
/** | ||||
* @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<double> xAxisData, std::vector<double> yAxisData, | ||||
std::vector<double> valuesData, const Unit &xAxisUnit, | ||||
Alexandre Leroux
|
r987 | const Unit &yAxisUnit, const Unit &valuesUnit, | ||
double xResolution = std::numeric_limits<double>::quiet_NaN()); | ||||
Alexandre Leroux
|
r863 | |||
/// Ctor directly with the y-axis | ||||
explicit SpectrogramSeries(std::shared_ptr<ArrayData<1> > xAxisData, const Unit &xAxisUnit, | ||||
std::shared_ptr<ArrayData<2> > valuesData, const Unit &valuesUnit, | ||||
Alexandre Leroux
|
r987 | OptionalAxis yAxis, | ||
double xResolution = std::numeric_limits<double>::quiet_NaN()); | ||||
Alexandre Leroux
|
r863 | |||
/// @sa DataSeries::clone() | ||||
std::unique_ptr<IDataSeries> clone() const override; | ||||
/// @sa DataSeries::subDataSeries() | ||||
std::shared_ptr<IDataSeries> subDataSeries(const SqpRange &range) override; | ||||
Alexandre Leroux
|
r987 | |||
inline double xResolution() const noexcept { return m_XResolution; } | ||||
private: | ||||
double m_XResolution; ///< Resolution used on x-axis to build the spectrogram | ||||
Alexandre Leroux
|
r863 | }; | ||
#endif // SCIQLOP_SPECTROGRAMSERIES_H | ||||