From 522bb785789b8e3ee51fb1ea3ab2aa622d4cfb6b 2017-08-17 08:24:20 From: Alexandre Leroux Date: 2017-08-17 08:24:20 Subject: [PATCH] Updates data series creation according to the value type (vector or scalar) --- diff --git a/plugins/amda/src/AmdaResultParser.cpp b/plugins/amda/src/AmdaResultParser.cpp index 7b496a6..73af4a0 100644 --- a/plugins/amda/src/AmdaResultParser.cpp +++ b/plugins/amda/src/AmdaResultParser.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -188,7 +189,28 @@ std::shared_ptr AmdaResultParser::readTxt(const QString &filePath, stream.seek(0); // returns to the beginning of the file auto results = readResults(stream, valueType); + // Creates data series + switch (valueType) { + case ValueType::SCALAR: + Q_ASSERT(results.second.size() == 1); + return std::make_shared( + std::move(results.first), std::move(results.second.takeFirst()), xAxisUnit, Unit{}); + case ValueType::VECTOR: { + Q_ASSERT(results.second.size() == 3); + auto xValues = results.second.takeFirst(); + auto yValues = results.second.takeFirst(); + auto zValues = results.second.takeFirst(); + return std::make_shared(std::move(results.first), std::move(xValues), + std::move(yValues), std::move(zValues), xAxisUnit, + Unit{}); + } + case ValueType::UNKNOWN: + // Invalid case + break; + } - return std::make_shared(std::move(results.first), std::move(results.second), - xAxisUnit, Unit{}); + // Invalid cases + qCCritical(LOG_AmdaResultParser()) + << QObject::tr("Can't create data series: unsupported value type"); + return nullptr; }