From 3f429990fbc965bb135c30ea8752d75c5e339c43 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Wed, 21 Apr 2021 18:08:38 +0200 Subject: [PATCH] AxisNames: fct -> const --- Core/Scan/UnitConverter1D.cpp | 4 +- Device/Detector/SimpleUnitConverters.cpp | 16 +- Device/Unit/AxisNames.cpp | 138 +++++++----------- Device/Unit/AxisNames.h | 18 +-- GUI/coregui/DataLoaders/QREDataLoader.cpp | 2 +- GUI/coregui/utils/ImportDataInfo.cpp | 4 +- .../UnitTests/GUI/TestCsvImportAssistant.cpp | 2 +- auto/Wrap/doxygenDevice.i | 26 ---- 8 files changed, 76 insertions(+), 134 deletions(-) diff --git a/Core/Scan/UnitConverter1D.cpp b/Core/Scan/UnitConverter1D.cpp index 15b0292eef0..d4358b52ad6 100644 --- a/Core/Scan/UnitConverter1D.cpp +++ b/Core/Scan/UnitConverter1D.cpp @@ -159,7 +159,7 @@ UnitConverterConvSpec::UnitConverterConvSpec(const UnitConverterConvSpec& other) std::vector<std::map<Axes::Units, std::string>> UnitConverterConvSpec::createNameMaps() const { std::vector<std::map<Axes::Units, std::string>> result; - result.push_back(AxisNames::InitSpecAxis()); + result.push_back(AxisNames::specAxis); return result; } @@ -234,7 +234,7 @@ UnitConverterQSpec::UnitConverterQSpec(const UnitConverterQSpec& other) std::vector<std::map<Axes::Units, std::string>> UnitConverterQSpec::createNameMaps() const { std::vector<std::map<Axes::Units, std::string>> result; - result.push_back(AxisNames::InitSpecAxisQ()); + result.push_back(AxisNames::specAxisQ); return result; } diff --git a/Device/Detector/SimpleUnitConverters.cpp b/Device/Detector/SimpleUnitConverters.cpp index 2dd7e529f93..79e6be5814d 100644 --- a/Device/Detector/SimpleUnitConverters.cpp +++ b/Device/Detector/SimpleUnitConverters.cpp @@ -194,8 +194,8 @@ double SphericalConverter::calculateValue(size_t i_axis, Axes::Units units_type, std::vector<std::map<Axes::Units, std::string>> SphericalConverter::createNameMaps() const { std::vector<std::map<Axes::Units, std::string>> result; - result.push_back(AxisNames::InitSphericalAxis0()); - result.push_back(AxisNames::InitSphericalAxis1()); + result.push_back(AxisNames::sphericalAxis0); + result.push_back(AxisNames::sphericalAxis1); return result; } @@ -281,8 +281,8 @@ double RectangularConverter::calculateValue(size_t i_axis, Axes::Units units_typ std::vector<std::map<Axes::Units, std::string>> RectangularConverter::createNameMaps() const { std::vector<std::map<Axes::Units, std::string>> result; - result.push_back(AxisNames::InitRectangularAxis0()); - result.push_back(AxisNames::InitRectangularAxis1()); + result.push_back(AxisNames::rectangularAxis0); + result.push_back(AxisNames::rectangularAxis1); return result; } @@ -350,8 +350,8 @@ double OffSpecularConverter::calculateValue(size_t, Axes::Units units_type, doub std::vector<std::map<Axes::Units, std::string>> OffSpecularConverter::createNameMaps() const { std::vector<std::map<Axes::Units, std::string>> result; - result.push_back(AxisNames::InitOffSpecularAxis0()); - result.push_back(AxisNames::InitOffSpecularAxis1()); + result.push_back(AxisNames::offSpecularAxis0); + result.push_back(AxisNames::offSpecularAxis1); return result; } @@ -440,8 +440,8 @@ double DepthProbeConverter::calculateValue(size_t i_axis, Axes::Units units_type std::vector<std::map<Axes::Units, std::string>> DepthProbeConverter::createNameMaps() const { std::vector<std::map<Axes::Units, std::string>> result; - result.push_back(AxisNames::InitSpecAxis()); - result.push_back(AxisNames::InitSampleDepthAxis()); + result.push_back(AxisNames::specAxis); + result.push_back(AxisNames::sampleDepthAxis); return result; } diff --git a/Device/Unit/AxisNames.cpp b/Device/Unit/AxisNames.cpp index 62aa869c3a7..8925a5c994f 100644 --- a/Device/Unit/AxisNames.cpp +++ b/Device/Unit/AxisNames.cpp @@ -16,88 +16,59 @@ #include <map> namespace AxisNames { + // For spherical detectors in GISAS simulations -std::map<Axes::Units, std::string> InitSphericalAxis0() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "X [nbins]"; - result[Axes::Units::RADIANS] = "phi_f [rad]"; - result[Axes::Units::DEGREES] = "phi_f [deg]"; - result[Axes::Units::QSPACE] = "Qy [1/nm]"; - result[Axes::Units::QXQY] = "Qx [1/nm]"; - return result; -} -std::map<Axes::Units, std::string> InitSphericalAxis1() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "Y [nbins]"; - result[Axes::Units::RADIANS] = "alpha_f [rad]"; - result[Axes::Units::DEGREES] = "alpha_f [deg]"; - result[Axes::Units::QSPACE] = "Qz [1/nm]"; - result[Axes::Units::QXQY] = "Qy [1/nm]"; - return result; -} +const std::map<Axes::Units, std::string> sphericalAxis0 = { + { Axes::Units::NBINS, "X [nbins]" }, + { Axes::Units::RADIANS, "phi_f [rad]" }, + { Axes::Units::DEGREES, "phi_f [deg]" }, + { Axes::Units::QSPACE, "Qy [1/nm]" }, + { Axes::Units::QXQY, "Qx [1/nm]" } }; +const std::map<Axes::Units, std::string> sphericalAxis1 = { + { Axes::Units::NBINS, "Y [nbins]" }, + { Axes::Units::RADIANS, "alpha_f [rad]" }, + { Axes::Units::DEGREES, "alpha_f [deg]" }, + { Axes::Units::QSPACE, "Qz [1/nm]" }, + { Axes::Units::QXQY, "Qy [1/nm]" } }; + // For rectangular detectors in GISAS simulations -std::map<Axes::Units, std::string> InitRectangularAxis0() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "X [nbins]"; - result[Axes::Units::RADIANS] = "phi_f [rad]"; - result[Axes::Units::DEGREES] = "phi_f [deg]"; - result[Axes::Units::MM] = "X [mm]"; - result[Axes::Units::QSPACE] = "Qy [1/nm]"; - result[Axes::Units::QXQY] = "Qx [1/nm]"; - return result; -} -std::map<Axes::Units, std::string> InitRectangularAxis1() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "Y [nbins]"; - result[Axes::Units::RADIANS] = "alpha_f [rad]"; - result[Axes::Units::DEGREES] = "alpha_f [deg]"; - result[Axes::Units::MM] = "Y [mm]"; - result[Axes::Units::QSPACE] = "Qz [1/nm]"; - result[Axes::Units::QXQY] = "Qy [1/nm]"; - return result; -} +const std::map<Axes::Units, std::string> rectangularAxis0 = { + { Axes::Units::NBINS, "X [nbins]" }, + { Axes::Units::RADIANS, "phi_f [rad]" }, + { Axes::Units::DEGREES, "phi_f [deg]" }, + { Axes::Units::MM, "X [mm]" }, + { Axes::Units::QSPACE, "Qy [1/nm]" }, + { Axes::Units::QXQY, "Qx [1/nm]" } }; +const std::map<Axes::Units, std::string> rectangularAxis1 = { + { Axes::Units::NBINS, "Y [nbins]" }, + { Axes::Units::RADIANS, "alpha_f [rad]" }, + { Axes::Units::DEGREES, "alpha_f [deg]" }, + { Axes::Units::MM, "Y [mm]" }, + { Axes::Units::QSPACE, "Qz [1/nm]" }, + { Axes::Units::QXQY, "Qy [1/nm]" } }; + // For off-specular simulations (both spherical and rectangular detectors) // Currently 'mm' is not supported for the y-axis -std::map<Axes::Units, std::string> InitOffSpecularAxis0() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "X [nbins]"; - result[Axes::Units::RADIANS] = "alpha_i [rad]"; - result[Axes::Units::DEGREES] = "alpha_i [deg]"; - return result; -} -std::map<Axes::Units, std::string> InitOffSpecularAxis1() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "Y [nbins]"; - result[Axes::Units::RADIANS] = "alpha_f [rad]"; - result[Axes::Units::DEGREES] = "alpha_f [deg]"; - return result; -} +const std::map<Axes::Units, std::string> offSpecularAxis0 = { + { Axes::Units::NBINS, "X [nbins]" }, + { Axes::Units::RADIANS, "alpha_i [rad]" }, + { Axes::Units::DEGREES, "alpha_i [deg]" }}; +const std::map<Axes::Units, std::string> offSpecularAxis1 = { + { Axes::Units::NBINS, "Y [nbins]" }, + { Axes::Units::RADIANS, "alpha_f [rad]" }, + { Axes::Units::DEGREES, "alpha_f [deg]" }}; -std::map<Axes::Units, std::string> InitSpecAxis() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "X [nbins]"; - result[Axes::Units::RADIANS] = "alpha_i [rad]"; - result[Axes::Units::DEGREES] = "alpha_i [deg]"; - result[Axes::Units::QSPACE] = "Q [1/nm]"; - result[Axes::Units::RQ4] = "Q [1/nm]"; - return result; -} +const std::map<Axes::Units, std::string> specAxis = { + { Axes::Units::NBINS, "X [nbins]" }, + { Axes::Units::RADIANS, "alpha_i [rad]" }, + { Axes::Units::DEGREES, "alpha_i [deg]" }, + { Axes::Units::QSPACE, "Q [1/nm]" }, + { Axes::Units::RQ4, "Q [1/nm]" } }; -std::map<Axes::Units, std::string> InitSpecAxisQ() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "X [nbins]"; - result[Axes::Units::QSPACE] = "Q [1/nm]"; - result[Axes::Units::RQ4] = "Q [1/nm]"; - return result; -} +const std::map<Axes::Units, std::string> specAxisQ = { + { Axes::Units::NBINS, "X [nbins]" }, + { Axes::Units::QSPACE, "Q [1/nm]" }, + { Axes::Units::RQ4, "Q [1/nm]" } }; // corner case: axis corresponding to the position // across sample is accepts only bins and nanometers, @@ -105,14 +76,11 @@ std::map<Axes::Units, std::string> InitSpecAxisQ() // converter correspond to inclination angular axis. // For this reason depth axis map returns always // nanometers except for bins. -std::map<Axes::Units, std::string> InitSampleDepthAxis() -{ - std::map<Axes::Units, std::string> result; - result[Axes::Units::NBINS] = "Y [nbins]"; - result[Axes::Units::RADIANS] = "Position [nm]"; - result[Axes::Units::DEGREES] = "Position [nm]"; - result[Axes::Units::QSPACE] = "Position [nm]"; - return result; -} + +const std::map<Axes::Units, std::string> sampleDepthAxis = { + { Axes::Units::NBINS, "Y [nbins]" }, + { Axes::Units::RADIANS, "Position [nm]" }, + { Axes::Units::DEGREES, "Position [nm]" }, + { Axes::Units::QSPACE, "Position [nm]" } }; } // namespace AxisNames diff --git a/Device/Unit/AxisNames.h b/Device/Unit/AxisNames.h index 31fee6d91ad..356c00af5ee 100644 --- a/Device/Unit/AxisNames.h +++ b/Device/Unit/AxisNames.h @@ -34,15 +34,15 @@ const std::map<Axes::Units, const char*> axisUnitLabel = { //! @ingroup detector namespace AxisNames { -std::map<Axes::Units, std::string> InitSphericalAxis0(); -std::map<Axes::Units, std::string> InitSphericalAxis1(); -std::map<Axes::Units, std::string> InitRectangularAxis0(); -std::map<Axes::Units, std::string> InitRectangularAxis1(); -std::map<Axes::Units, std::string> InitOffSpecularAxis0(); -std::map<Axes::Units, std::string> InitOffSpecularAxis1(); -std::map<Axes::Units, std::string> InitSpecAxis(); -std::map<Axes::Units, std::string> InitSpecAxisQ(); -std::map<Axes::Units, std::string> InitSampleDepthAxis(); +extern const std::map<Axes::Units, std::string> sphericalAxis0; +extern const std::map<Axes::Units, std::string> sphericalAxis1; +extern const std::map<Axes::Units, std::string> rectangularAxis0; +extern const std::map<Axes::Units, std::string> rectangularAxis1; +extern const std::map<Axes::Units, std::string> offSpecularAxis0; +extern const std::map<Axes::Units, std::string> offSpecularAxis1; +extern const std::map<Axes::Units, std::string> specAxis; +extern const std::map<Axes::Units, std::string> specAxisQ; +extern const std::map<Axes::Units, std::string> sampleDepthAxis; } // namespace AxisNames #endif // BORNAGAIN_DEVICE_UNIT_AXISNAMES_H diff --git a/GUI/coregui/DataLoaders/QREDataLoader.cpp b/GUI/coregui/DataLoaders/QREDataLoader.cpp index 15a218831ee..c8738653f71 100644 --- a/GUI/coregui/DataLoaders/QREDataLoader.cpp +++ b/GUI/coregui/DataLoaders/QREDataLoader.cpp @@ -561,7 +561,7 @@ void QREDataLoader::createOutputDataFromParsingResult(RealDataItem* item) const specularItem->setItemValue(SpecularDataItem::P_AXES_UNITS, combo.variant()); specularItem->getItem(SpecularDataItem::P_AXES_UNITS)->setVisible(true); - auto label_map = AxisNames::InitSpecAxis(); + auto label_map = AxisNames::specAxis; const auto xAxisTitle = QString::fromStdString(label_map[Axes::Units::QSPACE]); const auto yAxisTitle = "Signal [a.u.]"; // taken from ImportDataInfo::axisLabel diff --git a/GUI/coregui/utils/ImportDataInfo.cpp b/GUI/coregui/utils/ImportDataInfo.cpp index 773914d25d6..beb67363b1f 100644 --- a/GUI/coregui/utils/ImportDataInfo.cpp +++ b/GUI/coregui/utils/ImportDataInfo.cpp @@ -22,7 +22,7 @@ namespace { std::vector<Axes::Units> specularUnits() { std::vector<Axes::Units> result; - const auto units_map = AxisNames::InitSpecAxis(); + const auto units_map = AxisNames::specAxis; for (auto& pair : units_map) result.push_back(pair.first); return result; @@ -104,7 +104,7 @@ QString ImportDataInfo::axisLabel(size_t axis_index) const if (axis_index > 0) return "Signal [a.u.]"; - auto label_map = AxisNames::InitSpecAxis(); + auto label_map = AxisNames::specAxis; return QString::fromStdString(label_map[m_units]); } throw GUIHelpers::Error("Error in ImportDataInfo::axisLabel: unsupported data type"); diff --git a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp index 7ee4034ef42..df737e845bf 100644 --- a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp +++ b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp @@ -91,6 +91,6 @@ TEST_F(TestCsvImportAssistant, test_readFile) EXPECT_EQ(AllocSize, 3u); EXPECT_EQ(RawDataVec, expected); EXPECT_EQ(UnitsLabel, JobItemUtils::nameFromAxesUnits(Axes::Units::DEGREES)); - EXPECT_EQ(AxisLabel0, QString::fromStdString(AxisNames::InitSpecAxis()[Axes::Units::DEGREES])); + EXPECT_EQ(AxisLabel0, QString::fromStdString(AxisNames::specAxis.at(Axes::Units::DEGREES))); EXPECT_EQ(AxisLabel1, SpecularDataAxesNames::y_axis_default_name); } diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i index 8dcf86a4656..e9458edc8a1 100644 --- a/auto/Wrap/doxygenDevice.i +++ b/auto/Wrap/doxygenDevice.i @@ -2789,32 +2789,6 @@ Creates 2D vector from OutputData. // File: namespaceAxisNames.xml -%feature("docstring") AxisNames::InitSphericalAxis0 "std::map< Axes::Units, std::string > AxisNames::InitSphericalAxis0() -"; - -%feature("docstring") AxisNames::InitSphericalAxis1 "std::map< Axes::Units, std::string > AxisNames::InitSphericalAxis1() -"; - -%feature("docstring") AxisNames::InitRectangularAxis0 "std::map< Axes::Units, std::string > AxisNames::InitRectangularAxis0() -"; - -%feature("docstring") AxisNames::InitRectangularAxis1 "std::map< Axes::Units, std::string > AxisNames::InitRectangularAxis1() -"; - -%feature("docstring") AxisNames::InitOffSpecularAxis0 "std::map< Axes::Units, std::string > AxisNames::InitOffSpecularAxis0() -"; - -%feature("docstring") AxisNames::InitOffSpecularAxis1 "std::map< Axes::Units, std::string > AxisNames::InitOffSpecularAxis1() -"; - -%feature("docstring") AxisNames::InitSpecAxis "std::map< Axes::Units, std::string > AxisNames::InitSpecAxis() -"; - -%feature("docstring") AxisNames::InitSpecAxisQ "std::map< Axes::Units, std::string > AxisNames::InitSpecAxisQ() -"; - -%feature("docstring") AxisNames::InitSampleDepthAxis "std::map< Axes::Units, std::string > AxisNames::InitSampleDepthAxis() -"; // File: namespaceboost_1_1geometry.xml -- GitLab