##// END OF EJS Templates
Fix the cosinus bug....
Fix the cosinus bug. The provider now works on the variable controller thread instead of the main thread. That means the visu is still usable during zoom operation

File last commit:

r217:508df86e5db1
r276:3a08c66e4df2
Show More
IDataSeries.h
54 lines | 1.3 KiB | text/x-c | CLexer
#ifndef SCIQLOP_IDATASERIES_H
#define SCIQLOP_IDATASERIES_H
#include <memory>
#include <QObject>
#include <QString>
template <int Dim>
class ArrayData;
struct Unit {
explicit Unit(const QString &name = {}, bool timeUnit = false)
: m_Name{name}, m_TimeUnit{timeUnit}
{
}
QString m_Name; ///< Unit name
bool m_TimeUnit; ///< The unit is a unit of time
};
/**
* @brief The IDataSeries aims to declare a data series.
*
* A data series is an entity that contains at least :
* - one dataset representing the x-axis
* - one dataset representing the values
*
* Each dataset is represented by an ArrayData, and is associated with a unit.
*
* An ArrayData can be unidimensional or two-dimensional, depending on the implementation of the
* IDataSeries. The x-axis dataset is always unidimensional.
*
* @sa ArrayData
*/
class IDataSeries {
public:
virtual ~IDataSeries() noexcept = default;
/// Returns the x-axis dataset
virtual std::shared_ptr<ArrayData<1> > xAxisData() = 0;
virtual Unit xAxisUnit() const = 0;
virtual Unit valuesUnit() const = 0;
virtual void merge(IDataSeries *dataSeries) = 0;
};
// Required for using shared_ptr in signals/slots
Q_DECLARE_METATYPE(std::shared_ptr<IDataSeries>)
#endif // SCIQLOP_IDATASERIES_H