diff --git a/GUI/Model/Device/PointwiseAxisItem.cpp b/GUI/Model/Device/PointwiseAxisItem.cpp index c03568880c8ac09868789375a288b99bf02e4359..74911ab0b332ebf3354e9fee9ddcc05d622ba1b9 100644 --- a/GUI/Model/Device/PointwiseAxisItem.cpp +++ b/GUI/Model/Device/PointwiseAxisItem.cpp @@ -90,8 +90,7 @@ QByteArray PointwiseAxisItem::serializeBinaryData() const if (!m_axis) return {}; - Powerfield<double> axisData; - axisData.addAxis(*m_axis); + Powerfield<double> axisData(*m_axis); std::stringstream ss; ReadWriteINT().writePowerfield(axisData, ss); diff --git a/GUI/Support/IO/IOUtils.cpp b/GUI/Support/IO/IOUtils.cpp index 96290bd1b7ceeb1b66e20ceae914f4d3f067571d..219796dbd15ce7b5fc55cc8972d6266469954611 100644 --- a/GUI/Support/IO/IOUtils.cpp +++ b/GUI/Support/IO/IOUtils.cpp @@ -14,14 +14,23 @@ #include "GUI/Support/IO/IOUtils.h" #include "Device/Data/Powerfield.h" +#include "Base/Util/Assert.h" std::unique_ptr<Powerfield<double>> GUI::Util::IO::binifyAxes(const Powerfield<double>& data) { - std::unique_ptr<Powerfield<double>> result(new Powerfield<double>); - for (size_t i = 0; i < data.rank(); ++i) { - const IAxis& axis = data.axis(i); - result->addAxis(FixedBinAxis(axis.axisName(), axis.size(), 0., axis.size())); - } + std::unique_ptr<Powerfield<double>> result; + if (data.rank()==1) { + const IAxis& X = data.axis(0); + result.reset(new Powerfield<double>( + FixedBinAxis(X.axisName(), X.size(), 0., X.size()))); + } else if (data.rank()==2) { + const IAxis& X = data.axis(0); + const IAxis& Y = data.axis(1); + result.reset(new Powerfield<double>( + FixedBinAxis(X.axisName(), X.size(), 0., X.size()), + FixedBinAxis(Y.axisName(), Y.size(), 0., Y.size()))); + } else + ASSERT(0); result->setRawDataVector(data.getRawDataVector()); return result; diff --git a/GUI/View/Loaders/QREDataLoader.cpp b/GUI/View/Loaders/QREDataLoader.cpp index 30d9928a3a8d0ebd734603ab1cc1b7ed37777842..0310bc9a1b030d19c7cf23989776ac5d3ef8523d 100644 --- a/GUI/View/Loaders/QREDataLoader.cpp +++ b/GUI/View/Loaders/QREDataLoader.cpp @@ -544,8 +544,7 @@ void QREDataLoader::createPowerfieldFromParsingResult(RealDataItem* item) const rVec.push_back(m_importResult.rValues[lineNr]); } - auto* oData = new Powerfield<double>(); - oData->addAxis(PointwiseAxis("qVector", qVec)); + auto* oData = new Powerfield<double>(PointwiseAxis("qVector", qVec)); oData->setRawDataVector(rVec); // -- Replacement of item->setImportData(std::move(data)); @@ -570,7 +569,7 @@ void QREDataLoader::createPowerfieldFromParsingResult(RealDataItem* item) const specularItem->setAxesRangeToData(); item->setNativeDataUnits(units_name); - item->setNativePowerfield(oData->clone()); // takes ownership of odata + item->setNativePowerfield(oData->clone()); // also takes ownership } QDataStream& operator<<(QDataStream& stream, const QREDataLoader::ImportSettings& s)