From 70164c24e6fbc97d12ff74bb8c260e755167de8e Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <svechnikovmv@gmail.com> Date: Tue, 4 Jul 2023 12:12:49 +0200 Subject: [PATCH] upd axes size --- GUI/Model/Device/RealItem.cpp | 11 ++++++++++- GUI/View/PlotUtil/ColorMap.cpp | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/GUI/Model/Device/RealItem.cpp b/GUI/Model/Device/RealItem.cpp index 4f9bf64a13f..8bcbf99deeb 100644 --- a/GUI/Model/Device/RealItem.cpp +++ b/GUI/Model/Device/RealItem.cpp @@ -13,9 +13,11 @@ // ************************************************************************************************ #include "GUI/Model/Device/RealItem.h" +#include "Base/Axis/Scale.h" #include "Device/Coord/ICoordSystem.h" #include "Device/Data/DataUtil.h" #include "Device/Data/Datafield.h" +#include "GUI/Model/Axis/AmplitudeAxisItem.h" #include "GUI/Model/Data/DataItemUtil.h" #include "GUI/Model/Data/IntensityDataItem.h" #include "GUI/Model/Data/ProjectionItems.h" @@ -259,7 +261,14 @@ void RealItem::rotateData() // -- now rotate data const Datafield* input = intensityDataItem()->c_field(); - intensityDataItem()->setDatafield(DataUtil::Data::createRearrangedDataSet(*input, 1).release()); + Datafield* output = DataUtil::Data::createRearrangedDataSet(*input, 1).release(); + + // upd AxesItems + intensityDataItem()->xAxisItem()->setBinCount(output->xAxis().size()); + intensityDataItem()->yAxisItem()->setBinCount(output->yAxis().size()); + + // apply rotated data + intensityDataItem()->setDatafield(output); intensityDataItem()->setAxesRangeToData(); } diff --git a/GUI/View/PlotUtil/ColorMap.cpp b/GUI/View/PlotUtil/ColorMap.cpp index 4b2b196eac6..1679c3c2193 100644 --- a/GUI/View/PlotUtil/ColorMap.cpp +++ b/GUI/View/PlotUtil/ColorMap.cpp @@ -365,6 +365,8 @@ void ColorMap::setDataFromItem() int nx(intensityItem()->xSize()); // outside of the loop because of slow retrieval int ny(intensityItem()->ySize()); + m_colorMap->data()->setSize(nx, ny); + for (int ix = 0; ix < nx; ++ix) for (int iy = 0; iy < ny; ++iy) m_colorMap->data()->setCell(ix, iy, (*data)[iy + ny * ix]); -- GitLab