/
MaximU
/
arraywidget
Обзор
Документация
Войти
/
MaximU
/
arraywidget
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
arraydataprovider.h
73 строки
3 KB
Максим
Отформатированы коментарии Doxygen к функциям/классам в стиле Qt.
03 июл 2026, 22:44
03 июл 2026, 22:44
cd11e22
Код
Авторство
О чём код?
#ifndef ARRAYDATAPROVIDER_H #define ARRAYDATAPROVIDER_H #include "dataprovider.h" /*! * \brief Базовый класс провайдеров данных. */ class ArrayDataProvider : public DataProvider { static const int DimensionCount = 4; //!< Максимальная размерность отображаемого массива. public: /*! * \brief Перечисление видов отображения данных. */ enum PlotItemTypes { PlotItemTypeUndefined, //!< Не определено. PlotItemTypeCurve, //!< Ломаная линия. PlotItemTypeHistogram, //!< Гистограмма. }; public: explicit ArrayDataProvider(PlotItemTypes itemType = PlotItemTypeCurve); ~ArrayDataProvider() override; /*! * \brief Вычисляет минимум и максимум значений для заданных индексов. * \param min Возвращаемый минимум. * \param max Возвращаемый максимум. * \param index0 Индекс измерения №0. * \param index1 Индекс измерения №1. * \param index2 Индекс измерения №2. * \param index3 Индекс измерения №3. */ virtual void minMax(double &min, double &max, int index0, int index1, int index2, int index3) = 0; /*! * \brief Возвращает значение элемента массива. * \param index0 Индекс измерения №0. * \param index1 Индекс измерения №1. * \param index2 Индекс измерения №2. * \param index3 Индекс измерения №3. * \return Значение элемента. */ virtual double value(int index0, int index1, int index2, int index3) = 0; /*! * \brief Заполняет массив значениями вдоль изменяемой размерности. * \param ptr Указатель на буфер для записи значений. * \param pfunc Функция преобразования значения для отображения. * \param index0 Индекс измерения №0. * \param index1 Индекс измерения №1. * \param index2 Индекс измерения №2. * \param index3 Индекс измерения №3. */ virtual void fetch(double *ptr, double (* pfunc)(double), int index0, int index1, int index2, int index3) = 0; void setDimensionCount(int dimension, int count); int dimensionCount(int dimension); void setDimensionBase(int dimension, int base); int dimensionBase(int dimension); bool isNodB(); void setNodB(bool nodB); PlotItemTypes plotItemType(); protected: int mDimensionCounts[DimensionCount]; //!< Количества элементов. int mDimensionBases[DimensionCount]; //!< Отображаемые начальные индексы. private: bool mNodB = false; //!< Признак запрета отображения в дБ. Полезно, например, при отображении фазы сигнала. PlotItemTypes mPlotItemType; //!< Вид отображения данных провайдера. }; #endif // ARRAYDATAPROVIDER_H