diff --git a/Core/Simulation/UnitConverterUtils.cpp b/Core/Simulation/UnitConverterUtils.cpp index 4754636a5bc48a9ed540e697d3137c44e209c627..723ab3517cf3737bf78e598033561cc1a4af7465 100644 --- a/Core/Simulation/UnitConverterUtils.cpp +++ b/Core/Simulation/UnitConverterUtils.cpp @@ -18,16 +18,6 @@ #include "Device/Detector/SphericalDetector.h" #include "Device/Instrument/Instrument.h" -std::unique_ptr<OutputData<double>> -UnitConverterUtils::createOutputData(const IUnitConverter& converter, Axes::Units units) -{ - std::unique_ptr<OutputData<double>> result = std::make_unique<OutputData<double>>(); - for (size_t i = 0; i < converter.dimension(); ++i) - result->addAxis(*converter.createConvertedAxis(i, units)); - result->setAllTo(0.0); - return result; -} - std::unique_ptr<IUnitConverter> UnitConverterUtils::createConverterForGISAS(const Instrument& instrument) { diff --git a/Core/Simulation/UnitConverterUtils.h b/Core/Simulation/UnitConverterUtils.h index c6289b1f5e6f944c4eecc16d82508aef316bc676..cfb4ac7c99de5fc6fe0baa00530ef61a2cbc3416 100644 --- a/Core/Simulation/UnitConverterUtils.h +++ b/Core/Simulation/UnitConverterUtils.h @@ -29,10 +29,6 @@ template <class T> class OutputData; namespace UnitConverterUtils { -//! Returns zero-valued output data array in specified units -std::unique_ptr<OutputData<double>> createOutputData(const IUnitConverter& converter, - Axes::Units units); - //! Helper factory function to use in GISASSimulation. Depending on the type of detector, //! returns either RectangularConverter or SphericalConverter. std::unique_ptr<IUnitConverter> createConverterForGISAS(const Instrument& instrument); diff --git a/Device/Unit/IUnitConverter.cpp b/Device/Unit/IUnitConverter.cpp index 416cf875b85f0c8c9e62b81d6bfdbea10904c85b..7c3fd4b86e241eb8a2691562545cdb50c11d25d3 100644 --- a/Device/Unit/IUnitConverter.cpp +++ b/Device/Unit/IUnitConverter.cpp @@ -16,6 +16,7 @@ #include "Device/Data/OutputData.h" #include "Device/Unit/AxisNames.h" + IUnitConverter::~IUnitConverter() = default; std::string IUnitConverter::axisName(size_t i_axis, const Axes::Units& units_type) const @@ -57,3 +58,14 @@ Axes::Units IUnitConverter::substituteDefaultUnits(Axes::Units units) const { return units == Axes::Units::DEFAULT ? defaultUnits() : units; } + + +std::unique_ptr<OutputData<double>> +UnitConverterUtils::createOutputData(const IUnitConverter& converter, Axes::Units units) +{ + std::unique_ptr<OutputData<double>> result = std::make_unique<OutputData<double>>(); + for (size_t i = 0; i < converter.dimension(); ++i) + result->addAxis(*converter.createConvertedAxis(i, units)); + result->setAllTo(0.0); + return result; +} diff --git a/Device/Unit/IUnitConverter.h b/Device/Unit/IUnitConverter.h index 226c0c8ef3248436c7062a38c4b931ee4de9cb37..01e89417b4387c32401a47c5074bf778438d535a 100644 --- a/Device/Unit/IUnitConverter.h +++ b/Device/Unit/IUnitConverter.h @@ -26,6 +26,7 @@ #include <string> #include <vector> + class IAxis; template <class T> class OutputData; @@ -74,6 +75,14 @@ private: virtual std::vector<std::map<Axes::Units, std::string>> createNameMaps() const = 0; }; + +namespace UnitConverterUtils { + +//! Returns zero-valued output data array in specified units +std::unique_ptr<OutputData<double>> createOutputData(const IUnitConverter& converter, + Axes::Units units); +} + #endif // USER_API #endif // BORNAGAIN_DEVICE_UNIT_IUNITCONVERTER_H diff --git a/GUI/coregui/Models/DataViewUtils.cpp b/GUI/coregui/Models/DataViewUtils.cpp index bed8a964442621797599d88c4d85b3363f8f328a..4b1dafa5f63c4c8b20874334d02d631d63ad7cc9 100644 --- a/GUI/coregui/Models/DataViewUtils.cpp +++ b/GUI/coregui/Models/DataViewUtils.cpp @@ -13,7 +13,7 @@ // ************************************************************************************************ #include "GUI/coregui/Models/DataViewUtils.h" -#include "Core/Simulation/UnitConverterUtils.h" +#include "Device/Unit/IUnitConverter.h" #include "GUI/coregui/Models/Data1DViewItem.h" #include "GUI/coregui/Models/DataItem.h" #include "GUI/coregui/Models/DataPropertyContainer.h" diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp index 032911b5ececd381f90b3fc8556799d2c3d14231..c21720fed8f52a174ed140fe06de32b5a417a4e5 100644 --- a/GUI/coregui/Models/JobItemUtils.cpp +++ b/GUI/coregui/Models/JobItemUtils.cpp @@ -14,7 +14,6 @@ #include "GUI/coregui/Models/JobItemUtils.h" #include "Core/Simulation/ISimulation.h" -#include "Core/Simulation/UnitConverterUtils.h" #include "GUI/coregui/Models/DataItem.h" #include "GUI/coregui/Models/DomainObjectBuilder.h" #include "GUI/coregui/Models/InstrumentItems.h" diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i index a2dd8151f191c28328b09f113f5f0f58fc89250a..41c715f7ba3436b096fba6c071885274d0ee8285 100644 --- a/auto/Wrap/doxygenCore.i +++ b/auto/Wrap/doxygenCore.i @@ -2683,11 +2683,6 @@ GISAS simulation with an extra long wavelength. // File: namespaceUnitConverterUtils.xml -%feature("docstring") UnitConverterUtils::createOutputData "std::unique_ptr< OutputData< double > > UnitConverterUtils::createOutputData(const IUnitConverter &converter, Axes::Units units) - -Returns zero-valued output data array in specified units. -"; - %feature("docstring") UnitConverterUtils::createConverterForGISAS "std::unique_ptr< IUnitConverter > UnitConverterUtils::createConverterForGISAS(const Instrument &instrument) Helper factory function to use in GISASSimulation. Depending on the type of detector, returns either RectangularConverter or SphericalConverter. diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i index e9458edc8a19e90d582de446ba34f70e8ce3b5c4..d77a1b060dc5f701d380ad2e83e65817a66144cf 100644 --- a/auto/Wrap/doxygenDevice.i +++ b/auto/Wrap/doxygenDevice.i @@ -2945,6 +2945,13 @@ Returns true if SimulatioResult agrees with data from reference file. "; +// File: namespaceUnitConverterUtils.xml +%feature("docstring") UnitConverterUtils::createOutputData "std::unique_ptr< OutputData< double > > UnitConverterUtils::createOutputData(const IUnitConverter &converter, Axes::Units units) + +Returns zero-valued output data array in specified units. +"; + + // File: Beam_8cpp.xml