##// END OF EJS Templates
Creates SpectrogramSeries...
Alexandre Leroux -
r863:ee7a50efad0a
parent child
Show More
@@ -0,0 +1,33
1 #ifndef SCIQLOP_SPECTROGRAMSERIES_H
2 #define SCIQLOP_SPECTROGRAMSERIES_H
3
4 #include "CoreGlobal.h"
5
6 #include <Data/DataSeries.h>
7
8 /**
9 * @brief The SpectrogramSeries class is the implementation for a data series representing a
10 * spectrogram.
11 *
12 * It defines values on a x-axis and a y-axis.
13 */
14 class SCIQLOP_CORE_EXPORT SpectrogramSeries : public DataSeries<2> {
15 public:
16 /// Ctor
17 explicit SpectrogramSeries(std::vector<double> xAxisData, std::vector<double> yAxisData,
18 std::vector<double> valuesData, const Unit &xAxisUnit,
19 const Unit &yAxisUnit, const Unit &valuesUnit);
20
21 /// Ctor directly with the y-axis
22 explicit SpectrogramSeries(std::shared_ptr<ArrayData<1> > xAxisData, const Unit &xAxisUnit,
23 std::shared_ptr<ArrayData<2> > valuesData, const Unit &valuesUnit,
24 OptionalAxis yAxis);
25
26 /// @sa DataSeries::clone()
27 std::unique_ptr<IDataSeries> clone() const override;
28
29 /// @sa DataSeries::subDataSeries()
30 std::shared_ptr<IDataSeries> subDataSeries(const SqpRange &range) override;
31 };
32
33 #endif // SCIQLOP_SPECTROGRAMSERIES_H
@@ -0,0 +1,45
1 #include <Data/SpectrogramSeries.h>
2
3 SpectrogramSeries::SpectrogramSeries(std::vector<double> xAxisData, std::vector<double> yAxisData,
4 std::vector<double> valuesData, const Unit &xAxisUnit,
5 const Unit &yAxisUnit, const Unit &valuesUnit)
6 : SpectrogramSeries{
7 std::make_shared<ArrayData<1> >(std::move(xAxisData)), xAxisUnit,
8 std::make_shared<ArrayData<2> >(std::move(valuesData), yAxisData.size()), valuesUnit,
9 OptionalAxis{std::make_shared<ArrayData<1> >(std::move(yAxisData)), yAxisUnit}}
10 {
11 }
12
13 SpectrogramSeries::SpectrogramSeries(std::shared_ptr<ArrayData<1> > xAxisData,
14 const Unit &xAxisUnit,
15 std::shared_ptr<ArrayData<2> > valuesData,
16 const Unit &valuesUnit, OptionalAxis yAxis)
17 : DataSeries{std::move(xAxisData), xAxisUnit, std::move(valuesData), valuesUnit,
18 std::move(yAxis)}
19 {
20 }
21
22 std::unique_ptr<IDataSeries> SpectrogramSeries::clone() const
23 {
24 return std::make_unique<SpectrogramSeries>(*this);
25 }
26
27 std::shared_ptr<IDataSeries> SpectrogramSeries::subDataSeries(const SqpRange &range)
28 {
29 auto subXAxisData = std::vector<double>();
30 auto subValuesData = QVector<double>(); // Uses QVector to append easily values to it
31 this->lockRead();
32 auto bounds = xAxisRange(range.m_TStart, range.m_TEnd);
33 for (auto it = bounds.first; it != bounds.second; ++it) {
34 subXAxisData.push_back(it->x());
35 subValuesData.append(it->values());
36 }
37
38 auto yAxis = this->yAxis();
39 this->unlock();
40
41 return std::make_shared<SpectrogramSeries>(
42 std::make_shared<ArrayData<1> >(std::move(subXAxisData)), this->xAxisUnit(),
43 std::make_shared<ArrayData<2> >(subValuesData.toStdVector(), yAxis.size()),
44 this->valuesUnit(), std::move(yAxis));
45 }
@@ -1,64 +1,65
1
1
2 core_moc_headers = [
2 core_moc_headers = [
3 'include/Data/IDataProvider.h',
3 'include/Data/IDataProvider.h',
4 'include/DataSource/DataSourceController.h',
4 'include/DataSource/DataSourceController.h',
5 'include/DataSource/DataSourceItemAction.h',
5 'include/DataSource/DataSourceItemAction.h',
6 'include/Network/NetworkController.h',
6 'include/Network/NetworkController.h',
7 'include/Time/TimeController.h',
7 'include/Time/TimeController.h',
8 'include/Variable/Variable.h',
8 'include/Variable/Variable.h',
9 'include/Variable/VariableCacheController.h',
9 'include/Variable/VariableCacheController.h',
10 'include/Variable/VariableController.h',
10 'include/Variable/VariableController.h',
11 'include/Variable/VariableAcquisitionWorker.h',
11 'include/Variable/VariableAcquisitionWorker.h',
12 'include/Variable/VariableCacheStrategy.h',
12 'include/Variable/VariableCacheStrategy.h',
13 'include/Variable/VariableSynchronizationGroup.h',
13 'include/Variable/VariableSynchronizationGroup.h',
14 'include/Variable/VariableModel.h',
14 'include/Variable/VariableModel.h',
15 'include/Visualization/VisualizationController.h'
15 'include/Visualization/VisualizationController.h'
16 ]
16 ]
17
17
18
18
19 core_moc_files = qt5.preprocess(moc_headers : core_moc_headers)
19 core_moc_files = qt5.preprocess(moc_headers : core_moc_headers)
20
20
21 core_sources = [
21 core_sources = [
22 'src/Common/DateUtils.cpp',
22 'src/Common/DateUtils.cpp',
23 'src/Common/StringUtils.cpp',
23 'src/Common/StringUtils.cpp',
24 'src/Common/MimeTypesDef.cpp',
24 'src/Common/MimeTypesDef.cpp',
25 'src/Data/ScalarSeries.cpp',
25 'src/Data/ScalarSeries.cpp',
26 'src/Data/SpectrogramSeries.cpp',
26 'src/Data/DataSeriesIterator.cpp',
27 'src/Data/DataSeriesIterator.cpp',
27 'src/Data/ArrayDataIterator.cpp',
28 'src/Data/ArrayDataIterator.cpp',
28 'src/Data/VectorSeries.cpp',
29 'src/Data/VectorSeries.cpp',
29 'src/Data/OptionalAxis.cpp',
30 'src/Data/OptionalAxis.cpp',
30 'src/DataSource/DataSourceController.cpp',
31 'src/DataSource/DataSourceController.cpp',
31 'src/DataSource/DataSourceItem.cpp',
32 'src/DataSource/DataSourceItem.cpp',
32 'src/DataSource/DataSourceItemAction.cpp',
33 'src/DataSource/DataSourceItemAction.cpp',
33 'src/Network/NetworkController.cpp',
34 'src/Network/NetworkController.cpp',
34 'src/Plugin/PluginManager.cpp',
35 'src/Plugin/PluginManager.cpp',
35 'src/Settings/SqpSettingsDefs.cpp',
36 'src/Settings/SqpSettingsDefs.cpp',
36 'src/Time/TimeController.cpp',
37 'src/Time/TimeController.cpp',
37 'src/Variable/Variable.cpp',
38 'src/Variable/Variable.cpp',
38 'src/Variable/VariableCacheController.cpp',
39 'src/Variable/VariableCacheController.cpp',
39 'src/Variable/VariableController.cpp',
40 'src/Variable/VariableController.cpp',
40 'src/Variable/VariableAcquisitionWorker.cpp',
41 'src/Variable/VariableAcquisitionWorker.cpp',
41 'src/Variable/VariableSynchronizationGroup.cpp',
42 'src/Variable/VariableSynchronizationGroup.cpp',
42 'src/Variable/VariableModel.cpp',
43 'src/Variable/VariableModel.cpp',
43 'src/Visualization/VisualizationController.cpp'
44 'src/Visualization/VisualizationController.cpp'
44 ]
45 ]
45
46
46 core_inc = include_directories(['include', '../plugin/include'])
47 core_inc = include_directories(['include', '../plugin/include'])
47
48
48 sciqlop_core_lib = library('sciqlopcore',
49 sciqlop_core_lib = library('sciqlopcore',
49 core_sources,
50 core_sources,
50 core_moc_files,
51 core_moc_files,
51 cpp_args : '-DCORE_LIB',
52 cpp_args : '-DCORE_LIB',
52 include_directories : core_inc,
53 include_directories : core_inc,
53 dependencies : [qt5core, qt5network],
54 dependencies : [qt5core, qt5network],
54 install : true
55 install : true
55 )
56 )
56
57
57
58
58 sciqlop_core = declare_dependency(link_with : sciqlop_core_lib,
59 sciqlop_core = declare_dependency(link_with : sciqlop_core_lib,
59 include_directories : core_inc,
60 include_directories : core_inc,
60 dependencies : [qt5core, qt5network])
61 dependencies : [qt5core, qt5network])
61
62
62
63
63 subdir('tests')
64 subdir('tests')
64
65
General Comments 0
You need to be logged in to leave comments. Login now