From ae8e949c7410c43f210dd8273730247a9189ca89 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Thu, 19 May 2022 15:25:18 +0200
Subject: [PATCH] + ICoordSystem::convertedAxes

---
 Device/Coord/ICoordSystem.cpp | 12 ++++++++----
 Device/Coord/ICoordSystem.h   |  2 ++
 auto/Wrap/doxygenDevice.i     |  3 +++
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/Device/Coord/ICoordSystem.cpp b/Device/Coord/ICoordSystem.cpp
index 02febf1bd25..e0d3500fe17 100644
--- a/Device/Coord/ICoordSystem.cpp
+++ b/Device/Coord/ICoordSystem.cpp
@@ -18,13 +18,17 @@
 
 ICoordSystem::~ICoordSystem() = default;
 
-std::unique_ptr<Powerfield<double>> ICoordSystem::createPowerfield(Coords units) const
+std::vector<IAxis*> ICoordSystem::convertedAxes(Coords units) const
 {
-    std::vector<IAxis*> axes;
+    std::vector<IAxis*> ret;
     for (size_t i = 0; i < rank(); ++i)
-        axes.emplace_back(createConvertedAxis(i, units));
+        ret.emplace_back(createConvertedAxis(i, units));
+    return ret;
+}
 
-    std::unique_ptr<Powerfield<double>> result(new Powerfield<double>(axes));
+std::unique_ptr<Powerfield<double>> ICoordSystem::createPowerfield(Coords units) const
+{
+    std::unique_ptr<Powerfield<double>> result(new Powerfield<double>(convertedAxes(units)));
     result->setAllTo(0.0);
     return result;
 }
diff --git a/Device/Coord/ICoordSystem.h b/Device/Coord/ICoordSystem.h
index a3857d218b8..3dfa4ebdab5 100644
--- a/Device/Coord/ICoordSystem.h
+++ b/Device/Coord/ICoordSystem.h
@@ -60,6 +60,8 @@ public:
 
     virtual IAxis* createConvertedAxis(size_t i_axis, Coords units) const = 0;
 
+    std::vector<IAxis*> convertedAxes(Coords units) const;
+
     //! Creates Powerfield array in converter units.
     virtual Powerfield<double>* createConvertedData(const Powerfield<double>& data,
                                                     Coords units) const;
diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i
index cbdf7def5c1..20acc3ac571 100644
--- a/auto/Wrap/doxygenDevice.i
+++ b/auto/Wrap/doxygenDevice.i
@@ -905,6 +905,9 @@ Returns zero-valued output data array in specified units.
 %feature("docstring")  ICoordSystem::createConvertedAxis "virtual IAxis* ICoordSystem::createConvertedAxis(size_t i_axis, Coords units) const =0
 ";
 
+%feature("docstring")  ICoordSystem::convertedAxes "std::vector< IAxis * > ICoordSystem::convertedAxes(Coords units) const
+";
+
 %feature("docstring")  ICoordSystem::createConvertedData "Powerfield< double > * ICoordSystem::createConvertedData(const Powerfield< double > &data, Coords units) const
 
 Creates  Powerfield array in converter units. 
-- 
GitLab