/
MaximU
/
arraywidget
Обзор
Документация
Войти
/
MaximU
/
arraywidget
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
arrayrasterdata.cpp
83 строки
3 KB
Максим
Отформатированы коментарии Doxygen к функциям/классам в стиле Qt.
03 июл 2026, 22:44
03 июл 2026, 22:44
cd11e22
Код
Авторство
О чём код?
#include "arrayrasterdata.h" #include <float.h> #include <math.h> /*! * \brief Конструктор. */ ArrayRasterData::ArrayRasterData() : QwtRasterData() { mDimensionMap[0] = 0; mDimensionMap[1] = 1; mDimensionMap[2] = 2; mDimensionMap[3] = 3; } /*! * \brief Деструктор. */ ArrayRasterData::~ArrayRasterData() { } /*! * \brief Возвращает значение, соответствующее координатам. * \param x Координата x. * \param y Координата y. * \return Значение, соответствующее координатам. */ double ArrayRasterData::value(double x, double y) const { double value = FLT_MAX; int ix = (int)floor(x + 0.5); int iy = (int)floor(y + 0.5); int indexes[DimensionCount]; indexes[mDimensionMap[0]] = mIndex0; indexes[mDimensionMap[1]] = mIndex1; indexes[mDimensionMap[2]] = iy - mDataProvider->dimensionBase(mDimensionMap[2]); indexes[mDimensionMap[3]] = ix - mDataProvider->dimensionBase(mDimensionMap[3]); int dimensionCount0 = mDataProvider->dimensionCount(0); int dimensionCount1 = mDataProvider->dimensionCount(1); int dimensionCount2 = mDataProvider->dimensionCount(2); int dimensionCount3 = mDataProvider->dimensionCount(3); if ((dimensionCount0 == 0 || (0 <= indexes[0] && indexes[0] < dimensionCount0)) && (dimensionCount1 == 0 || (0 <= indexes[1] && indexes[1] < dimensionCount1)) && 0 <= indexes[2] && indexes[2] < dimensionCount2 && 0 <= indexes[3] && indexes[3] < dimensionCount3) { value = mFunc(mDataProvider->value(indexes[0], indexes[1], indexes[2], indexes[3])); } return value; } /*! * \brief Заполняет входные данные. * \param provider Провайдер данных для отображения. * \param index0 Индекс размерности №0. * \param index1 Индекс размерности №1. * \param min Значение, соответствующее нижней границе цветового градиента. * \param max Значение, соответствующее верхней границе цветового градиента. * \param pfunc Указатель на функцию преобразования значения для отображения. * \param dimensionIndex0 0-й индекс в карте отображения размерностей массива. * \param dimensionIndex1 1-й индекс в карте отображения размерностей массива. * \param dimensionIndex2 2-й индекс в карте отображения размерностей массива. * \param dimensionIndex3 3-й индекс в карте отображения размерностей массива. */ void ArrayRasterData::setArrayRasterDataArg(ArrayDataProvider *provider, int index0, int index1, double min, double max, double (* pfunc)(double), int dimensionIndex0, int dimensionIndex1, int dimensionIndex2, int dimensionIndex3) { mDataProvider = provider; setInterval(Qt::ZAxis, QwtInterval(min, max)); mIndex0 = index0; mIndex1 = index1; mFunc = pfunc; mDimensionMap[0] = dimensionIndex0; mDimensionMap[1] = dimensionIndex1; mDimensionMap[2] = dimensionIndex2; mDimensionMap[3] = dimensionIndex3; }