diff --git a/GUI/Model/Device/InstrumentCollection.h b/GUI/Model/Device/InstrumentCollection.h index 44ff4f0464cde79f93881da75346cddcc7024143..3dfb7fa24d70ae7b7e8a523a673f22daa461d4c1 100644 --- a/GUI/Model/Device/InstrumentCollection.h +++ b/GUI/Model/Device/InstrumentCollection.h @@ -41,6 +41,8 @@ public: void serialize(Streamer& s); + void emplace_back(InstrumentItem* item) { m_instruments.push_back(item); } // TODO Qt6 emplace + //! Inserts a deep copy (also of any non xml data in a pointwise axis) //! The id will not be copied, but a new unique one will be created //! Returns the newly created instrument. diff --git a/GUI/Model/FromCore/GUIExamplesFactory.cpp b/GUI/Model/FromCore/GUIExamplesFactory.cpp index fc3bbe2f56cb60e4bec737d1f1daa89c3fe77605..ed0b5dfb47e7c1753f79d6709d65f8d6aed41be2 100644 --- a/GUI/Model/FromCore/GUIExamplesFactory.cpp +++ b/GUI/Model/FromCore/GUIExamplesFactory.cpp @@ -14,8 +14,8 @@ #include "GUI/Model/FromCore/GUIExamplesFactory.h" #include "Base/Util/Assert.h" -#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "GUI/Model/FromCore/ItemizeSample.h" +#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "Sample/Multilayer/MultiLayer.h" #include "Sample/StandardSamples/ExemplarySamples.h" #include <QMap> diff --git a/GUI/Model/FromCore/ItemizeSimulation.cpp b/GUI/Model/FromCore/ItemizeSimulation.cpp index 52c1b9000a31c36a8cc0ee82567ea3ef5c982681..8da32fdc95eaae447a34c8b6464a9cd52c4556f4 100644 --- a/GUI/Model/FromCore/ItemizeSimulation.cpp +++ b/GUI/Model/FromCore/ItemizeSimulation.cpp @@ -207,9 +207,8 @@ void setDistribution(BeamDistributionItem* part_distr_item, ParameterDistributio distItem->setLimits(par_distr.getLimits().scaledLimits(factor)); } -void setItemFromSample( - BeamDistributionItem* beam_distribution_item, - const ParameterDistribution& parameter_distribution) +void setItemFromSample(BeamDistributionItem* beam_distribution_item, + const ParameterDistribution& parameter_distribution) { ASSERT(beam_distribution_item); @@ -246,8 +245,7 @@ void addRangedDistributionToItem(BeamDistributionItem* distributionItem, setItemFromSample(distributionItem, par_distr); } -void setGISASBeamItem(BeamItem* beam_item, - const ScatteringSimulation& simulation) +void setGISASBeamItem(BeamItem* beam_item, const ScatteringSimulation& simulation) { ASSERT(beam_item); const Beam& beam = simulation.beam(); @@ -270,8 +268,7 @@ void setGISASBeamItem(BeamItem* beam_item, } } -void setOffspecBeamItem(BeamItem* beam_item, - const OffspecSimulation& simulation) +void setOffspecBeamItem(BeamItem* beam_item, const OffspecSimulation& simulation) { const Beam& beam = simulation.beam(); @@ -293,43 +290,7 @@ void setAxisItem(BasicAxisItem* item, const IAxis& axis, double factor) item->setTitle(QString::fromStdString(axis.axisName())); } -void setSpecularBeamItem(SpecularBeamItem* beam_item, - const SpecularSimulation& simulation) -{ - const Beam& beam = simulation.beam(); - - beam_item->setIntensity(beam.intensity()); - beam_item->setWavelength(beam.wavelength()); - beam_item->setInclinationAngle(0.0); // inclination angle is hardcoded - beam_item->setAzimuthalAngle(0.0); // azimuthal angle is hardcoded - - auto* axis_item = beam_item->inclinationAxis(); - setAxisItem(axis_item, *simulation.coordinateAxis(), 1. / Units::deg); - - setFootprintFactor(simulation.footprintFactor(), beam_item); - - const auto* scan = dynamic_cast<const AlphaScan*>(simulation.dataHandler()); - if (!scan) - return; - - const auto* resolution = scan->wavelengthResolution(); - if (!resolution->empty()) { - double mean = scan->wavelength(); - double std_dev = resolution->stdDevs(mean, 1).front(); - addRangedDistributionToItem(beam_item->wavelengthItem(), *resolution->distribution(), mean, - std_dev); - } - - resolution = scan->angleResolution(); - if (resolution && !resolution->empty()) { - double std_dev = resolution->stdDevs(0.0, 1).front(); - addRangedDistributionToItem(beam_item->inclinationAngleItem(), *resolution->distribution(), - 0.0, std_dev); - } -} - -void setSphericalDetector(SphericalDetectorItem* detectorItem, - const SphericalDetector& detector) +void setSphericalDetector(SphericalDetectorItem* detectorItem, const SphericalDetector& detector) { // Axes const IAxis& phi_axis = detector.axis(0); @@ -347,7 +308,7 @@ void setSphericalDetector(SphericalDetectorItem* detectorItem, } void setRectangularDetector(RectangularDetectorItem* detectorItem, - const RectangularDetector& detector) + const RectangularDetector& detector) { // Axes detectorItem->setXSize(detector.getNbinsX()); @@ -394,8 +355,7 @@ void setRectangularDetector(RectangularDetectorItem* detectorItem, } } -void setDetectorGeometry(Instrument2DItem* instrument_item, - const IDetector& detector) +void setDetectorGeometry(Instrument2DItem* instrument_item, const IDetector& detector) { if (const auto* det = dynamic_cast<const SphericalDetector*>(&detector)) { auto* item = instrument_item->setDetectorType<SphericalDetectorItem>(); @@ -408,8 +368,7 @@ void setDetectorGeometry(Instrument2DItem* instrument_item, } } -void setDetectorResolution(DetectorItem* detector_item, - const IDetector& detector) +void setDetectorResolution(DetectorItem* detector_item, const IDetector& detector) { const IDetectorResolution* p_resfunc = detector.detectorResolution(); @@ -434,8 +393,7 @@ void setDetectorResolution(DetectorItem* detector_item, } } -void setPolarizerAnalyzer(Instrument2DItem* instrument_item, - const ISimulation2D& simulation) +void setPolarizerAnalyzer(Instrument2DItem* instrument_item, const ISimulation2D& simulation) { instrument_item->setPolarization(simulation.beam().polVector()); @@ -451,8 +409,7 @@ void setPolarizerAnalyzer(Instrument2DItem* instrument_item, instrument_item->setAnalyzerTotalTransmission(total_transmission); } -void updateDetector(Instrument2DItem* instrument_item, - const ISimulation2D& simulation) +void updateDetector(Instrument2DItem* instrument_item, const ISimulation2D& simulation) { const IDetector& detector = simulation.detector(); setDetectorGeometry(instrument_item, detector); @@ -464,8 +421,7 @@ void updateDetector(Instrument2DItem* instrument_item, setPolarizerAnalyzer(instrument_item, simulation); } -void setBackground(InstrumentItem* instrument_item, - const ISimulation& simulation) +void setBackground(InstrumentItem* instrument_item, const ISimulation& simulation) { const auto* p_bg = simulation.background(); if (const auto* p_constant_bg = dynamic_cast<const ConstantBackground*>(p_bg)) { @@ -476,24 +432,20 @@ void setBackground(InstrumentItem* instrument_item, instrument_item->setBackgroundType<PoissonBackgroundItem>(); } -GISASInstrumentItem* createGISASInstrumentItem(InstrumentCollection* model, - const ScatteringSimulation& simulation) +GISASInstrumentItem* createGISASInstrumentItem(const ScatteringSimulation& simulation) { - auto* result = model->addInstrument<GISASInstrumentItem>(); + auto* result = new GISASInstrumentItem(); setGISASBeamItem(result->beamItem(), simulation); updateDetector(result, simulation); - setBackground(result, simulation); return result; } -OffspecInstrumentItem* createOffspecInstrumentItem(InstrumentCollection* model, - const OffspecSimulation& simulation) +OffspecInstrumentItem* createOffspecInstrumentItem(const OffspecSimulation& simulation) { - auto* result = model->addInstrument<OffspecInstrumentItem>(); + auto* result = new OffspecInstrumentItem(); setOffspecBeamItem(result->beamItem(), simulation); updateDetector(result, simulation); - setBackground(result, simulation); const double factor = 1. / Units::deg; result->alphaAxis().setNbins(simulation.beamAxis()->size()); @@ -503,12 +455,42 @@ OffspecInstrumentItem* createOffspecInstrumentItem(InstrumentCollection* model, return result; } -SpecularInstrumentItem* createSpecularInstrumentItem(InstrumentCollection* model, - const SpecularSimulation& simulation) +SpecularInstrumentItem* createSpecularInstrumentItem(const SpecularSimulation& simulation) { - auto* result = model->addInstrument<SpecularInstrumentItem>(); - setSpecularBeamItem(result->beamItem(), simulation); - setBackground(result, simulation); + auto* result = new SpecularInstrumentItem(); + SpecularBeamItem* beam_item = result->beamItem(); + + const Beam& beam = simulation.beam(); + const ISpecularScan* scan = simulation.scan(); + + beam_item->setIntensity(beam.intensity()); + beam_item->setWavelength(scan->wavelength()); + beam_item->setInclinationAngle(0.0); // inclination angle is hardcoded + beam_item->setAzimuthalAngle(0.0); // azimuthal angle is hardcoded + + auto* axis_item = beam_item->inclinationAxis(); + setAxisItem(axis_item, *simulation.coordinateAxis(), 1. / Units::deg); + + setFootprintFactor(simulation.footprintFactor(), beam_item); + + const auto* alphaScan = dynamic_cast<const AlphaScan*>(scan); + if (!alphaScan) + return result; + + const auto* resolution = alphaScan->wavelengthResolution(); + if (!resolution->empty()) { + double mean = alphaScan->wavelength(); + double std_dev = resolution->stdDevs(mean, 1).front(); + addRangedDistributionToItem(beam_item->wavelengthItem(), *resolution->distribution(), mean, + std_dev); + } + + resolution = alphaScan->angleResolution(); + if (resolution && !resolution->empty()) { + double std_dev = resolution->stdDevs(0.0, 1).front(); + addRangedDistributionToItem(beam_item->inclinationAngleItem(), *resolution->distribution(), + 0.0, std_dev); + } return result; } @@ -518,18 +500,22 @@ SpecularInstrumentItem* createSpecularInstrumentItem(InstrumentCollection* model InstrumentCollection* GUI::Transform::FromCore::itemizeInstruments(const ISimulation& simulation) { - auto* result = new InstrumentCollection; + InstrumentItem* item; if (const auto* gisasSimulation = dynamic_cast<const ScatteringSimulation*>(&simulation)) - createGISASInstrumentItem(result, *gisasSimulation); + item = createGISASInstrumentItem(*gisasSimulation); else if (const auto* offspecSimulation = dynamic_cast<const OffspecSimulation*>(&simulation)) - createOffspecInstrumentItem(result, *offspecSimulation); + item = createOffspecInstrumentItem(*offspecSimulation); else if (const auto* spec_simulation = dynamic_cast<const SpecularSimulation*>(&simulation)) - createSpecularInstrumentItem(result, *spec_simulation); + item = createSpecularInstrumentItem(*spec_simulation); else ASSERT(0); - return result; + setBackground(item, simulation); + + auto* collection = new InstrumentCollection; + collection->emplace_back(item); + return collection; } SimulationOptionsItem* GUI::Transform::FromCore::itemizeOptions(const ISimulation& simulation) diff --git a/GUI/View/Project/PyImportAssistant.cpp b/GUI/View/Project/PyImportAssistant.cpp index 7880df33de3ae32d5193c519025f1b1a0fa801e4..565bbb0ac0b8475323660c3b2d21024a1b4c4ac8 100644 --- a/GUI/View/Project/PyImportAssistant.cpp +++ b/GUI/View/Project/PyImportAssistant.cpp @@ -19,8 +19,8 @@ #include "Base/Util/Assert.h" #include "Base/Util/SysUtils.h" #include "GUI/Application/ApplicationSettings.h" -#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "GUI/Model/FromCore/ItemizeSample.h" +#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "GUI/Support/IO/ProjectUtils.h" #include "GUI/Util/Path.h" #include "GUI/Util/String.h" diff --git a/Sim/Export/SimulationToPython.cpp b/Sim/Export/SimulationToPython.cpp index 163a663c26a0d7d604c4f324487c144c5605ae29..451bd43dca132f60c1c7c1f58c400648e5211a79 100644 --- a/Sim/Export/SimulationToPython.cpp +++ b/Sim/Export/SimulationToPython.cpp @@ -316,7 +316,7 @@ std::string defineOffspecBeam(const OffspecSimulation& simulation) std::string defineSpecularScan(const SpecularSimulation& simulation) { std::ostringstream result; - const ISpecularScan* scan = simulation.dataHandler(); + const ISpecularScan* scan = simulation.scan(); if (!scan) throw std::runtime_error("Error defineSpecularScan: passed simulation " "does not contain any scan"); diff --git a/Sim/Scan/AlphaScan.h b/Sim/Scan/AlphaScan.h index 04674bbd0d65529c94b14f05c87e10c7bebbe5c2..d425eb952f2444675d6643fb706f07f2732d0bff 100644 --- a/Sim/Scan/AlphaScan.h +++ b/Sim/Scan/AlphaScan.h @@ -59,13 +59,13 @@ public: //! Returns intensity vector corresponding to convolution of given simulation elements std::vector<double> createIntensities(const std::vector<SpecularElement>& eles) const override; - double wavelength() const { return m_wl; } - // TODO: remove these getters after transition to the new resolution machinery is finished const ScanResolution* wavelengthResolution() const { return m_wl_resolution.get(); } const ScanResolution* angleResolution() const { return m_inc_resolution.get(); } #endif // USER_API + double wavelength() const override { return m_wl; } + //! Sets footprint correction factor void setFootprintFactor(const IFootprintFactor* f_factor); diff --git a/Sim/Scan/ISpecularScan.h b/Sim/Scan/ISpecularScan.h index 048f9ddd5d1ae18a103e35875a5e1c8f2713c8ec..9bf6e37835c092ce3a6ea09283e8dad250bdf87c 100644 --- a/Sim/Scan/ISpecularScan.h +++ b/Sim/Scan/ISpecularScan.h @@ -42,6 +42,8 @@ public: //! Sets the polarization analyzer characteristics of the detector void setAnalyzer(R3 direction, double efficiency, double total_transmission); + virtual double wavelength() const = 0; + #ifndef SWIG PolMatrices polMatrices() const; diff --git a/Sim/Scan/QzScan.cpp b/Sim/Scan/QzScan.cpp index 7b542b7f160067a79cfb39e364d13025d32340e1..b1bd5719a402b799d8868536e8dc389b3a441e1d 100644 --- a/Sim/Scan/QzScan.cpp +++ b/Sim/Scan/QzScan.cpp @@ -22,25 +22,33 @@ #include "Sim/Scan/ScanResolution.h" #include <algorithm> -QzScan::QzScan(std::vector<double> qs_nm) - : m_qs(std::make_unique<PointwiseAxis>("qs", std::move(qs_nm))) +QzScan::QzScan(IAxis* qs_nm) + : m_qs(std::move(qs_nm)) , m_resolution(ScanResolution::scanEmptyResolution()) { - checkInitialization(); + std::vector<double> axis_values = m_qs->binCenters(); + if (!std::is_sorted(axis_values.begin(), axis_values.end())) + throw std::runtime_error("Error in QzScan::checkInitialization: q-vector values shall " + "be sorted in ascending order."); + + if (axis_values.front() < 0) + throw std::runtime_error("Error in QzScan::checkInitialization: q-vector values are out " + "of acceptable range."); +} + +QzScan::QzScan(std::vector<double> qs_nm) + : QzScan(new PointwiseAxis("qs", std::move(qs_nm))) +{ } QzScan::QzScan(const IAxis& qs_nm) - : m_qs(qs_nm.clone()) - , m_resolution(ScanResolution::scanEmptyResolution()) + : QzScan(qs_nm.clone()) { - checkInitialization(); } QzScan::QzScan(int nbins, double qz_min, double qz_max) - : m_qs(std::make_unique<FixedBinAxis>("qs", nbins, qz_min, qz_max)) - , m_resolution(ScanResolution::scanEmptyResolution()) + : QzScan(new FixedBinAxis("qs", nbins, qz_min, qz_max)) { - checkInitialization(); } QzScan::~QzScan() = default; @@ -144,18 +152,6 @@ void QzScan::setAbsoluteQResolution(const IRangedDistribution& distr, setQResolution(*resolution); } -void QzScan::checkInitialization() -{ - std::vector<double> axis_values = m_qs->binCenters(); - if (!std::is_sorted(axis_values.begin(), axis_values.end())) - throw std::runtime_error("Error in QzScan::checkInitialization: q-vector values shall " - "be sorted in ascending order."); - - if (axis_values.front() < 0) - throw std::runtime_error("Error in QzScan::checkInitialization: q-vector values are out " - "of acceptable range."); -} - std::vector<double> QzScan::generateQzVector() const { const auto samples = applyQResolution(); diff --git a/Sim/Scan/QzScan.h b/Sim/Scan/QzScan.h index 236296276a5ccc7d8b61ee1e7d6f7da65fe6551f..90ddfa88424ed33ee24deeaee9c28ca612882684 100644 --- a/Sim/Scan/QzScan.h +++ b/Sim/Scan/QzScan.h @@ -41,6 +41,8 @@ public: const ScanResolution* resolution() const { return m_resolution.get(); } + double wavelength() const override { return 1.0; } // TODO (ISSUE #303) + #ifndef SWIG //! Generates simulation elements for specular simulations std::vector<SpecularElement> generateElements() const override; @@ -87,7 +89,8 @@ public: double offset() const { return m_offset; } private: - void checkInitialization(); + QzScan(IAxis* qs_nm); + std::vector<double> generateQzVector() const; std::vector<std::vector<ParameterSample>> applyQResolution() const; diff --git a/Sim/Simulation/SpecularSimulation.cpp b/Sim/Simulation/SpecularSimulation.cpp index 41c490ff3a416d8b534816a905dd26e586512e1a..7cbbf271b0da89967b018049751e9d71c5de6315 100644 --- a/Sim/Simulation/SpecularSimulation.cpp +++ b/Sim/Simulation/SpecularSimulation.cpp @@ -41,10 +41,6 @@ SpecularSimulation::SpecularSimulation(const ISpecularScan& scan, const MultiLay throw std::runtime_error("Invalid scan: minimum value on coordinate axis is negative"); detector().addDetAxis(*scan.coordinateAxis()); - - // TODO: remove when pointwise resolution is implemented - if (const auto* aScan = dynamic_cast<const AlphaScan*>(&scan)) - beam().setWavelength(aScan->wavelength()); } SpecularSimulation::~SpecularSimulation() = default; diff --git a/Sim/Simulation/SpecularSimulation.h b/Sim/Simulation/SpecularSimulation.h index 478c6a696a8ed023d6d9340a67aaa6e1f278524b..b1492c09d6732a53856b1edcc0d5028a8552611f 100644 --- a/Sim/Simulation/SpecularSimulation.h +++ b/Sim/Simulation/SpecularSimulation.h @@ -56,7 +56,7 @@ public: ICoordSystem* createCoordSystem() const override; //! Returns internal data handler - const ISpecularScan* dataHandler() const { return m_scan.get(); } + const ISpecularScan* scan() const { return m_scan.get(); } private: SimulationResult pack_result() override; diff --git a/Tests/Functional/GUI/Check.cpp b/Tests/Functional/GUI/Check.cpp index 5c0f03613c6212eaa86a0b707129bf7724225503..195816aa72457dac166c6389c4854cf009d68dd7 100644 --- a/Tests/Functional/GUI/Check.cpp +++ b/Tests/Functional/GUI/Check.cpp @@ -19,8 +19,8 @@ #include "Device/Histo/IOFactory.h" #include "Device/Histo/SimulationResult.h" #include "GUI/Model/Device/InstrumentCollection.h" -#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "GUI/Model/FromCore/ItemizeSample.h" +#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "GUI/Model/Sample/MultiLayerItem.h" #include "GUI/Model/ToCore/SimulationToCore.h" #include "GUI/Support/Data/SimulationOptionsItem.h" diff --git a/auto/Wrap/doxygenSim.i b/auto/Wrap/doxygenSim.i index 7a758fa62b03287bbf3c92b9ea08c7ce0ed9b878..0b3377aa144ed9afad153790a52f8ff2183f0bed 100644 --- a/auto/Wrap/doxygenSim.i +++ b/auto/Wrap/doxygenSim.i @@ -59,15 +59,15 @@ Returns the number of simulation elements. Returns intensity vector corresponding to convolution of given simulation elements. "; -%feature("docstring") AlphaScan::wavelength "double AlphaScan::wavelength() const -"; - %feature("docstring") AlphaScan::wavelengthResolution "const ScanResolution* AlphaScan::wavelengthResolution() const "; %feature("docstring") AlphaScan::angleResolution "const ScanResolution* AlphaScan::angleResolution() const "; +%feature("docstring") AlphaScan::wavelength "double AlphaScan::wavelength() const override +"; + %feature("docstring") AlphaScan::setFootprintFactor "void AlphaScan::setFootprintFactor(const IFootprintFactor *f_factor) Sets footprint correction factor. @@ -1062,6 +1062,9 @@ Sets the polarization density matrix according to the given Bloch vector. Sets the polarization analyzer characteristics of the detector. "; +%feature("docstring") ISpecularScan::wavelength "virtual double ISpecularScan::wavelength() const =0 +"; + %feature("docstring") ISpecularScan::polMatrices "PolMatrices ISpecularScan::polMatrices() const "; @@ -1533,6 +1536,9 @@ Sets q-defined specular scan. Accepts either numpy array of q-values sorted in a %feature("docstring") QzScan::resolution "const ScanResolution* QzScan::resolution() const "; +%feature("docstring") QzScan::wavelength "double QzScan::wavelength() const override +"; + %feature("docstring") QzScan::generateElements "std::vector< SpecularElement > QzScan::generateElements() const override Generates simulation elements for specular simulations. @@ -1960,7 +1966,7 @@ Put into a clean state for running a simulation. %feature("docstring") SpecularSimulation::createCoordSystem "ICoordSystem * SpecularSimulation::createCoordSystem() const override "; -%feature("docstring") SpecularSimulation::dataHandler "const ISpecularScan* SpecularSimulation::dataHandler() const +%feature("docstring") SpecularSimulation::scan "const ISpecularScan* SpecularSimulation::scan() const Returns internal data handler. "; diff --git a/auto/Wrap/libBornAgainSim.py b/auto/Wrap/libBornAgainSim.py index 7469d19f374c817a29dc9c695c6865012e67e114..591783f39e44e671be74e08fd47116ea5a6df039 100644 --- a/auto/Wrap/libBornAgainSim.py +++ b/auto/Wrap/libBornAgainSim.py @@ -3116,6 +3116,14 @@ class ISpecularScan(libBornAgainBase.ICloneable): """ return _libBornAgainSim.ISpecularScan_setAnalyzer(self, direction, efficiency, total_transmission) + def wavelength(self): + r""" + wavelength(ISpecularScan self) -> double + virtual double ISpecularScan::wavelength() const =0 + + """ + return _libBornAgainSim.ISpecularScan_wavelength(self) + # Register ISpecularScan in _libBornAgainSim: _libBornAgainSim.ISpecularScan_swigregister(ISpecularScan) @@ -3153,6 +3161,14 @@ class AlphaScan(ISpecularScan): """ return _libBornAgainSim.AlphaScan_clone(self) + def wavelength(self): + r""" + wavelength(AlphaScan self) -> double + double AlphaScan::wavelength() const override + + """ + return _libBornAgainSim.AlphaScan_wavelength(self) + def setFootprintFactor(self, f_factor): r""" setFootprintFactor(AlphaScan self, IFootprintFactor const * f_factor) @@ -3272,6 +3288,14 @@ class QzScan(ISpecularScan): """ return _libBornAgainSim.QzScan_resolution(self) + def wavelength(self): + r""" + wavelength(QzScan self) -> double + double QzScan::wavelength() const override + + """ + return _libBornAgainSim.QzScan_wavelength(self) + def setQResolution(self, resolution): r""" setQResolution(QzScan self, ScanResolution resolution) diff --git a/auto/Wrap/libBornAgainSim_wrap.cpp b/auto/Wrap/libBornAgainSim_wrap.cpp index b9755dd2be9bcdfd83fcb0a4772e60e29e967a6f..711dabf258859b08482809833f29fe45c78e7fc7 100644 --- a/auto/Wrap/libBornAgainSim_wrap.cpp +++ b/auto/Wrap/libBornAgainSim_wrap.cpp @@ -35535,6 +35535,29 @@ fail: } +SWIGINTERN PyObject *_wrap_ISpecularScan_wavelength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + ISpecularScan *arg1 = (ISpecularScan *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + double result; + + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ISpecularScan, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ISpecularScan_wavelength" "', argument " "1"" of type '" "ISpecularScan const *""'"); + } + arg1 = reinterpret_cast< ISpecularScan * >(argp1); + result = (double)((ISpecularScan const *)arg1)->wavelength(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *ISpecularScan_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; @@ -35770,6 +35793,29 @@ fail: } +SWIGINTERN PyObject *_wrap_AlphaScan_wavelength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AlphaScan *arg1 = (AlphaScan *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + double result; + + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AlphaScan, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AlphaScan_wavelength" "', argument " "1"" of type '" "AlphaScan const *""'"); + } + arg1 = reinterpret_cast< AlphaScan * >(argp1); + result = (double)((AlphaScan const *)arg1)->wavelength(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_AlphaScan_setFootprintFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AlphaScan *arg1 = (AlphaScan *) 0 ; @@ -36639,6 +36685,29 @@ fail: } +SWIGINTERN PyObject *_wrap_QzScan_wavelength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + QzScan *arg1 = (QzScan *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + double result; + + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_QzScan, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QzScan_wavelength" "', argument " "1"" of type '" "QzScan const *""'"); + } + arg1 = reinterpret_cast< QzScan * >(argp1); + result = (double)((QzScan const *)arg1)->wavelength(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_QzScan_setQResolution(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; QzScan *arg1 = (QzScan *) 0 ; @@ -41992,6 +42061,11 @@ static PyMethodDef SwigMethods[] = { "Sets the polarization analyzer characteristics of the detector. \n" "\n" ""}, + { "ISpecularScan_wavelength", _wrap_ISpecularScan_wavelength, METH_O, "\n" + "ISpecularScan_wavelength(ISpecularScan self) -> double\n" + "virtual double ISpecularScan::wavelength() const =0\n" + "\n" + ""}, { "ISpecularScan_swigregister", ISpecularScan_swigregister, METH_O, NULL}, { "new_AlphaScan", _wrap_new_AlphaScan, METH_VARARGS, "\n" "AlphaScan(double wl, vdouble1d_t inc_angle)\n" @@ -42012,6 +42086,11 @@ static PyMethodDef SwigMethods[] = { "AlphaScan * AlphaScan::clone() const override\n" "\n" ""}, + { "AlphaScan_wavelength", _wrap_AlphaScan_wavelength, METH_O, "\n" + "AlphaScan_wavelength(AlphaScan self) -> double\n" + "double AlphaScan::wavelength() const override\n" + "\n" + ""}, { "AlphaScan_setFootprintFactor", _wrap_AlphaScan_setFootprintFactor, METH_VARARGS, "\n" "AlphaScan_setFootprintFactor(AlphaScan self, IFootprintFactor const * f_factor)\n" "void AlphaScan::setFootprintFactor(const IFootprintFactor *f_factor)\n" @@ -42091,6 +42170,11 @@ static PyMethodDef SwigMethods[] = { "const ScanResolution* QzScan::resolution() const\n" "\n" ""}, + { "QzScan_wavelength", _wrap_QzScan_wavelength, METH_O, "\n" + "QzScan_wavelength(QzScan self) -> double\n" + "double QzScan::wavelength() const override\n" + "\n" + ""}, { "QzScan_setQResolution", _wrap_QzScan_setQResolution, METH_VARARGS, "\n" "QzScan_setQResolution(QzScan self, ScanResolution resolution)\n" "void QzScan::setQResolution(const ScanResolution &resolution)\n"