##// END OF EJS Templates
Add SqpDateTime struct
perrinel -
r191:e7b5abd4403a
parent child
Show More
@@ -0,0 +1,15
1 #ifndef SCIQLOP_SQPDATETIME_H
2 #define SCIQLOP_SQPDATETIME_H
3
4 /**
5 * @brief The SqpDateTime struct holds the information of time parameters
6 * @sa SqpDateTime
7 */
8 struct SqpDateTime {
9 /// Start time
10 double m_TStart;
11 /// End time
12 double m_TEnd;
13 };
14
15 #endif // SCIQLOP_SQPDATETIME_H
@@ -1,16 +1,15
1 1 #ifndef SCIQLOP_DATAPROVIDERPARAMETERS_H
2 2 #define SCIQLOP_DATAPROVIDERPARAMETERS_H
3 3
4 #include "SqpDateTime.h"
5
4 6 /**
5 7 * @brief The DataProviderParameters struct holds the information needed to retrieve data from a
6 8 * data provider
7 9 * @sa IDataProvider
8 10 */
9 11 struct DataProviderParameters {
10 /// Start time
11 double m_TStart;
12 /// End time
13 double m_TEnd;
12 SqpDateTime m_Time;
14 13 };
15 14
16 15 #endif // SCIQLOP_DATAPROVIDERPARAMETERS_H
@@ -1,30 +1,32
1 1 #include "CosinusProvider.h"
2 2
3 3 #include <Data/DataProviderParameters.h>
4 4 #include <Data/ScalarSeries.h>
5 5
6 6 #include <cmath>
7 7
8 8 std::unique_ptr<IDataSeries>
9 9 CosinusProvider::retrieveData(const DataProviderParameters &parameters) const
10 10 {
11 auto dateTime = parameters.m_Time;
12
11 13 // Gets the timerange from the parameters
12 auto start = parameters.m_TStart;
13 auto end = parameters.m_TEnd;
14 auto start = dateTime.m_TStart;
15 auto end = dateTime.m_TEnd;
14 16
15 17 // We assure that timerange is valid
16 18 if (end < start) {
17 19 std::swap(start, end);
18 20 }
19 21
20 22 // Generates scalar series containing cosinus values (one value per second)
21 23 auto scalarSeries
22 24 = std::make_unique<ScalarSeries>(end - start, Unit{QStringLiteral("t"), true}, Unit{});
23 25
24 26 auto dataIndex = 0;
25 27 for (auto time = start; time < end; ++time, ++dataIndex) {
26 28 scalarSeries->setData(dataIndex, time, std::cos(time));
27 29 }
28 30
29 31 return scalarSeries;
30 32 }
General Comments 0
You need to be logged in to leave comments. Login now