diff --git a/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp b/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp new file mode 100644 index 0000000000000000000000000000000000000000..06415f0e9bc1bcf79949ae5073ca32f333215442 --- /dev/null +++ b/Core/Aggregate/InterferenceFunction2DSuperLattice.cpp @@ -0,0 +1,199 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/Aggregate/InterferenceFunction2DSuperLattice.cpp +//! @brief Implements class InterferenceFunction2DSuperLattice. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "InterferenceFunction2DSuperLattice.h" +#include "BornAgainNamespace.h" +#include "Exceptions.h" +#include "IntegratorReal.h" +#include "InterferenceFunctionNone.h" +#include "Macros.h" +#include "MathConstants.h" +#include "RealParameter.h" + +#include <limits> + +namespace { +double SinNx_Div_Sinx(double x, unsigned N); +double DebyeWallerFactor(double variance, double q2); +} + + +InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice( + const Lattice2D& lattice, unsigned size_1, unsigned size_2) + : m_sigma2(0.0) + , m_integrate_xi(false) + , mP_substructure(nullptr) + , m_size_1(size_1) + , m_size_2(size_2) +{ + setName(BornAgain::InterferenceFunction2DSuperLattice); + setLattice(lattice); + setSubstructureIFF(InterferenceFunctionNone()); + init_parameters(); +} + +//! Constructor of two-dimensional interference function. +//! @param length_1: length of first lattice vector in nanometers +//! @param length_2: length of second lattice vector in nanometers +//! @param alpha: angle between lattice vectors in radians +//! @param xi: rotation of lattice with respect to x-axis (beam direction) in radians +InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice( + double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2) + : m_sigma2(0.0) + , m_integrate_xi(false) + , mP_substructure(nullptr) + , m_size_1(size_1) + , m_size_2(size_2) +{ + setName(BornAgain::InterferenceFunction2DSuperLattice); + setLattice(BasicLattice(length_1, length_2, alpha, xi)); + setSubstructureIFF(InterferenceFunctionNone()); + init_parameters(); +} + +InterferenceFunction2DSuperLattice::~InterferenceFunction2DSuperLattice() =default; + +InterferenceFunction2DSuperLattice* InterferenceFunction2DSuperLattice::clone() const +{ + return new InterferenceFunction2DSuperLattice(*this); +} + +void InterferenceFunction2DSuperLattice::setSubstructureIFF(const IInterferenceFunction& sub_iff) +{ + mP_substructure.reset(sub_iff.clone()); + registerChild(mP_substructure.get()); +} + +const IInterferenceFunction& InterferenceFunction2DSuperLattice::substructureIFF() const +{ + return *mP_substructure; +} + +//! Creates square lattice. +//! @param lattice_length: length of first and second lattice vectors in nanometers +//! @param xi: rotation of lattice with respect to x-axis in radians +InterferenceFunction2DSuperLattice* InterferenceFunction2DSuperLattice::createSquare( + double lattice_length, double xi, unsigned size_1, unsigned size_2) +{ + return new InterferenceFunction2DSuperLattice(SquareLattice(lattice_length, xi), + size_1, size_2); +} + +//! Creates hexagonal lattice. +//! @param lattice_length: length of first and second lattice vectors in nanometers +//! @param xi: rotation of lattice with respect to x-axis in radians +InterferenceFunction2DSuperLattice* InterferenceFunction2DSuperLattice::createHexagonal( + double lattice_length, double xi, unsigned size_1, unsigned size_2) +{ + return new InterferenceFunction2DSuperLattice(HexagonalLattice(lattice_length, xi), + size_1, size_2); +} + +double InterferenceFunction2DSuperLattice::evaluate(const kvector_t q) const +{ + m_qx = q.x(); + m_qy = q.y(); + if (!m_integrate_xi) + return interferenceForXi(mP_lattice->rotationAngle()); + return mP_integrator->integrate(0.0, M_TWOPI) / M_TWOPI; +} + +void InterferenceFunction2DSuperLattice::setIntegrationOverXi(bool integrate_xi) +{ + m_integrate_xi = integrate_xi; + mP_lattice->setRotationEnabled(!m_integrate_xi); // deregister Xi in the case of integration +} + +const Lattice2D& InterferenceFunction2DSuperLattice::lattice() const +{ + if(!mP_lattice) + throw std::runtime_error("InterferenceFunctionFinite2DLattice::lattice() -> Error. " + "No lattice defined."); + return *mP_lattice; +} + +double InterferenceFunction2DSuperLattice::getParticleDensity() const +{ + double area = mP_lattice->unitCellArea(); + double density = (area == 0.0) ? 0.0 + : 1.0/area; + return density*mP_substructure->getParticleDensity(); +} + +std::vector<const INode*> InterferenceFunction2DSuperLattice::getChildren() const +{ + return std::vector<const INode*>() << mP_lattice << mP_substructure; +} + +InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice( + const InterferenceFunction2DSuperLattice& other) + : m_sigma2(other.m_sigma2) + , m_size_1(other.m_size_1) + , m_size_2(other.m_size_2) +{ + setName(other.getName()); + if(other.mP_lattice) + setLattice(*other.mP_lattice); + setSubstructureIFF(*mP_substructure); + setIntegrationOverXi(other.integrationOverXi()); + init_parameters(); +} + +void InterferenceFunction2DSuperLattice::setLattice(const Lattice2D& lattice) +{ + mP_lattice.reset(lattice.clone()); + registerChild(mP_lattice.get()); +} + +void InterferenceFunction2DSuperLattice::init_parameters() +{ + registerParameter(BornAgain::PositionVariance, &m_sigma2).setNonnegative(); + mP_integrator + = make_integrator_real(this, &InterferenceFunction2DSuperLattice::interferenceForXi); +} + +double InterferenceFunction2DSuperLattice::interferenceForXi(double xi) const +{ + double a = mP_lattice->length1(); + double b = mP_lattice->length2(); + double xialpha = xi + mP_lattice->latticeAngle(); + + double qadiv2 = (m_qx*a*std::cos(xi) + m_qy*a*std::sin(xi)) / 2.0; + double qbdiv2 = (m_qx*b*std::cos(xialpha) + m_qy*b*std::sin(xialpha)) / 2.0; + double ampl = SinNx_Div_Sinx(qadiv2, m_size_1)*SinNx_Div_Sinx(qbdiv2, m_size_2); + double lattice_factor = ampl*ampl / (m_size_1*m_size_2); + double DW_factor = DebyeWallerFactor(m_sigma2, m_qx*m_qx + m_qy*m_qy); + + double delta_xi = xi - mP_lattice->rotationAngle(); + kvector_t q = kvector_t(m_qx, m_qy, 0.0).rotatedZ(-delta_xi); + double substructure_result = mP_substructure->evaluate(q); + + return (1.0 + DW_factor*(lattice_factor - 1.0))*substructure_result; +} + +namespace { +double SinNx_Div_Sinx(double x, unsigned N) { + static const double SQRT6DOUBLE_EPS = std::sqrt(6.0*std::numeric_limits<double>::epsilon()); + auto nd = static_cast<double>(N); + if(std::abs(nd*x) < SQRT6DOUBLE_EPS) + return nd; + double num = std::sin(nd*x); + double den = std::sin(x); + return num/den; +} +double DebyeWallerFactor(double variance, double q2) { + return std::exp(-q2*variance/2.0); +} +} + diff --git a/Core/Aggregate/InterferenceFunction2DSuperLattice.h b/Core/Aggregate/InterferenceFunction2DSuperLattice.h new file mode 100644 index 0000000000000000000000000000000000000000..5d9b06f6cd750a4bb7b509df11e8d8537159c9c0 --- /dev/null +++ b/Core/Aggregate/InterferenceFunction2DSuperLattice.h @@ -0,0 +1,84 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/Aggregate/InterferenceFunction2DSuperLattice.h +//! @brief Defines class InterferenceFunction2DSuperLattice. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#ifndef INTERFERENCEFUNCTION2DSUPERLATTICE_H +#define INTERFERENCEFUNCTION2DSUPERLATTICE_H + +#include "IInterferenceFunction.h" +#include "Lattice2D.h" + +template <class T> class IntegratorReal; + +//! Interference function of 2D superlattice with a configurable interference function for +//! each lattice site. +//! @ingroup interference + +class BA_CORE_API_ InterferenceFunction2DSuperLattice : public IInterferenceFunction +{ +public: + InterferenceFunction2DSuperLattice(const Lattice2D& lattice, unsigned size_1, unsigned size_2); + InterferenceFunction2DSuperLattice(double length_1, double length_2, double alpha, + double xi, unsigned size_1, unsigned size_2); + ~InterferenceFunction2DSuperLattice() final; + + InterferenceFunction2DSuperLattice* clone() const final; + + void accept(INodeVisitor* visitor) const final { visitor->visit(this); } + + void setSubstructureIFF(const IInterferenceFunction& sub_iff); + const IInterferenceFunction& substructureIFF() const; + + static InterferenceFunction2DSuperLattice* createSquare( + double lattice_length, double xi, unsigned size_1, unsigned size_2); + static InterferenceFunction2DSuperLattice* createHexagonal( + double lattice_length, double xi, unsigned size_1, unsigned size_2); + + double evaluate(const kvector_t q) const final; + + unsigned domainSize1() const { return m_size_1; } + unsigned domainSize2() const { return m_size_2; } + + void setPositionVariance(double sigma2) { m_sigma2 = sigma2; } + double positionVariance() const { return m_sigma2; } + + void setIntegrationOverXi(bool integrate_xi); + bool integrationOverXi() const { return m_integrate_xi; } + + const Lattice2D& lattice() const; + + //! Returns the particle density associated with this 2d lattice + double getParticleDensity() const final; + + std::vector<const INode*> getChildren() const override; + +private: + InterferenceFunction2DSuperLattice(const InterferenceFunction2DSuperLattice& other); + void setLattice(const Lattice2D& lattice); + + void init_parameters(); + double interferenceForXi(double xi) const; + + double m_sigma2; + bool m_integrate_xi; //!< Integrate over the orientation xi + std::unique_ptr<Lattice2D> mP_lattice; + std::unique_ptr<IInterferenceFunction> mP_substructure; //!< IFF of substructure + unsigned m_size_1, m_size_2; //!< Size of the finite lattice in lattice units + mutable double m_qx; + mutable double m_qy; +#ifndef SWIG + std::unique_ptr<IntegratorReal<InterferenceFunction2DSuperLattice>> mP_integrator; +#endif +}; + +#endif // INTERFERENCEFUNCTION2DSUPERLATTICE_H diff --git a/Core/Aggregate/InterferenceFunctionFinite2DLattice.h b/Core/Aggregate/InterferenceFunctionFinite2DLattice.h index 1b978deda9e25615f4faa109fa9e999075cb0848..5a7026be0e91615e807c76117583b59786aa30e0 100644 --- a/Core/Aggregate/InterferenceFunctionFinite2DLattice.h +++ b/Core/Aggregate/InterferenceFunctionFinite2DLattice.h @@ -16,7 +16,6 @@ #define INTERFERENCEFUNCTIONFINITE2DLATTICE_H #include "IInterferenceFunction.h" -#include "FTDecayFunctions.h" #include "Lattice2D.h" template <class T> class IntegratorReal; diff --git a/Core/Basics/BornAgainNamespace.h b/Core/Basics/BornAgainNamespace.h index ce51d4cd0cdcbac20c0199973440a5b6397ab2cf..4322876a589f2e13f9e1dfce6ad4d9c91fdc0def 100644 --- a/Core/Basics/BornAgainNamespace.h +++ b/Core/Basics/BornAgainNamespace.h @@ -74,6 +74,7 @@ const std::string InterferenceFunction2DParaCrystalType = "Interference2DParaCry const std::string InterferenceFunction1DLatticeType = "Interference1DLattice"; const std::string InterferenceFunction2DLatticeType = "Interference2DLattice"; const std::string InterferenceFunctionFinite2DLatticeType = "InterferenceFinite2DLattice"; +const std::string InterferenceFunction2DSuperLattice = "Interference2DSuperLattice"; const std::string CrystalType = "Crystal"; const std::string LatticeType = "Lattice"; diff --git a/Core/includeIncludes/InterferenceFunctions.h b/Core/includeIncludes/InterferenceFunctions.h index 449250ca490a0fa087976c429e590c2142a3ce08..1a5533c036844d2785ee4d2b965daa962fba83c5 100644 --- a/Core/includeIncludes/InterferenceFunctions.h +++ b/Core/includeIncludes/InterferenceFunctions.h @@ -19,6 +19,7 @@ #include "InterferenceFunction2DLattice.h" #include "InterferenceFunctionFinite2DLattice.h" #include "InterferenceFunction2DParaCrystal.h" +#include "InterferenceFunction2DSuperLattice.h" #include "InterferenceFunctionNone.h" #include "InterferenceFunctionRadialParaCrystal.h" diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i index 05c50e12ee2c2287ae5dd8fa016a9f1ac3c35be9..a09f2f41bd4648784459b0d49188283b215890dd 100644 --- a/Wrap/swig/libBornAgainCore.i +++ b/Wrap/swig/libBornAgainCore.i @@ -172,6 +172,7 @@ #include "InterferenceFunction2DLattice.h" #include "InterferenceFunctionFinite2DLattice.h" #include "InterferenceFunction2DParaCrystal.h" +#include "InterferenceFunction2DSuperLattice.h" #include "InterferenceFunctionNone.h" #include "InterferenceFunctionRadialParaCrystal.h" #include "IsGISAXSDetector.h" @@ -390,6 +391,7 @@ %include "InterferenceFunctionRadialParaCrystal.h" %include "InterferenceFunction2DLattice.h" %include "InterferenceFunctionFinite2DLattice.h" +%include "InterferenceFunction2DSuperLattice.h" %include "InterferenceFunction2DParaCrystal.h" %include "InterferenceFunctionNone.h" %include "IPixel.h" diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i index 6248c4efadd20846d86b446d2f5ededeeb30f7e6..a26a934f521e28e2c8554badc3d1e536318b4004 100644 --- a/auto/Wrap/doxygen_core.i +++ b/auto/Wrap/doxygen_core.i @@ -642,21 +642,21 @@ C++ includes: BoxCompositionBuilder.h "; -// File: structIntegratorMCMiser_1_1CallBackHolder.xml -%feature("docstring") IntegratorMCMiser::CallBackHolder " +// File: structIntegratorReal_1_1CallBackHolder.xml +%feature("docstring") IntegratorReal::CallBackHolder " structure holding the object and possible extra parameters -C++ includes: IntegratorMCMiser.h +C++ includes: IntegratorReal.h "; -// File: structIntegratorReal_1_1CallBackHolder.xml -%feature("docstring") IntegratorReal::CallBackHolder " +// File: structIntegratorMCMiser_1_1CallBackHolder.xml +%feature("docstring") IntegratorMCMiser::CallBackHolder " structure holding the object and possible extra parameters -C++ includes: IntegratorReal.h +C++ includes: IntegratorMCMiser.h "; @@ -2064,24 +2064,38 @@ Holds simulation description and real data to run the fit. C++ includes: FitObject.h "; -%feature("docstring") FitObject::FitObject "FitObject::FitObject(const Simulation &simulation, const OutputData< double > &real_data, double weight=1) +%feature("docstring") FitObject::FitObject "FitObject::FitObject(const Simulation &simulation, const OutputData< double > &data, double weight=1) -FitObject constructor +Constructs simulation/data pair for later fit. Parameters: ----------- simulation: -The simulation to run +simulation to run -real_data: -The real data +data: +experimental data weight: -Weight of dataset in chi2 calculations +weight of dataset in chi2 calculations +"; + +%feature("docstring") FitObject::FitObject "FitObject::FitObject(const Simulation &simulation, const std::vector< std::vector< double >> &data, double weight=1) + +Constructs simulation/data pair for later fit. + +Parameters: +----------- + +simulation: +simulation to run -adjust_detector_to_data: -Detector axes will be adjusted to real data axes, if true +data: +experimental data + +weight: +weight of dataset in chi2 calculations "; %feature("docstring") FitObject::~FitObject "FitObject::~FitObject() @@ -2112,10 +2126,34 @@ Runs simulation and put results (the real and simulated intensities) into extern Returns a vector of children (const). "; -%feature("docstring") FitObject::simulationResult "SimulationResult FitObject::simulationResult() const +%feature("docstring") FitObject::simulationResult "SimulationResult FitObject::simulationResult() const + +Returns simulation result. +"; + +%feature("docstring") FitObject::experimentalData "SimulationResult FitObject::experimentalData() const + +Returns experimental data. +"; + +%feature("docstring") FitObject::relativeDifference "SimulationResult FitObject::relativeDifference() const + +Returns relative difference between simulation and experimental data. +"; + +%feature("docstring") FitObject::runSimulation "void FitObject::runSimulation() + +Runs internal simulation object. +"; + +%feature("docstring") FitObject::experimental_array "std::vector< double > FitObject::experimental_array() const + +Returns one dimensional array representing experimental data. Masked areas and the area outside of region of interest are not included. "; -%feature("docstring") FitObject::experimentalData "SimulationResult FitObject::experimentalData() const +%feature("docstring") FitObject::simulation_array "std::vector< double > FitObject::simulation_array() const + +Returns one dimensional array representing simulated intensities data. Masked areas and the area outside of region of interest are not included. "; @@ -2516,7 +2554,7 @@ the index of fit pair %feature("docstring") FitSuite::relativeDifference "SimulationResult FitSuite::relativeDifference(size_t i_item=0) const -Returns relative difference between simulation and real data. +Returns relative difference between simulation and experimental data. Parameters: ----------- @@ -2742,13 +2780,37 @@ Returns total number of data points. Replaces default ChiSquaredModule with new one. "; -%feature("docstring") FitSuiteObjects::simulationResult "SimulationResult FitSuiteObjects::simulationResult(size_t i_item=0) const +%feature("docstring") FitSuiteObjects::simulationResult "SimulationResult FitSuiteObjects::simulationResult(size_t i_item=0) const + +Returns simulation result. + +Parameters: +----------- + +i_item: +the index of fit pair "; -%feature("docstring") FitSuiteObjects::experimentalData "SimulationResult FitSuiteObjects::experimentalData(size_t i_item=0) const +%feature("docstring") FitSuiteObjects::experimentalData "SimulationResult FitSuiteObjects::experimentalData(size_t i_item=0) const + +Returns experimental data. + +Parameters: +----------- + +i_item: +the index of fit pair "; -%feature("docstring") FitSuiteObjects::relativeDifference "SimulationResult FitSuiteObjects::relativeDifference(size_t i_item=0) const +%feature("docstring") FitSuiteObjects::relativeDifference "SimulationResult FitSuiteObjects::relativeDifference(size_t i_item=0) const + +Returns relative difference between simulation and experimental data. + +Parameters: +----------- + +i_item: +the index of fit pair "; %feature("docstring") FitSuiteObjects::runSimulations "void FitSuiteObjects::runSimulations() @@ -2771,7 +2833,7 @@ Parameters: ----------- global_index: -index accross all element in FitElement vector +index across all element in FitElement vector "; %feature("docstring") FitSuiteObjects::setNfreeParameters "void FitSuiteObjects::setNfreeParameters(int nfree_parameters) @@ -2989,6 +3051,69 @@ Calculate footprint correction coefficient from the beam incident angle alpha. "; +// File: classFormFactor2DLattice.xml +%feature("docstring") FormFactor2DLattice " + +The formfactor of a finite 2d lattice of other shapes. + +C++ includes: FormFactor2DLattice.h +"; + +%feature("docstring") FormFactor2DLattice::FormFactor2DLattice "FormFactor2DLattice::FormFactor2DLattice(const IFormFactor &form_factor, const Lattice2D &lattice, unsigned size_1, unsigned size_2) +"; + +%feature("docstring") FormFactor2DLattice::FormFactor2DLattice "FormFactor2DLattice::FormFactor2DLattice(const IFormFactor &form_factor, double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2) +"; + +%feature("docstring") FormFactor2DLattice::~FormFactor2DLattice "FormFactor2DLattice::~FormFactor2DLattice() overridefinal +"; + +%feature("docstring") FormFactor2DLattice::clone "FormFactor2DLattice * FormFactor2DLattice::clone() const overridefinal + +Returns a clone of this ISample object. +"; + +%feature("docstring") FormFactor2DLattice::accept "void FormFactor2DLattice::accept(INodeVisitor *visitor) const overridefinal + +Calls the INodeVisitor's visit method. +"; + +%feature("docstring") FormFactor2DLattice::setAmbientMaterial "void FormFactor2DLattice::setAmbientMaterial(Material material) overridefinal + +Passes the material in which this particle is embedded. +"; + +%feature("docstring") FormFactor2DLattice::volume "double FormFactor2DLattice::volume() const overridefinal + +Returns the total volume of the particle of this form factor's shape. +"; + +%feature("docstring") FormFactor2DLattice::radialExtension "double FormFactor2DLattice::radialExtension() const overridefinal + +Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations +"; + +%feature("docstring") FormFactor2DLattice::bottomZ "double FormFactor2DLattice::bottomZ(const IRotation &rotation) const override + +Returns the z-coordinate of the lowest point in this shape after a given rotation. +"; + +%feature("docstring") FormFactor2DLattice::topZ "double FormFactor2DLattice::topZ(const IRotation &rotation) const overridefinal + +Returns the z-coordinate of the lowest point in this shape after a given rotation. +"; + +%feature("docstring") FormFactor2DLattice::evaluate "complex_t FormFactor2DLattice::evaluate(const WavevectorInfo &wavevectors) const overridefinal + +Returns scattering amplitude for complex wavevectors ki, kf. +"; + +%feature("docstring") FormFactor2DLattice::evaluatePol "Eigen::Matrix2cd FormFactor2DLattice::evaluatePol(const WavevectorInfo &wavevectors) const overridefinal + +Returns scattering amplitude for matrix interactions. +"; + + // File: classFormFactorAnisoPyramid.xml %feature("docstring") FormFactorAnisoPyramid " @@ -6691,7 +6816,7 @@ Removes detector resolution function. Returns a pointer to detector resolution object. "; -%feature("docstring") IDetector::createDetectorMap "std::unique_ptr< OutputData< double > > IDetector::createDetectorMap(const Beam &beam, AxesUnits units) const +%feature("docstring") IDetector::createDetectorMap "std::unique_ptr< OutputData< double > > IDetector::createDetectorMap() const Returns empty detector map in given axes units. "; @@ -6716,14 +6841,9 @@ Resets region of interest making whole detector plane available for the simulati Returns detection properties. "; -%feature("docstring") IDetector::initOutputData "void IDetector::initOutputData(OutputData< double > &data) const - -Inits axes of OutputData to match the detector and sets values to zero. -"; - -%feature("docstring") IDetector::createDetectorIntensity "OutputData< double > * IDetector::createDetectorIntensity(const std::vector< SimulationElement > &elements, const Beam &beam, AxesUnits units_type=AxesUnits::DEFAULT) const +%feature("docstring") IDetector::createDetectorIntensity "OutputData< double > * IDetector::createDetectorIntensity(const std::vector< SimulationElement > &elements) const -Returns new intensity map with detector resolution applied and axes in requested units. +Returns new intensity map with detector resolution applied. Map will be cropped to ROI if ROI is present. "; %feature("docstring") IDetector::defaultAxesUnits "virtual AxesUnits IDetector::defaultAxesUnits() const @@ -6731,11 +6851,6 @@ Returns new intensity map with detector resolution applied and axes in requested Return default axes units. "; -%feature("docstring") IDetector::validAxesUnits "virtual std::vector<AxesUnits> IDetector::validAxesUnits() const - -Returns vector of valid axes units. -"; - %feature("docstring") IDetector::numberOfSimulationElements "size_t IDetector::numberOfSimulationElements() const Returns number of simulation elements. @@ -8139,6 +8254,9 @@ C++ includes: INodeVisitor.h %feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const FootprintFactorSquare *) "; +%feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactor2DLattice *) +"; + %feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorAnisoPyramid *) "; @@ -8352,6 +8470,9 @@ C++ includes: INodeVisitor.h %feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction2DLattice *) "; +%feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunctionFinite2DLattice *) +"; + %feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFunction2DParaCrystal *) "; @@ -8547,16 +8668,11 @@ Sets the polarization analyzer characteristics of the detector. apply the detector resolution to the given intensity map "; -%feature("docstring") Instrument::createDetectorIntensity "OutputData< double > * Instrument::createDetectorIntensity(const std::vector< SimulationElement > &elements, AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") Instrument::createDetectorIntensity "OutputData< double > * Instrument::createDetectorIntensity(const std::vector< SimulationElement > &elements) const Returns new intensity map with detector resolution applied and axes in requested units. "; -%feature("docstring") Instrument::createDetectorMap "OutputData< double > * Instrument::createDetectorMap(AxesUnits units=AxesUnits::DEFAULT) const - -Returns empty detector map in given axes units. -"; - %feature("docstring") Instrument::initDetector "void Instrument::initDetector() init detector with beam settings @@ -9022,6 +9138,93 @@ Returns a vector of children (const). "; +// File: classInterferenceFunction2DSuperLattice.xml +%feature("docstring") InterferenceFunction2DSuperLattice " + +Interference function of 2D superlattice with a configurable interference function for each lattice site. + +C++ includes: InterferenceFunction2DSuperLattice.h +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice "InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(const Lattice2D &lattice, unsigned size_1, unsigned size_2) +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice "InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2) + +Constructor of two-dimensional interference function. + +Parameters: +----------- + +length_1: +length of first lattice vector in nanometers + +length_2: +length of second lattice vector in nanometers + +alpha: +angle between lattice vectors in radians + +xi: +rotation of lattice with respect to x-axis (beam direction) in radians +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::~InterferenceFunction2DSuperLattice "InterferenceFunction2DSuperLattice::~InterferenceFunction2DSuperLattice() final +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::clone "InterferenceFunction2DSuperLattice * InterferenceFunction2DSuperLattice::clone() const final + +Returns a clone of this ISample object. +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::accept "void InterferenceFunction2DSuperLattice::accept(INodeVisitor *visitor) const final + +Calls the INodeVisitor's visit method. +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::setSubstructureIFF "void InterferenceFunction2DSuperLattice::setSubstructureIFF(const IInterferenceFunction &sub_iff) +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::substructureIFF "const IInterferenceFunction & InterferenceFunction2DSuperLattice::substructureIFF() const +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::evaluate "double InterferenceFunction2DSuperLattice::evaluate(const kvector_t q) const final + +Evaluates the interference function for a given wavevector transfer (only the real x and y components are relevant) +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::domainSize1 "unsigned InterferenceFunction2DSuperLattice::domainSize1() const +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::domainSize2 "unsigned InterferenceFunction2DSuperLattice::domainSize2() const +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::setPositionVariance "void InterferenceFunction2DSuperLattice::setPositionVariance(double sigma2) +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::positionVariance "double InterferenceFunction2DSuperLattice::positionVariance() const +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::setIntegrationOverXi "void InterferenceFunction2DSuperLattice::setIntegrationOverXi(bool integrate_xi) +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::integrationOverXi "bool InterferenceFunction2DSuperLattice::integrationOverXi() const +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::lattice "const Lattice2D & InterferenceFunction2DSuperLattice::lattice() const +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::getParticleDensity "double InterferenceFunction2DSuperLattice::getParticleDensity() const final + +Returns the particle density associated with this 2d lattice. +"; + +%feature("docstring") InterferenceFunction2DSuperLattice::getChildren "std::vector< const INode * > InterferenceFunction2DSuperLattice::getChildren() const override + +Returns a vector of children (const). +"; + + // File: classInterferenceFunctionFinite2DLattice.xml %feature("docstring") InterferenceFunctionFinite2DLattice " @@ -9071,6 +9274,12 @@ Calls the INodeVisitor's visit method. Evaluates the interference function for a given wavevector transfer (only the real x and y components are relevant) "; +%feature("docstring") InterferenceFunctionFinite2DLattice::domainSize1 "unsigned InterferenceFunctionFinite2DLattice::domainSize1() const +"; + +%feature("docstring") InterferenceFunctionFinite2DLattice::domainSize2 "unsigned InterferenceFunctionFinite2DLattice::domainSize2() const +"; + %feature("docstring") InterferenceFunctionFinite2DLattice::setPositionVariance "void InterferenceFunctionFinite2DLattice::setPositionVariance(double sigma2) "; @@ -12811,11 +13020,6 @@ Inits detector with the beam settings. %feature("docstring") RectangularDetector::getDetectorArrangment "RectangularDetector::EDetectorArrangement RectangularDetector::getDetectorArrangment() const "; -%feature("docstring") RectangularDetector::validAxesUnits "std::vector< AxesUnits > RectangularDetector::validAxesUnits() const override - -returns vector of valid axes units -"; - %feature("docstring") RectangularDetector::defaultAxesUnits "AxesUnits RectangularDetector::defaultAxesUnits() const override return default axes units @@ -14428,11 +14632,6 @@ Resets region of interest making whole detector plane available for the simulati Return default axes units. "; -%feature("docstring") SpecularDetector1D::validAxesUnits "std::vector< AxesUnits > SpecularDetector1D::validAxesUnits() const override - -Returns vector of valid axes units. -"; - // File: classSpecularMagnetic.xml %feature("docstring") SpecularMagnetic " @@ -14490,7 +14689,7 @@ Calls the INodeVisitor's visit method. %feature("docstring") SpecularSimulation::result "SimulationResult SpecularSimulation::result() const override -Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays +Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays. If simulation was not run, returns an array of proper size filled with zeros. "; %feature("docstring") SpecularSimulation::setBeamParameters "void SpecularSimulation::setBeamParameters(double lambda, const IAxis &alpha_axis, const IFootprintFactor *beam_shape=nullptr) @@ -14656,11 +14855,6 @@ Calls the INodeVisitor's visit method. %feature("docstring") SphericalDetector::~SphericalDetector "SphericalDetector::~SphericalDetector() override "; -%feature("docstring") SphericalDetector::validAxesUnits "std::vector< AxesUnits > SphericalDetector::validAxesUnits() const override - -returns vector of valid axes units -"; - %feature("docstring") SphericalDetector::defaultAxesUnits "AxesUnits SphericalDetector::defaultAxesUnits() const override return default axes units @@ -15375,10 +15569,10 @@ C++ includes: WavevectorInfo.h "; -// File: classFourierTransform_1_1Workspace.xml +// File: classConvolve_1_1Workspace.xml -// File: classConvolve_1_1Workspace.xml +// File: classFourierTransform_1_1Workspace.xml // File: classZLimits.xml @@ -15408,34 +15602,34 @@ C++ includes: ZLimits.h "; -// File: namespace_0D101.xml +// File: namespace_0D103.xml -// File: namespace_0D110.xml +// File: namespace_0D112.xml -// File: namespace_0D178.xml +// File: namespace_0D180.xml // File: namespace_0D20.xml -// File: namespace_0D219.xml +// File: namespace_0D22.xml -// File: namespace_0D26.xml +// File: namespace_0D221.xml -// File: namespace_0D286.xml +// File: namespace_0D28.xml -// File: namespace_0D302.xml +// File: namespace_0D288.xml -// File: namespace_0D323.xml +// File: namespace_0D304.xml -// File: namespace_0D327.xml +// File: namespace_0D325.xml // File: namespace_0D329.xml @@ -15444,55 +15638,61 @@ C++ includes: ZLimits.h // File: namespace_0D331.xml -// File: namespace_0D339.xml +// File: namespace_0D333.xml -// File: namespace_0D354.xml +// File: namespace_0D341.xml -// File: namespace_0D362.xml +// File: namespace_0D356.xml -// File: namespace_0D368.xml +// File: namespace_0D364.xml -// File: namespace_0D371.xml +// File: namespace_0D370.xml // File: namespace_0D373.xml -// File: namespace_0D394.xml +// File: namespace_0D375.xml -// File: namespace_0D403.xml +// File: namespace_0D396.xml -// File: namespace_0D436.xml +// File: namespace_0D405.xml -// File: namespace_0D443.xml +// File: namespace_0D417.xml -// File: namespace_0D481.xml +// File: namespace_0D440.xml -// File: namespace_0D489.xml +// File: namespace_0D447.xml -// File: namespace_0D491.xml +// File: namespace_0D485.xml // File: namespace_0D493.xml -// File: namespace_0D571.xml +// File: namespace_0D495.xml + + +// File: namespace_0D497.xml -// File: namespace_0D593.xml +// File: namespace_0D575.xml -// File: namespace_0D86.xml +// File: namespace_0D597.xml + + +// File: namespace_0D88.xml // File: namespaceArrayUtils.xml @@ -15504,6 +15704,58 @@ Returns shape nrows, ncols of 2D array. %feature("docstring") ArrayUtils::createNumpyArray "PyObject * ArrayUtils::createNumpyArray(const std::vector< double > &data) "; +%feature("docstring") ArrayUtils::createData1D "decltype(auto) ArrayUtils::createData1D(const T &vec) + +Creates OutputData from 1D vector. + +Parameters: +----------- + +vec: +std::vector<double> + +std::unique_ptr< OutputData<double>> +"; + +%feature("docstring") ArrayUtils::createVector1D "decltype(auto) ArrayUtils::createVector1D(const T &data) + +Creates 1D vector from OutputData. + +Parameters: +----------- + +vec: + OutputData<double> + +vector<double> +"; + +%feature("docstring") ArrayUtils::createData2D "decltype(auto) ArrayUtils::createData2D(const T &vec) + +Creates OutputData from 2D vector. + +Parameters: +----------- + +vec: +std::vector<std::vector<double>> + +std::unique_ptr< OutputData<double>> +"; + +%feature("docstring") ArrayUtils::createVector2D "decltype(auto) ArrayUtils::createVector2D(const T &data) + +Creates 2D vector from OutputData. + +Parameters: +----------- + +vec: + OutputData<double> + +vector<vector<double>> +"; + // File: namespaceAxisNames.xml %feature("docstring") AxisNames::InitSphericalAxis0 "std::map< AxesUnits, std::string > AxisNames::InitSphericalAxis0() @@ -15632,11 +15884,6 @@ Returns string representation of axes dimension in the form \"(nx,ny)\". Returns string representation of axes dimension in the form \"(nx,ny)\". "; -%feature("docstring") DetectorFunctions::createDataSet "std::unique_ptr< OutputData< double > > DetectorFunctions::createDataSet(const Instrument &instrument, const OutputData< double > &data, bool put_masked_areas_to_zero=true, AxesUnits units=AxesUnits::DEFAULT) - -Creates real data containing original user data clipped to the ROI area of the detector. If put_masked_areas_to_zero==true: resulting data will have 0.0 in all masked areas If put_masked_areas_to_zero==false: resulting data will be only cropped, masked areas will still contain intensities TODO: what users will like more (this appears on FitSuitePlotObserver)? -"; - // File: namespaceExceptions.xml %feature("docstring") Exceptions::LogExceptionMessage "void Exceptions::LogExceptionMessage(const std::string &) @@ -16399,6 +16646,12 @@ Helper factory function to use in GISASSimulation. Depending on the type of det // File: InterferenceFunction2DParaCrystal_8h.xml +// File: InterferenceFunction2DSuperLattice_8cpp.xml + + +// File: InterferenceFunction2DSuperLattice_8h.xml + + // File: InterferenceFunctionFinite2DLattice_8cpp.xml @@ -17370,7 +17623,7 @@ Constructs a material with name, refractive_index and magnetization (in A/m). %feature("docstring") MaterialBySLD "Material MaterialBySLD(const std::string &name, double sld_real, double sld_imag, kvector_t magnetization) -Constructs a wavelength-independent material with a given complex-valued scattering lenght density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization. +Constructs a wavelength-independent material with a given complex-valued scattering length density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization. Parameters: ----------- @@ -17411,7 +17664,7 @@ Constructs a material with name, refractive_index and magnetization (in A/m). %feature("docstring") MaterialBySLD "BA_CORE_API_ Material MaterialBySLD(const std::string &name, double sld_real, double sld_imag, kvector_t magnetization=kvector_t()) -Constructs a wavelength-independent material with a given complex-valued scattering lenght density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization. +Constructs a wavelength-independent material with a given complex-valued scattering length density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization. Parameters: ----------- @@ -17717,6 +17970,12 @@ Recursive bisection to determine the number of the deepest layer where RT comput // File: Crystal_8h.xml +// File: FormFactor2DLattice_8cpp.xml + + +// File: FormFactor2DLattice_8h.xml + + // File: FormFactorCoreShell_8cpp.xml @@ -18363,6 +18622,9 @@ Template function to create an integrator object. // File: PyImport_8h.xml +// File: PyObject_8h.xml + + // File: PythonCore_8h.xml diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py index 26cdbc501084c8bb1c83105a9c39bd8f05c25e11..01d97a03c69a59de755bfeebaf9be93ee8455be8 100644 --- a/auto/Wrap/libBornAgainCore.py +++ b/auto/Wrap/libBornAgainCore.py @@ -6264,24 +6264,21 @@ class FitObject(INode): __init__(FitObject self, Simulation simulation, vdouble2d_t data, double weight=1) -> FitObject __init__(FitObject self, Simulation simulation, vdouble2d_t data) -> FitObject - FitObject::FitObject(const Simulation &simulation, const OutputData< double > &real_data, double weight=1) + FitObject::FitObject(const Simulation &simulation, const std::vector< std::vector< double >> &data, double weight=1) - FitObject constructor + Constructs simulation/data pair for later fit. Parameters: ----------- simulation: - The simulation to run + simulation to run - real_data: - The real data + data: + experimental data weight: - Weight of dataset in chi2 calculations - - adjust_detector_to_data: - Detector axes will be adjusted to real data axes, if true + weight of dataset in chi2 calculations """ this = _libBornAgainCore.new_FitObject(*args) @@ -6357,7 +6354,9 @@ class FitObject(INode): """ simulationResult(FitObject self) -> SimulationResult - SimulationResult FitObject::simulationResult() const + SimulationResult FitObject::simulationResult() const + + Returns simulation result. """ return _libBornAgainCore.FitObject_simulationResult(self) @@ -6367,29 +6366,59 @@ class FitObject(INode): """ experimentalData(FitObject self) -> SimulationResult - SimulationResult FitObject::experimentalData() const + SimulationResult FitObject::experimentalData() const + + Returns experimental data. """ return _libBornAgainCore.FitObject_experimentalData(self) def relativeDifference(self): - """relativeDifference(FitObject self) -> SimulationResult""" + """ + relativeDifference(FitObject self) -> SimulationResult + + SimulationResult FitObject::relativeDifference() const + + Returns relative difference between simulation and experimental data. + + """ return _libBornAgainCore.FitObject_relativeDifference(self) def runSimulation(self): - """runSimulation(FitObject self)""" + """ + runSimulation(FitObject self) + + void FitObject::runSimulation() + + Runs internal simulation object. + + """ return _libBornAgainCore.FitObject_runSimulation(self) def experimental_array(self): - """experimental_array(FitObject self) -> vdouble1d_t""" + """ + experimental_array(FitObject self) -> vdouble1d_t + + std::vector< double > FitObject::experimental_array() const + + Returns one dimensional array representing experimental data. Masked areas and the area outside of region of interest are not included. + + """ return _libBornAgainCore.FitObject_experimental_array(self) def simulation_array(self): - """simulation_array(FitObject self) -> vdouble1d_t""" + """ + simulation_array(FitObject self) -> vdouble1d_t + + std::vector< double > FitObject::simulation_array() const + + Returns one dimensional array representing simulated intensities data. Masked areas and the area outside of region of interest are not included. + + """ return _libBornAgainCore.FitObject_simulation_array(self) FitObject_swigregister = _libBornAgainCore.FitObject_swigregister @@ -6970,7 +6999,7 @@ class FitSuite(IObservable): SimulationResult FitSuite::relativeDifference(size_t i_item=0) const - Returns relative difference between simulation and real data. + Returns relative difference between simulation and experimental data. Parameters: ----------- @@ -7075,7 +7104,15 @@ class FitSuiteObjects(INode): simulationResult(FitSuiteObjects self, size_t i_item=0) -> SimulationResult simulationResult(FitSuiteObjects self) -> SimulationResult - SimulationResult FitSuiteObjects::simulationResult(size_t i_item=0) const + SimulationResult FitSuiteObjects::simulationResult(size_t i_item=0) const + + Returns simulation result. + + Parameters: + ----------- + + i_item: + the index of fit pair """ return _libBornAgainCore.FitSuiteObjects_simulationResult(self, i_item) @@ -7086,7 +7123,15 @@ class FitSuiteObjects(INode): experimentalData(FitSuiteObjects self, size_t i_item=0) -> SimulationResult experimentalData(FitSuiteObjects self) -> SimulationResult - SimulationResult FitSuiteObjects::experimentalData(size_t i_item=0) const + SimulationResult FitSuiteObjects::experimentalData(size_t i_item=0) const + + Returns experimental data. + + Parameters: + ----------- + + i_item: + the index of fit pair """ return _libBornAgainCore.FitSuiteObjects_experimentalData(self, i_item) @@ -7097,7 +7142,15 @@ class FitSuiteObjects(INode): relativeDifference(FitSuiteObjects self, size_t i_item=0) -> SimulationResult relativeDifference(FitSuiteObjects self) -> SimulationResult - SimulationResult FitSuiteObjects::relativeDifference(size_t i_item=0) const + SimulationResult FitSuiteObjects::relativeDifference(size_t i_item=0) const + + Returns relative difference between simulation and experimental data. + + Parameters: + ----------- + + i_item: + the index of fit pair """ return _libBornAgainCore.FitSuiteObjects_relativeDifference(self, i_item) @@ -7141,7 +7194,7 @@ class FitSuiteObjects(INode): ----------- global_index: - index accross all element in FitElement vector + index across all element in FitElement vector """ return _libBornAgainCore.FitSuiteObjects_getResidualValue(self, global_index) @@ -12282,7 +12335,14 @@ FormFactorPolygonalSurface_swigregister = _libBornAgainCore.FormFactorPolygonalS FormFactorPolygonalSurface_swigregister(FormFactorPolygonalSurface) class FormFactor2DLattice(IFormFactor): - """Proxy of C++ FormFactor2DLattice class.""" + """ + + + The formfactor of a finite 2d lattice of other shapes. + + C++ includes: FormFactor2DLattice.h + + """ __swig_setmethods__ = {} for _s in [IFormFactor]: @@ -12298,6 +12358,9 @@ class FormFactor2DLattice(IFormFactor): """ __init__(FormFactor2DLattice self, IFormFactor form_factor, Lattice2D lattice, unsigned int size_1, unsigned int size_2) -> FormFactor2DLattice __init__(FormFactor2DLattice self, IFormFactor form_factor, double length_1, double length_2, double alpha, double xi, unsigned int size_1, unsigned int size_2) -> FormFactor2DLattice + + FormFactor2DLattice::FormFactor2DLattice(const IFormFactor &form_factor, double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2) + """ this = _libBornAgainCore.new_FormFactor2DLattice(*args) try: @@ -12311,7 +12374,7 @@ class FormFactor2DLattice(IFormFactor): """ clone(FormFactor2DLattice self) -> FormFactor2DLattice - IFormFactor* IFormFactor::clone() const override=0 + FormFactor2DLattice * FormFactor2DLattice::clone() const overridefinal Returns a clone of this ISample object. @@ -12323,7 +12386,7 @@ class FormFactor2DLattice(IFormFactor): """ accept(FormFactor2DLattice self, INodeVisitor visitor) - virtual void INode::accept(INodeVisitor *visitor) const =0 + void FormFactor2DLattice::accept(INodeVisitor *visitor) const overridefinal Calls the INodeVisitor's visit method. @@ -12335,7 +12398,7 @@ class FormFactor2DLattice(IFormFactor): """ setAmbientMaterial(FormFactor2DLattice self, Material material) - virtual void IFormFactor::setAmbientMaterial(Material)=0 + void FormFactor2DLattice::setAmbientMaterial(Material material) overridefinal Passes the material in which this particle is embedded. @@ -12347,7 +12410,7 @@ class FormFactor2DLattice(IFormFactor): """ volume(FormFactor2DLattice self) -> double - double IFormFactor::volume() const + double FormFactor2DLattice::volume() const overridefinal Returns the total volume of the particle of this form factor's shape. @@ -12359,7 +12422,7 @@ class FormFactor2DLattice(IFormFactor): """ radialExtension(FormFactor2DLattice self) -> double - virtual double IFormFactor::radialExtension() const =0 + double FormFactor2DLattice::radialExtension() const overridefinal Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations @@ -12371,7 +12434,7 @@ class FormFactor2DLattice(IFormFactor): """ bottomZ(FormFactor2DLattice self, IRotation rotation) -> double - virtual double IFormFactor::bottomZ(const IRotation &rotation) const =0 + double FormFactor2DLattice::bottomZ(const IRotation &rotation) const override Returns the z-coordinate of the lowest point in this shape after a given rotation. @@ -12383,7 +12446,7 @@ class FormFactor2DLattice(IFormFactor): """ topZ(FormFactor2DLattice self, IRotation rotation) -> double - virtual double IFormFactor::topZ(const IRotation &rotation) const =0 + double FormFactor2DLattice::topZ(const IRotation &rotation) const overridefinal Returns the z-coordinate of the lowest point in this shape after a given rotation. @@ -12395,7 +12458,7 @@ class FormFactor2DLattice(IFormFactor): """ evaluate(FormFactor2DLattice self, WavevectorInfo wavevectors) -> complex_t - virtual complex_t IFormFactor::evaluate(const WavevectorInfo &wavevectors) const =0 + complex_t FormFactor2DLattice::evaluate(const WavevectorInfo &wavevectors) const overridefinal Returns scattering amplitude for complex wavevectors ki, kf. @@ -18894,9 +18957,9 @@ class IDetector(ICloneable, INode): """ createDetectorIntensity(IDetector self, std::vector< SimulationElement,std::allocator< SimulationElement > > const & elements) -> IntensityData - OutputData< double > * IDetector::createDetectorIntensity(const std::vector< SimulationElement > &elements, const Beam &beam, AxesUnits units_type=AxesUnits::DEFAULT) const + OutputData< double > * IDetector::createDetectorIntensity(const std::vector< SimulationElement > &elements) const - Returns new intensity map with detector resolution applied and axes in requested units. + Returns new intensity map with detector resolution applied. Map will be cropped to ROI if ROI is present. """ return _libBornAgainCore.IDetector_createDetectorIntensity(self, elements) @@ -20836,7 +20899,7 @@ class Instrument(INode): """ createDetectorIntensity(Instrument self, std::vector< SimulationElement,std::allocator< SimulationElement > > const & elements) -> IntensityData - OutputData< double > * Instrument::createDetectorIntensity(const std::vector< SimulationElement > &elements, AxesUnits units=AxesUnits::DEFAULT) const + OutputData< double > * Instrument::createDetectorIntensity(const std::vector< SimulationElement > &elements) const Returns new intensity map with detector resolution applied and axes in requested units. @@ -21672,12 +21735,22 @@ class InterferenceFunctionFinite2DLattice(IInterferenceFunction): def domainSize1(self): - """domainSize1(InterferenceFunctionFinite2DLattice self) -> unsigned int""" + """ + domainSize1(InterferenceFunctionFinite2DLattice self) -> unsigned int + + unsigned InterferenceFunctionFinite2DLattice::domainSize1() const + + """ return _libBornAgainCore.InterferenceFunctionFinite2DLattice_domainSize1(self) def domainSize2(self): - """domainSize2(InterferenceFunctionFinite2DLattice self) -> unsigned int""" + """ + domainSize2(InterferenceFunctionFinite2DLattice self) -> unsigned int + + unsigned InterferenceFunctionFinite2DLattice::domainSize2() const + + """ return _libBornAgainCore.InterferenceFunctionFinite2DLattice_domainSize2(self) @@ -21765,6 +21838,231 @@ def InterferenceFunctionFinite2DLattice_createHexagonal(lattice_length, xi, size """InterferenceFunctionFinite2DLattice_createHexagonal(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunctionFinite2DLattice""" return _libBornAgainCore.InterferenceFunctionFinite2DLattice_createHexagonal(lattice_length, xi, size_1, size_2) +class InterferenceFunction2DSuperLattice(IInterferenceFunction): + """ + + + Interference function of 2D superlattice with a configurable interference function for each lattice site. + + C++ includes: InterferenceFunction2DSuperLattice.h + + """ + + __swig_setmethods__ = {} + for _s in [IInterferenceFunction]: + __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) + __setattr__ = lambda self, name, value: _swig_setattr(self, InterferenceFunction2DSuperLattice, name, value) + __swig_getmethods__ = {} + for _s in [IInterferenceFunction]: + __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) + __getattr__ = lambda self, name: _swig_getattr(self, InterferenceFunction2DSuperLattice, name) + __repr__ = _swig_repr + + def __init__(self, *args): + """ + __init__(InterferenceFunction2DSuperLattice self, Lattice2D lattice, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice + __init__(InterferenceFunction2DSuperLattice self, double length_1, double length_2, double alpha, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice + + InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2) + + Constructor of two-dimensional interference function. + + Parameters: + ----------- + + length_1: + length of first lattice vector in nanometers + + length_2: + length of second lattice vector in nanometers + + alpha: + angle between lattice vectors in radians + + xi: + rotation of lattice with respect to x-axis (beam direction) in radians + + """ + this = _libBornAgainCore.new_InterferenceFunction2DSuperLattice(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + __swig_destroy__ = _libBornAgainCore.delete_InterferenceFunction2DSuperLattice + __del__ = lambda self: None + + def clone(self): + """ + clone(InterferenceFunction2DSuperLattice self) -> InterferenceFunction2DSuperLattice + + InterferenceFunction2DSuperLattice * InterferenceFunction2DSuperLattice::clone() const final + + Returns a clone of this ISample object. + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_clone(self) + + + def accept(self, visitor): + """ + accept(InterferenceFunction2DSuperLattice self, INodeVisitor visitor) + + void InterferenceFunction2DSuperLattice::accept(INodeVisitor *visitor) const final + + Calls the INodeVisitor's visit method. + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_accept(self, visitor) + + + def setSubstructureIFF(self, sub_iff): + """ + setSubstructureIFF(InterferenceFunction2DSuperLattice self, IInterferenceFunction sub_iff) + + void InterferenceFunction2DSuperLattice::setSubstructureIFF(const IInterferenceFunction &sub_iff) + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_setSubstructureIFF(self, sub_iff) + + + def substructureIFF(self): + """ + substructureIFF(InterferenceFunction2DSuperLattice self) -> IInterferenceFunction + + const IInterferenceFunction & InterferenceFunction2DSuperLattice::substructureIFF() const + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_substructureIFF(self) + + + def createSquare(lattice_length, xi, size_1, size_2): + """createSquare(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice""" + return _libBornAgainCore.InterferenceFunction2DSuperLattice_createSquare(lattice_length, xi, size_1, size_2) + + createSquare = staticmethod(createSquare) + + def createHexagonal(lattice_length, xi, size_1, size_2): + """createHexagonal(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice""" + return _libBornAgainCore.InterferenceFunction2DSuperLattice_createHexagonal(lattice_length, xi, size_1, size_2) + + createHexagonal = staticmethod(createHexagonal) + + def evaluate(self, q): + """ + evaluate(InterferenceFunction2DSuperLattice self, kvector_t q) -> double + + double InterferenceFunction2DSuperLattice::evaluate(const kvector_t q) const final + + Evaluates the interference function for a given wavevector transfer (only the real x and y components are relevant) + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_evaluate(self, q) + + + def domainSize1(self): + """ + domainSize1(InterferenceFunction2DSuperLattice self) -> unsigned int + + unsigned InterferenceFunction2DSuperLattice::domainSize1() const + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_domainSize1(self) + + + def domainSize2(self): + """ + domainSize2(InterferenceFunction2DSuperLattice self) -> unsigned int + + unsigned InterferenceFunction2DSuperLattice::domainSize2() const + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_domainSize2(self) + + + def setPositionVariance(self, sigma2): + """ + setPositionVariance(InterferenceFunction2DSuperLattice self, double sigma2) + + void InterferenceFunction2DSuperLattice::setPositionVariance(double sigma2) + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_setPositionVariance(self, sigma2) + + + def positionVariance(self): + """ + positionVariance(InterferenceFunction2DSuperLattice self) -> double + + double InterferenceFunction2DSuperLattice::positionVariance() const + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_positionVariance(self) + + + def setIntegrationOverXi(self, integrate_xi): + """ + setIntegrationOverXi(InterferenceFunction2DSuperLattice self, bool integrate_xi) + + void InterferenceFunction2DSuperLattice::setIntegrationOverXi(bool integrate_xi) + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_setIntegrationOverXi(self, integrate_xi) + + + def integrationOverXi(self): + """ + integrationOverXi(InterferenceFunction2DSuperLattice self) -> bool + + bool InterferenceFunction2DSuperLattice::integrationOverXi() const + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_integrationOverXi(self) + + + def lattice(self): + """ + lattice(InterferenceFunction2DSuperLattice self) -> Lattice2D + + const Lattice2D & InterferenceFunction2DSuperLattice::lattice() const + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_lattice(self) + + + def getParticleDensity(self): + """ + getParticleDensity(InterferenceFunction2DSuperLattice self) -> double + + double InterferenceFunction2DSuperLattice::getParticleDensity() const final + + Returns the particle density associated with this 2d lattice. + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_getParticleDensity(self) + + + def getChildren(self): + """ + getChildren(InterferenceFunction2DSuperLattice self) -> swig_dummy_type_const_inode_vector + + std::vector< const INode * > InterferenceFunction2DSuperLattice::getChildren() const override + + Returns a vector of children (const). + + """ + return _libBornAgainCore.InterferenceFunction2DSuperLattice_getChildren(self) + +InterferenceFunction2DSuperLattice_swigregister = _libBornAgainCore.InterferenceFunction2DSuperLattice_swigregister +InterferenceFunction2DSuperLattice_swigregister(InterferenceFunction2DSuperLattice) + +def InterferenceFunction2DSuperLattice_createSquare(lattice_length, xi, size_1, size_2): + """InterferenceFunction2DSuperLattice_createSquare(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice""" + return _libBornAgainCore.InterferenceFunction2DSuperLattice_createSquare(lattice_length, xi, size_1, size_2) + +def InterferenceFunction2DSuperLattice_createHexagonal(lattice_length, xi, size_1, size_2): + """InterferenceFunction2DSuperLattice_createHexagonal(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice""" + return _libBornAgainCore.InterferenceFunction2DSuperLattice_createHexagonal(lattice_length, xi, size_1, size_2) + class InterferenceFunction2DParaCrystal(IInterferenceFunction): """ @@ -23879,7 +24177,7 @@ def MaterialBySLD(*args): BA_CORE_API_ Material MaterialBySLD(const std::string &name, double sld_real, double sld_imag, kvector_t magnetization=kvector_t()) - Constructs a wavelength-independent material with a given complex-valued scattering lenght density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization. + Constructs a wavelength-independent material with a given complex-valued scattering length density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization. Parameters: ----------- @@ -27376,7 +27674,7 @@ class SpecularSimulation(Simulation): SimulationResult SpecularSimulation::result() const override - Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays + Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays. If simulation was not run, returns an array of proper size filled with zeros. """ return _libBornAgainCore.SpecularSimulation_result(self) diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp index 4481599dd61e7334d086a2e4024e2784417ada14..9c53312d856b27103ba32ec9c93444680b9caae6 100644 --- a/auto/Wrap/libBornAgainCore_wrap.cpp +++ b/auto/Wrap/libBornAgainCore_wrap.cpp @@ -3623,159 +3623,160 @@ namespace Swig { #define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[169] #define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[170] #define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[171] -#define SWIGTYPE_p_InterferenceFunctionFinite2DLattice swig_types[172] -#define SWIGTYPE_p_InterferenceFunctionNone swig_types[173] -#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[174] -#define SWIGTYPE_p_IsGISAXSDetector swig_types[175] -#define SWIGTYPE_p_Lattice swig_types[176] -#define SWIGTYPE_p_Lattice1DParameters swig_types[177] -#define SWIGTYPE_p_Lattice2D swig_types[178] -#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[179] -#define SWIGTYPE_p_Layer swig_types[180] -#define SWIGTYPE_p_LayerInterface swig_types[181] -#define SWIGTYPE_p_LayerRoughness swig_types[182] -#define SWIGTYPE_p_Line swig_types[183] -#define SWIGTYPE_p_Material swig_types[184] -#define SWIGTYPE_p_MesoCrystal swig_types[185] -#define SWIGTYPE_p_MultiLayer swig_types[186] -#define SWIGTYPE_p_OffSpecSimulation swig_types[187] -#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[188] -#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[189] -#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[190] -#define SWIGTYPE_p_OutputDataT_bool_t swig_types[191] -#define SWIGTYPE_p_OutputDataT_double_t swig_types[192] -#define SWIGTYPE_p_ParameterDistribution swig_types[193] -#define SWIGTYPE_p_ParameterPool swig_types[194] -#define SWIGTYPE_p_ParameterSample swig_types[195] -#define SWIGTYPE_p_Particle swig_types[196] -#define SWIGTYPE_p_ParticleComposition swig_types[197] -#define SWIGTYPE_p_ParticleCoreShell swig_types[198] -#define SWIGTYPE_p_ParticleDistribution swig_types[199] -#define SWIGTYPE_p_ParticleLayout swig_types[200] -#define SWIGTYPE_p_ParticleLimits swig_types[201] -#define SWIGTYPE_p_PoissonNoiseBackground swig_types[202] -#define SWIGTYPE_p_Polygon swig_types[203] -#define SWIGTYPE_p_PolygonPrivate swig_types[204] -#define SWIGTYPE_p_PolygonalTopology swig_types[205] -#define SWIGTYPE_p_PolyhedralEdge swig_types[206] -#define SWIGTYPE_p_PolyhedralFace swig_types[207] -#define SWIGTYPE_p_PolyhedralTopology swig_types[208] -#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[209] -#define SWIGTYPE_p_RealLimits swig_types[210] -#define SWIGTYPE_p_RealParameter swig_types[211] -#define SWIGTYPE_p_Rectangle swig_types[212] -#define SWIGTYPE_p_RectangularDetector swig_types[213] -#define SWIGTYPE_p_RectangularPixel swig_types[214] -#define SWIGTYPE_p_RegionOfInterest swig_types[215] -#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[216] -#define SWIGTYPE_p_RotationEuler swig_types[217] -#define SWIGTYPE_p_RotationX swig_types[218] -#define SWIGTYPE_p_RotationY swig_types[219] -#define SWIGTYPE_p_RotationZ swig_types[220] -#define SWIGTYPE_p_SafePointerVectorT_FitObject_t__iterator swig_types[221] -#define SWIGTYPE_p_SafePointerVectorT_IParticle_const_t swig_types[222] -#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[223] -#define SWIGTYPE_p_SafePointerVectorT_Layer_t swig_types[224] -#define SWIGTYPE_p_SampleBuilderFactory swig_types[225] -#define SWIGTYPE_p_SimpleSelectionRule swig_types[226] -#define SWIGTYPE_p_Simulation swig_types[227] -#define SWIGTYPE_p_Simulation2D swig_types[228] -#define SWIGTYPE_p_SimulationFactory swig_types[229] -#define SWIGTYPE_p_SimulationOptions swig_types[230] -#define SWIGTYPE_p_SimulationResult swig_types[231] -#define SWIGTYPE_p_SlicedParticle swig_types[232] -#define SWIGTYPE_p_SlicingEffects swig_types[233] -#define SWIGTYPE_p_SpecularDetector1D swig_types[234] -#define SWIGTYPE_p_SpecularSimulation swig_types[235] -#define SWIGTYPE_p_SphericalDetector swig_types[236] -#define SWIGTYPE_p_SphericalPixel swig_types[237] -#define SWIGTYPE_p_SquareLattice swig_types[238] -#define SWIGTYPE_p_SquaredFunctionDefault swig_types[239] -#define SWIGTYPE_p_SquaredFunctionGaussianError swig_types[240] -#define SWIGTYPE_p_SquaredFunctionMeanSquaredError swig_types[241] -#define SWIGTYPE_p_SquaredFunctionSimError swig_types[242] -#define SWIGTYPE_p_SquaredFunctionSystematicError swig_types[243] -#define SWIGTYPE_p_ThreadInfo swig_types[244] -#define SWIGTYPE_p_Transform3D swig_types[245] -#define SWIGTYPE_p_VariableBinAxis swig_types[246] -#define SWIGTYPE_p_VerticalLine swig_types[247] -#define SWIGTYPE_p_WavevectorInfo swig_types[248] -#define SWIGTYPE_p_ZLimits swig_types[249] -#define SWIGTYPE_p_allocator_type swig_types[250] -#define SWIGTYPE_p_bool swig_types[251] -#define SWIGTYPE_p_char swig_types[252] -#define SWIGTYPE_p_const_iterator swig_types[253] -#define SWIGTYPE_p_const_reference swig_types[254] -#define SWIGTYPE_p_difference_type swig_types[255] -#define SWIGTYPE_p_double swig_types[256] -#define SWIGTYPE_p_int swig_types[257] -#define SWIGTYPE_p_iterator swig_types[258] -#define SWIGTYPE_p_long_long swig_types[259] -#define SWIGTYPE_p_observer_t swig_types[260] -#define SWIGTYPE_p_observerlist_t swig_types[261] -#define SWIGTYPE_p_p_PyObject swig_types[262] -#define SWIGTYPE_p_reference swig_types[263] -#define SWIGTYPE_p_short swig_types[264] -#define SWIGTYPE_p_signed_char swig_types[265] -#define SWIGTYPE_p_size_type swig_types[266] -#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[267] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[268] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[269] -#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[270] -#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[271] -#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[272] -#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[273] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[274] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[275] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[276] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[277] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[278] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[279] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[280] -#define SWIGTYPE_p_std__complexT_double_t swig_types[281] -#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[282] -#define SWIGTYPE_p_std__functionT_Simulation_pfF_t swig_types[283] -#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[284] -#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[285] -#define SWIGTYPE_p_std__invalid_argument swig_types[286] -#define SWIGTYPE_p_std__mapT_std__string_std__string_t__const_iterator swig_types[287] -#define SWIGTYPE_p_std__shared_ptrT_IFitObserver_t swig_types[288] -#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[289] -#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[290] -#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[291] -#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[292] -#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[293] -#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[294] -#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t swig_types[295] -#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__iterator swig_types[296] -#define SWIGTYPE_p_std__vectorT_HomogeneousRegion_std__allocatorT_HomogeneousRegion_t_t swig_types[297] -#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[298] -#define SWIGTYPE_p_std__vectorT_ILayout_const_p_std__allocatorT_ILayout_const_p_t_t swig_types[299] -#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[300] -#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[301] -#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[302] -#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[303] -#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[304] -#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[305] -#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[306] -#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t swig_types[307] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[308] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[309] -#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[310] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[311] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[312] -#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[313] -#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[314] -#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[315] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[316] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[317] -#define SWIGTYPE_p_unsigned_char swig_types[318] -#define SWIGTYPE_p_unsigned_int swig_types[319] -#define SWIGTYPE_p_unsigned_long_long swig_types[320] -#define SWIGTYPE_p_unsigned_short swig_types[321] -#define SWIGTYPE_p_value_type swig_types[322] -static swig_type_info *swig_types[324]; -static swig_module_info swig_module = {swig_types, 323, 0, 0, 0, 0}; +#define SWIGTYPE_p_InterferenceFunction2DSuperLattice swig_types[172] +#define SWIGTYPE_p_InterferenceFunctionFinite2DLattice swig_types[173] +#define SWIGTYPE_p_InterferenceFunctionNone swig_types[174] +#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[175] +#define SWIGTYPE_p_IsGISAXSDetector swig_types[176] +#define SWIGTYPE_p_Lattice swig_types[177] +#define SWIGTYPE_p_Lattice1DParameters swig_types[178] +#define SWIGTYPE_p_Lattice2D swig_types[179] +#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[180] +#define SWIGTYPE_p_Layer swig_types[181] +#define SWIGTYPE_p_LayerInterface swig_types[182] +#define SWIGTYPE_p_LayerRoughness swig_types[183] +#define SWIGTYPE_p_Line swig_types[184] +#define SWIGTYPE_p_Material swig_types[185] +#define SWIGTYPE_p_MesoCrystal swig_types[186] +#define SWIGTYPE_p_MultiLayer swig_types[187] +#define SWIGTYPE_p_OffSpecSimulation swig_types[188] +#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[189] +#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[190] +#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[191] +#define SWIGTYPE_p_OutputDataT_bool_t swig_types[192] +#define SWIGTYPE_p_OutputDataT_double_t swig_types[193] +#define SWIGTYPE_p_ParameterDistribution swig_types[194] +#define SWIGTYPE_p_ParameterPool swig_types[195] +#define SWIGTYPE_p_ParameterSample swig_types[196] +#define SWIGTYPE_p_Particle swig_types[197] +#define SWIGTYPE_p_ParticleComposition swig_types[198] +#define SWIGTYPE_p_ParticleCoreShell swig_types[199] +#define SWIGTYPE_p_ParticleDistribution swig_types[200] +#define SWIGTYPE_p_ParticleLayout swig_types[201] +#define SWIGTYPE_p_ParticleLimits swig_types[202] +#define SWIGTYPE_p_PoissonNoiseBackground swig_types[203] +#define SWIGTYPE_p_Polygon swig_types[204] +#define SWIGTYPE_p_PolygonPrivate swig_types[205] +#define SWIGTYPE_p_PolygonalTopology swig_types[206] +#define SWIGTYPE_p_PolyhedralEdge swig_types[207] +#define SWIGTYPE_p_PolyhedralFace swig_types[208] +#define SWIGTYPE_p_PolyhedralTopology swig_types[209] +#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[210] +#define SWIGTYPE_p_RealLimits swig_types[211] +#define SWIGTYPE_p_RealParameter swig_types[212] +#define SWIGTYPE_p_Rectangle swig_types[213] +#define SWIGTYPE_p_RectangularDetector swig_types[214] +#define SWIGTYPE_p_RectangularPixel swig_types[215] +#define SWIGTYPE_p_RegionOfInterest swig_types[216] +#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[217] +#define SWIGTYPE_p_RotationEuler swig_types[218] +#define SWIGTYPE_p_RotationX swig_types[219] +#define SWIGTYPE_p_RotationY swig_types[220] +#define SWIGTYPE_p_RotationZ swig_types[221] +#define SWIGTYPE_p_SafePointerVectorT_FitObject_t__iterator swig_types[222] +#define SWIGTYPE_p_SafePointerVectorT_IParticle_const_t swig_types[223] +#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[224] +#define SWIGTYPE_p_SafePointerVectorT_Layer_t swig_types[225] +#define SWIGTYPE_p_SampleBuilderFactory swig_types[226] +#define SWIGTYPE_p_SimpleSelectionRule swig_types[227] +#define SWIGTYPE_p_Simulation swig_types[228] +#define SWIGTYPE_p_Simulation2D swig_types[229] +#define SWIGTYPE_p_SimulationFactory swig_types[230] +#define SWIGTYPE_p_SimulationOptions swig_types[231] +#define SWIGTYPE_p_SimulationResult swig_types[232] +#define SWIGTYPE_p_SlicedParticle swig_types[233] +#define SWIGTYPE_p_SlicingEffects swig_types[234] +#define SWIGTYPE_p_SpecularDetector1D swig_types[235] +#define SWIGTYPE_p_SpecularSimulation swig_types[236] +#define SWIGTYPE_p_SphericalDetector swig_types[237] +#define SWIGTYPE_p_SphericalPixel swig_types[238] +#define SWIGTYPE_p_SquareLattice swig_types[239] +#define SWIGTYPE_p_SquaredFunctionDefault swig_types[240] +#define SWIGTYPE_p_SquaredFunctionGaussianError swig_types[241] +#define SWIGTYPE_p_SquaredFunctionMeanSquaredError swig_types[242] +#define SWIGTYPE_p_SquaredFunctionSimError swig_types[243] +#define SWIGTYPE_p_SquaredFunctionSystematicError swig_types[244] +#define SWIGTYPE_p_ThreadInfo swig_types[245] +#define SWIGTYPE_p_Transform3D swig_types[246] +#define SWIGTYPE_p_VariableBinAxis swig_types[247] +#define SWIGTYPE_p_VerticalLine swig_types[248] +#define SWIGTYPE_p_WavevectorInfo swig_types[249] +#define SWIGTYPE_p_ZLimits swig_types[250] +#define SWIGTYPE_p_allocator_type swig_types[251] +#define SWIGTYPE_p_bool swig_types[252] +#define SWIGTYPE_p_char swig_types[253] +#define SWIGTYPE_p_const_iterator swig_types[254] +#define SWIGTYPE_p_const_reference swig_types[255] +#define SWIGTYPE_p_difference_type swig_types[256] +#define SWIGTYPE_p_double swig_types[257] +#define SWIGTYPE_p_int swig_types[258] +#define SWIGTYPE_p_iterator swig_types[259] +#define SWIGTYPE_p_long_long swig_types[260] +#define SWIGTYPE_p_observer_t swig_types[261] +#define SWIGTYPE_p_observerlist_t swig_types[262] +#define SWIGTYPE_p_p_PyObject swig_types[263] +#define SWIGTYPE_p_reference swig_types[264] +#define SWIGTYPE_p_short swig_types[265] +#define SWIGTYPE_p_signed_char swig_types[266] +#define SWIGTYPE_p_size_type swig_types[267] +#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[268] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[269] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[270] +#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[271] +#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[272] +#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[273] +#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[274] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[275] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[276] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[277] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[278] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[279] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[280] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[281] +#define SWIGTYPE_p_std__complexT_double_t swig_types[282] +#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[283] +#define SWIGTYPE_p_std__functionT_Simulation_pfF_t swig_types[284] +#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[285] +#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[286] +#define SWIGTYPE_p_std__invalid_argument swig_types[287] +#define SWIGTYPE_p_std__mapT_std__string_std__string_t__const_iterator swig_types[288] +#define SWIGTYPE_p_std__shared_ptrT_IFitObserver_t swig_types[289] +#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[290] +#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[291] +#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[292] +#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[293] +#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[294] +#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[295] +#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t swig_types[296] +#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__iterator swig_types[297] +#define SWIGTYPE_p_std__vectorT_HomogeneousRegion_std__allocatorT_HomogeneousRegion_t_t swig_types[298] +#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[299] +#define SWIGTYPE_p_std__vectorT_ILayout_const_p_std__allocatorT_ILayout_const_p_t_t swig_types[300] +#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[301] +#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[302] +#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[303] +#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[304] +#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[305] +#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[306] +#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[307] +#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t swig_types[308] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[309] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[310] +#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[311] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[312] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[313] +#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[314] +#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[315] +#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[316] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[317] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[318] +#define SWIGTYPE_p_unsigned_char swig_types[319] +#define SWIGTYPE_p_unsigned_int swig_types[320] +#define SWIGTYPE_p_unsigned_long_long swig_types[321] +#define SWIGTYPE_p_unsigned_short swig_types[322] +#define SWIGTYPE_p_value_type swig_types[323] +static swig_type_info *swig_types[325]; +static swig_module_info swig_module = {swig_types, 324, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) @@ -6756,6 +6757,7 @@ SWIGINTERN void std_vector_Sl_std_string_Sg__insert__SWIG_1(std::vector< std::st #include "InterferenceFunction2DLattice.h" #include "InterferenceFunctionFinite2DLattice.h" #include "InterferenceFunction2DParaCrystal.h" +#include "InterferenceFunction2DSuperLattice.h" #include "InterferenceFunctionNone.h" #include "InterferenceFunctionRadialParaCrystal.h" #include "IsGISAXSDetector.h" @@ -94861,6 +94863,691 @@ SWIGINTERN PyObject *InterferenceFunctionFinite2DLattice_swigregister(PyObject * return SWIG_Py_Void(); } +SWIGINTERN PyObject *_wrap_new_InterferenceFunction2DSuperLattice__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + Lattice2D *arg1 = 0 ; + unsigned int arg2 ; + unsigned int arg3 ; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + unsigned int val3 ; + int ecode3 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + InterferenceFunction2DSuperLattice *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OOO:new_InterferenceFunction2DSuperLattice",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Lattice2D, 0 | 0); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "1"" of type '" "Lattice2D const &""'"); + } + if (!argp1) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "1"" of type '" "Lattice2D const &""'"); + } + arg1 = reinterpret_cast< Lattice2D * >(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "2"" of type '" "unsigned int""'"); + } + arg2 = static_cast< unsigned int >(val2); + ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "3"" of type '" "unsigned int""'"); + } + arg3 = static_cast< unsigned int >(val3); + result = (InterferenceFunction2DSuperLattice *)new InterferenceFunction2DSuperLattice((Lattice2D const &)*arg1,arg2,arg3); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterferenceFunction2DSuperLattice, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_InterferenceFunction2DSuperLattice__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + double arg1 ; + double arg2 ; + double arg3 ; + double arg4 ; + unsigned int arg5 ; + unsigned int arg6 ; + double val1 ; + int ecode1 = 0 ; + double val2 ; + int ecode2 = 0 ; + double val3 ; + int ecode3 = 0 ; + double val4 ; + int ecode4 = 0 ; + unsigned int val5 ; + int ecode5 = 0 ; + unsigned int val6 ; + int ecode6 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + PyObject * obj3 = 0 ; + PyObject * obj4 = 0 ; + PyObject * obj5 = 0 ; + InterferenceFunction2DSuperLattice *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OOOOOO:new_InterferenceFunction2DSuperLattice",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail; + ecode1 = SWIG_AsVal_double(obj0, &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "1"" of type '" "double""'"); + } + arg1 = static_cast< double >(val1); + ecode2 = SWIG_AsVal_double(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + ecode3 = SWIG_AsVal_double(obj2, &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "3"" of type '" "double""'"); + } + arg3 = static_cast< double >(val3); + ecode4 = SWIG_AsVal_double(obj3, &val4); + if (!SWIG_IsOK(ecode4)) { + SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "4"" of type '" "double""'"); + } + arg4 = static_cast< double >(val4); + ecode5 = SWIG_AsVal_unsigned_SS_int(obj4, &val5); + if (!SWIG_IsOK(ecode5)) { + SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "5"" of type '" "unsigned int""'"); + } + arg5 = static_cast< unsigned int >(val5); + ecode6 = SWIG_AsVal_unsigned_SS_int(obj5, &val6); + if (!SWIG_IsOK(ecode6)) { + SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "new_InterferenceFunction2DSuperLattice" "', argument " "6"" of type '" "unsigned int""'"); + } + arg6 = static_cast< unsigned int >(val6); + result = (InterferenceFunction2DSuperLattice *)new InterferenceFunction2DSuperLattice(arg1,arg2,arg3,arg4,arg5,arg6); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterferenceFunction2DSuperLattice, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_InterferenceFunction2DSuperLattice(PyObject *self, PyObject *args) { + Py_ssize_t argc; + PyObject *argv[7] = { + 0 + }; + Py_ssize_t ii; + + if (!PyTuple_Check(args)) SWIG_fail; + argc = args ? PyObject_Length(args) : 0; + for (ii = 0; (ii < 6) && (ii < argc); ii++) { + argv[ii] = PyTuple_GET_ITEM(args,ii); + } + if (argc == 3) { + int _v; + int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Lattice2D, 0); + _v = SWIG_CheckState(res); + if (_v) { + { + int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + return _wrap_new_InterferenceFunction2DSuperLattice__SWIG_0(self, args); + } + } + } + } + if (argc == 6) { + int _v; + { + int res = SWIG_AsVal_double(argv[0], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_double(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_double(argv[2], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_double(argv[3], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_unsigned_SS_int(argv[4], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_unsigned_SS_int(argv[5], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + return _wrap_new_InterferenceFunction2DSuperLattice__SWIG_1(self, args); + } + } + } + } + } + } + } + +fail: + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_InterferenceFunction2DSuperLattice'.\n" + " Possible C/C++ prototypes are:\n" + " InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(Lattice2D const &,unsigned int,unsigned int)\n" + " InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(double,double,double,double,unsigned int,unsigned int)\n"); + return 0; +} + + +SWIGINTERN PyObject *_wrap_delete_InterferenceFunction2DSuperLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:delete_InterferenceFunction2DSuperLattice",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, SWIG_POINTER_DISOWN | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_InterferenceFunction2DSuperLattice" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + delete arg1; + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + InterferenceFunction2DSuperLattice *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_clone",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_clone" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (InterferenceFunction2DSuperLattice *)((InterferenceFunction2DSuperLattice const *)arg1)->clone(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + INodeVisitor *arg2 = (INodeVisitor *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:InterferenceFunction2DSuperLattice_accept",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_accept" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_INodeVisitor, 0 | 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceFunction2DSuperLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); + } + arg2 = reinterpret_cast< INodeVisitor * >(argp2); + ((InterferenceFunction2DSuperLattice const *)arg1)->accept(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_setSubstructureIFF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + IInterferenceFunction *arg2 = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:InterferenceFunction2DSuperLattice_setSubstructureIFF",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_setSubstructureIFF" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_IInterferenceFunction, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceFunction2DSuperLattice_setSubstructureIFF" "', argument " "2"" of type '" "IInterferenceFunction const &""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "InterferenceFunction2DSuperLattice_setSubstructureIFF" "', argument " "2"" of type '" "IInterferenceFunction const &""'"); + } + arg2 = reinterpret_cast< IInterferenceFunction * >(argp2); + (arg1)->setSubstructureIFF((IInterferenceFunction const &)*arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_substructureIFF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + Swig::Director *director = 0; + IInterferenceFunction *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_substructureIFF",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_substructureIFF" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (IInterferenceFunction *) &((InterferenceFunction2DSuperLattice const *)arg1)->substructureIFF(); + director = SWIG_DIRECTOR_CAST(result); + if (director) { + resultobj = director->swig_get_self(); + Py_INCREF(resultobj); + } else { + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IInterferenceFunction, 0 | 0 ); + } + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_createSquare(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + double arg1 ; + double arg2 ; + unsigned int arg3 ; + unsigned int arg4 ; + double val1 ; + int ecode1 = 0 ; + double val2 ; + int ecode2 = 0 ; + unsigned int val3 ; + int ecode3 = 0 ; + unsigned int val4 ; + int ecode4 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + PyObject * obj3 = 0 ; + InterferenceFunction2DSuperLattice *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OOOO:InterferenceFunction2DSuperLattice_createSquare",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; + ecode1 = SWIG_AsVal_double(obj0, &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "InterferenceFunction2DSuperLattice_createSquare" "', argument " "1"" of type '" "double""'"); + } + arg1 = static_cast< double >(val1); + ecode2 = SWIG_AsVal_double(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "InterferenceFunction2DSuperLattice_createSquare" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "InterferenceFunction2DSuperLattice_createSquare" "', argument " "3"" of type '" "unsigned int""'"); + } + arg3 = static_cast< unsigned int >(val3); + ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4); + if (!SWIG_IsOK(ecode4)) { + SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "InterferenceFunction2DSuperLattice_createSquare" "', argument " "4"" of type '" "unsigned int""'"); + } + arg4 = static_cast< unsigned int >(val4); + result = (InterferenceFunction2DSuperLattice *)InterferenceFunction2DSuperLattice::createSquare(arg1,arg2,arg3,arg4); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_createHexagonal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + double arg1 ; + double arg2 ; + unsigned int arg3 ; + unsigned int arg4 ; + double val1 ; + int ecode1 = 0 ; + double val2 ; + int ecode2 = 0 ; + unsigned int val3 ; + int ecode3 = 0 ; + unsigned int val4 ; + int ecode4 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + PyObject * obj3 = 0 ; + InterferenceFunction2DSuperLattice *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OOOO:InterferenceFunction2DSuperLattice_createHexagonal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; + ecode1 = SWIG_AsVal_double(obj0, &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "InterferenceFunction2DSuperLattice_createHexagonal" "', argument " "1"" of type '" "double""'"); + } + arg1 = static_cast< double >(val1); + ecode2 = SWIG_AsVal_double(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "InterferenceFunction2DSuperLattice_createHexagonal" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "InterferenceFunction2DSuperLattice_createHexagonal" "', argument " "3"" of type '" "unsigned int""'"); + } + arg3 = static_cast< unsigned int >(val3); + ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4); + if (!SWIG_IsOK(ecode4)) { + SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "InterferenceFunction2DSuperLattice_createHexagonal" "', argument " "4"" of type '" "unsigned int""'"); + } + arg4 = static_cast< unsigned int >(val4); + result = (InterferenceFunction2DSuperLattice *)InterferenceFunction2DSuperLattice::createHexagonal(arg1,arg2,arg3,arg4); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + kvector_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + double result; + + if (!PyArg_ParseTuple(args,(char *)"OO:InterferenceFunction2DSuperLattice_evaluate",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_evaluate" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + { + res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_BasicVector3DT_double_t, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceFunction2DSuperLattice_evaluate" "', argument " "2"" of type '" "kvector_t const""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "InterferenceFunction2DSuperLattice_evaluate" "', argument " "2"" of type '" "kvector_t const""'"); + } else { + kvector_t * temp = reinterpret_cast< kvector_t * >(argp2); + arg2 = *temp; + if (SWIG_IsNewObj(res2)) delete temp; + } + } + result = (double)((InterferenceFunction2DSuperLattice const *)arg1)->evaluate(arg2); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_domainSize1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + unsigned int result; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_domainSize1",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_domainSize1" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (unsigned int)((InterferenceFunction2DSuperLattice const *)arg1)->domainSize1(); + resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_domainSize2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + unsigned int result; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_domainSize2",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_domainSize2" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (unsigned int)((InterferenceFunction2DSuperLattice const *)arg1)->domainSize2(); + resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_setPositionVariance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + double arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + double val2 ; + int ecode2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:InterferenceFunction2DSuperLattice_setPositionVariance",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_setPositionVariance" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + ecode2 = SWIG_AsVal_double(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "InterferenceFunction2DSuperLattice_setPositionVariance" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + (arg1)->setPositionVariance(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_positionVariance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + double result; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_positionVariance",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_positionVariance" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (double)((InterferenceFunction2DSuperLattice const *)arg1)->positionVariance(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_setIntegrationOverXi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + bool arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + bool val2 ; + int ecode2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:InterferenceFunction2DSuperLattice_setIntegrationOverXi",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_setIntegrationOverXi" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + ecode2 = SWIG_AsVal_bool(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "InterferenceFunction2DSuperLattice_setIntegrationOverXi" "', argument " "2"" of type '" "bool""'"); + } + arg2 = static_cast< bool >(val2); + (arg1)->setIntegrationOverXi(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_integrationOverXi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + bool result; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_integrationOverXi",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_integrationOverXi" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (bool)((InterferenceFunction2DSuperLattice const *)arg1)->integrationOverXi(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_lattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + Lattice2D *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_lattice",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_lattice" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (Lattice2D *) &((InterferenceFunction2DSuperLattice const *)arg1)->lattice(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Lattice2D, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_getParticleDensity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + double result; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_getParticleDensity",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_getParticleDensity" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = (double)((InterferenceFunction2DSuperLattice const *)arg1)->getParticleDensity(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_InterferenceFunction2DSuperLattice_getChildren(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + InterferenceFunction2DSuperLattice *arg1 = (InterferenceFunction2DSuperLattice *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + std::vector< INode const *,std::allocator< INode const * > > result; + + if (!PyArg_ParseTuple(args,(char *)"O:InterferenceFunction2DSuperLattice_getChildren",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_InterferenceFunction2DSuperLattice, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFunction2DSuperLattice_getChildren" "', argument " "1"" of type '" "InterferenceFunction2DSuperLattice const *""'"); + } + arg1 = reinterpret_cast< InterferenceFunction2DSuperLattice * >(argp1); + result = ((InterferenceFunction2DSuperLattice const *)arg1)->getChildren(); + resultobj = swig::from(static_cast< std::vector< INode const*,std::allocator< INode const * > > >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *InterferenceFunction2DSuperLattice_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; + SWIG_TypeNewClientData(SWIGTYPE_p_InterferenceFunction2DSuperLattice, SWIG_NewClientData(obj)); + return SWIG_Py_Void(); +} + SWIGINTERN PyObject *_wrap_new_InterferenceFunction2DParaCrystal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Lattice2D *arg1 = 0 ; @@ -119518,24 +120205,21 @@ static PyMethodDef SwigMethods[] = { "FitObject(Simulation simulation, vdouble2d_t data, double weight=1)\n" "new_FitObject(Simulation simulation, vdouble2d_t data) -> FitObject\n" "\n" - "FitObject::FitObject(const Simulation &simulation, const OutputData< double > &real_data, double weight=1)\n" + "FitObject::FitObject(const Simulation &simulation, const std::vector< std::vector< double >> &data, double weight=1)\n" "\n" - "FitObject constructor\n" + "Constructs simulation/data pair for later fit.\n" "\n" "Parameters:\n" "-----------\n" "\n" "simulation: \n" - "The simulation to run\n" + "simulation to run\n" "\n" - "real_data: \n" - "The real data\n" + "data: \n" + "experimental data\n" "\n" "weight: \n" - "Weight of dataset in chi2 calculations\n" - "\n" - "adjust_detector_to_data: \n" - "Detector axes will be adjusted to real data axes, if true \n" + "weight of dataset in chi2 calculations \n" "\n" ""}, { (char *)"delete_FitObject", _wrap_delete_FitObject, METH_VARARGS, (char *)"\n" @@ -119588,19 +120272,51 @@ static PyMethodDef SwigMethods[] = { { (char *)"FitObject_simulationResult", _wrap_FitObject_simulationResult, METH_VARARGS, (char *)"\n" "FitObject_simulationResult(FitObject self) -> SimulationResult\n" "\n" - "SimulationResult FitObject::simulationResult() const \n" + "SimulationResult FitObject::simulationResult() const\n" + "\n" + "Returns simulation result. \n" "\n" ""}, { (char *)"FitObject_experimentalData", _wrap_FitObject_experimentalData, METH_VARARGS, (char *)"\n" "FitObject_experimentalData(FitObject self) -> SimulationResult\n" "\n" - "SimulationResult FitObject::experimentalData() const \n" + "SimulationResult FitObject::experimentalData() const\n" + "\n" + "Returns experimental data. \n" + "\n" + ""}, + { (char *)"FitObject_relativeDifference", _wrap_FitObject_relativeDifference, METH_VARARGS, (char *)"\n" + "FitObject_relativeDifference(FitObject self) -> SimulationResult\n" + "\n" + "SimulationResult FitObject::relativeDifference() const\n" + "\n" + "Returns relative difference between simulation and experimental data. \n" + "\n" + ""}, + { (char *)"FitObject_runSimulation", _wrap_FitObject_runSimulation, METH_VARARGS, (char *)"\n" + "FitObject_runSimulation(FitObject self)\n" + "\n" + "void FitObject::runSimulation()\n" + "\n" + "Runs internal simulation object. \n" + "\n" + ""}, + { (char *)"FitObject_experimental_array", _wrap_FitObject_experimental_array, METH_VARARGS, (char *)"\n" + "FitObject_experimental_array(FitObject self) -> vdouble1d_t\n" + "\n" + "std::vector< double > FitObject::experimental_array() const\n" + "\n" + "Returns one dimensional array representing experimental data. Masked areas and the area outside of region of interest are not included. \n" + "\n" + ""}, + { (char *)"FitObject_simulation_array", _wrap_FitObject_simulation_array, METH_VARARGS, (char *)"\n" + "FitObject_simulation_array(FitObject self) -> vdouble1d_t\n" + "\n" + "std::vector< double > FitObject::simulation_array() const\n" + "\n" + "Returns one dimensional array representing simulated intensities data. Masked areas and the area outside of region of interest are not included. \n" "\n" ""}, - { (char *)"FitObject_relativeDifference", _wrap_FitObject_relativeDifference, METH_VARARGS, (char *)"FitObject_relativeDifference(FitObject self) -> SimulationResult"}, - { (char *)"FitObject_runSimulation", _wrap_FitObject_runSimulation, METH_VARARGS, (char *)"FitObject_runSimulation(FitObject self)"}, - { (char *)"FitObject_experimental_array", _wrap_FitObject_experimental_array, METH_VARARGS, (char *)"FitObject_experimental_array(FitObject self) -> vdouble1d_t"}, - { (char *)"FitObject_simulation_array", _wrap_FitObject_simulation_array, METH_VARARGS, (char *)"FitObject_simulation_array(FitObject self) -> vdouble1d_t"}, { (char *)"FitObject_swigregister", FitObject_swigregister, METH_VARARGS, NULL}, { (char *)"new_FitOptions", _wrap_new_FitOptions, METH_VARARGS, (char *)"new_FitOptions() -> FitOptions"}, { (char *)"delete_FitOptions", _wrap_delete_FitOptions, METH_VARARGS, (char *)"delete_FitOptions(FitOptions self)"}, @@ -119955,7 +120671,7 @@ static PyMethodDef SwigMethods[] = { "\n" "SimulationResult FitSuite::relativeDifference(size_t i_item=0) const\n" "\n" - "Returns relative difference between simulation and real data.\n" + "Returns relative difference between simulation and experimental data.\n" "\n" "Parameters:\n" "-----------\n" @@ -120016,21 +120732,45 @@ static PyMethodDef SwigMethods[] = { "simulationResult(size_t i_item=0) -> SimulationResult\n" "FitSuiteObjects_simulationResult(FitSuiteObjects self) -> SimulationResult\n" "\n" - "SimulationResult FitSuiteObjects::simulationResult(size_t i_item=0) const \n" + "SimulationResult FitSuiteObjects::simulationResult(size_t i_item=0) const\n" + "\n" + "Returns simulation result.\n" + "\n" + "Parameters:\n" + "-----------\n" + "\n" + "i_item: \n" + "the index of fit pair \n" "\n" ""}, { (char *)"FitSuiteObjects_experimentalData", _wrap_FitSuiteObjects_experimentalData, METH_VARARGS, (char *)"\n" "experimentalData(size_t i_item=0) -> SimulationResult\n" "FitSuiteObjects_experimentalData(FitSuiteObjects self) -> SimulationResult\n" "\n" - "SimulationResult FitSuiteObjects::experimentalData(size_t i_item=0) const \n" + "SimulationResult FitSuiteObjects::experimentalData(size_t i_item=0) const\n" + "\n" + "Returns experimental data.\n" + "\n" + "Parameters:\n" + "-----------\n" + "\n" + "i_item: \n" + "the index of fit pair \n" "\n" ""}, { (char *)"FitSuiteObjects_relativeDifference", _wrap_FitSuiteObjects_relativeDifference, METH_VARARGS, (char *)"\n" "relativeDifference(size_t i_item=0) -> SimulationResult\n" "FitSuiteObjects_relativeDifference(FitSuiteObjects self) -> SimulationResult\n" "\n" - "SimulationResult FitSuiteObjects::relativeDifference(size_t i_item=0) const \n" + "SimulationResult FitSuiteObjects::relativeDifference(size_t i_item=0) const\n" + "\n" + "Returns relative difference between simulation and experimental data.\n" + "\n" + "Parameters:\n" + "-----------\n" + "\n" + "i_item: \n" + "the index of fit pair \n" "\n" ""}, { (char *)"FitSuiteObjects_runSimulations", _wrap_FitSuiteObjects_runSimulations, METH_VARARGS, (char *)"\n" @@ -120062,7 +120802,7 @@ static PyMethodDef SwigMethods[] = { "-----------\n" "\n" "global_index: \n" - "index accross all element in FitElement vector \n" + "index across all element in FitElement vector \n" "\n" ""}, { (char *)"FitSuiteObjects_setNfreeParameters", _wrap_FitSuiteObjects_setNfreeParameters, METH_VARARGS, (char *)"\n" @@ -122682,12 +123422,20 @@ static PyMethodDef SwigMethods[] = { { (char *)"new_FormFactor2DLattice", _wrap_new_FormFactor2DLattice, METH_VARARGS, (char *)"\n" "FormFactor2DLattice(IFormFactor form_factor, Lattice2D lattice, unsigned int size_1, unsigned int size_2)\n" "new_FormFactor2DLattice(IFormFactor form_factor, double length_1, double length_2, double alpha, double xi, unsigned int size_1, unsigned int size_2) -> FormFactor2DLattice\n" + "\n" + "FormFactor2DLattice::FormFactor2DLattice(const IFormFactor &form_factor, double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2)\n" + "\n" + ""}, + { (char *)"delete_FormFactor2DLattice", _wrap_delete_FormFactor2DLattice, METH_VARARGS, (char *)"\n" + "delete_FormFactor2DLattice(FormFactor2DLattice self)\n" + "\n" + "FormFactor2DLattice::~FormFactor2DLattice() overridefinal\n" + "\n" ""}, - { (char *)"delete_FormFactor2DLattice", _wrap_delete_FormFactor2DLattice, METH_VARARGS, (char *)"delete_FormFactor2DLattice(FormFactor2DLattice self)"}, { (char *)"FormFactor2DLattice_clone", _wrap_FormFactor2DLattice_clone, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_clone(FormFactor2DLattice self) -> FormFactor2DLattice\n" "\n" - "IFormFactor* IFormFactor::clone() const override=0\n" + "FormFactor2DLattice * FormFactor2DLattice::clone() const overridefinal\n" "\n" "Returns a clone of this ISample object. \n" "\n" @@ -122695,7 +123443,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_accept", _wrap_FormFactor2DLattice_accept, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_accept(FormFactor2DLattice self, INodeVisitor visitor)\n" "\n" - "virtual void INode::accept(INodeVisitor *visitor) const =0\n" + "void FormFactor2DLattice::accept(INodeVisitor *visitor) const overridefinal\n" "\n" "Calls the INodeVisitor's visit method. \n" "\n" @@ -122703,7 +123451,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_setAmbientMaterial", _wrap_FormFactor2DLattice_setAmbientMaterial, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_setAmbientMaterial(FormFactor2DLattice self, Material material)\n" "\n" - "virtual void IFormFactor::setAmbientMaterial(Material)=0\n" + "void FormFactor2DLattice::setAmbientMaterial(Material material) overridefinal\n" "\n" "Passes the material in which this particle is embedded. \n" "\n" @@ -122711,7 +123459,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_volume", _wrap_FormFactor2DLattice_volume, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_volume(FormFactor2DLattice self) -> double\n" "\n" - "double IFormFactor::volume() const\n" + "double FormFactor2DLattice::volume() const overridefinal\n" "\n" "Returns the total volume of the particle of this form factor's shape. \n" "\n" @@ -122719,7 +123467,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_radialExtension", _wrap_FormFactor2DLattice_radialExtension, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_radialExtension(FormFactor2DLattice self) -> double\n" "\n" - "virtual double IFormFactor::radialExtension() const =0\n" + "double FormFactor2DLattice::radialExtension() const overridefinal\n" "\n" "Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations \n" "\n" @@ -122727,7 +123475,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_bottomZ", _wrap_FormFactor2DLattice_bottomZ, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_bottomZ(FormFactor2DLattice self, IRotation rotation) -> double\n" "\n" - "virtual double IFormFactor::bottomZ(const IRotation &rotation) const =0\n" + "double FormFactor2DLattice::bottomZ(const IRotation &rotation) const override\n" "\n" "Returns the z-coordinate of the lowest point in this shape after a given rotation. \n" "\n" @@ -122735,7 +123483,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_topZ", _wrap_FormFactor2DLattice_topZ, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_topZ(FormFactor2DLattice self, IRotation rotation) -> double\n" "\n" - "virtual double IFormFactor::topZ(const IRotation &rotation) const =0\n" + "double FormFactor2DLattice::topZ(const IRotation &rotation) const overridefinal\n" "\n" "Returns the z-coordinate of the lowest point in this shape after a given rotation. \n" "\n" @@ -122743,7 +123491,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"FormFactor2DLattice_evaluate", _wrap_FormFactor2DLattice_evaluate, METH_VARARGS, (char *)"\n" "FormFactor2DLattice_evaluate(FormFactor2DLattice self, WavevectorInfo wavevectors) -> complex_t\n" "\n" - "virtual complex_t IFormFactor::evaluate(const WavevectorInfo &wavevectors) const =0\n" + "complex_t FormFactor2DLattice::evaluate(const WavevectorInfo &wavevectors) const overridefinal\n" "\n" "Returns scattering amplitude for complex wavevectors ki, kf. \n" "\n" @@ -126357,9 +127105,9 @@ static PyMethodDef SwigMethods[] = { { (char *)"IDetector_createDetectorIntensity", _wrap_IDetector_createDetectorIntensity, METH_VARARGS, (char *)"\n" "IDetector_createDetectorIntensity(IDetector self, std::vector< SimulationElement,std::allocator< SimulationElement > > const & elements) -> IntensityData\n" "\n" - "OutputData< double > * IDetector::createDetectorIntensity(const std::vector< SimulationElement > &elements, const Beam &beam, AxesUnits units_type=AxesUnits::DEFAULT) const\n" + "OutputData< double > * IDetector::createDetectorIntensity(const std::vector< SimulationElement > &elements) const\n" "\n" - "Returns new intensity map with detector resolution applied and axes in requested units. \n" + "Returns new intensity map with detector resolution applied. Map will be cropped to ROI if ROI is present. \n" "\n" ""}, { (char *)"IDetector_defaultAxesUnits", _wrap_IDetector_defaultAxesUnits, METH_VARARGS, (char *)"\n" @@ -127435,7 +128183,7 @@ static PyMethodDef SwigMethods[] = { { (char *)"Instrument_createDetectorIntensity", _wrap_Instrument_createDetectorIntensity, METH_VARARGS, (char *)"\n" "Instrument_createDetectorIntensity(Instrument self, std::vector< SimulationElement,std::allocator< SimulationElement > > const & elements) -> IntensityData\n" "\n" - "OutputData< double > * Instrument::createDetectorIntensity(const std::vector< SimulationElement > &elements, AxesUnits units=AxesUnits::DEFAULT) const\n" + "OutputData< double > * Instrument::createDetectorIntensity(const std::vector< SimulationElement > &elements) const\n" "\n" "Returns new intensity map with detector resolution applied and axes in requested units. \n" "\n" @@ -127909,8 +128657,18 @@ static PyMethodDef SwigMethods[] = { "Evaluates the interference function for a given wavevector transfer (only the real x and y components are relevant) \n" "\n" ""}, - { (char *)"InterferenceFunctionFinite2DLattice_domainSize1", _wrap_InterferenceFunctionFinite2DLattice_domainSize1, METH_VARARGS, (char *)"InterferenceFunctionFinite2DLattice_domainSize1(InterferenceFunctionFinite2DLattice self) -> unsigned int"}, - { (char *)"InterferenceFunctionFinite2DLattice_domainSize2", _wrap_InterferenceFunctionFinite2DLattice_domainSize2, METH_VARARGS, (char *)"InterferenceFunctionFinite2DLattice_domainSize2(InterferenceFunctionFinite2DLattice self) -> unsigned int"}, + { (char *)"InterferenceFunctionFinite2DLattice_domainSize1", _wrap_InterferenceFunctionFinite2DLattice_domainSize1, METH_VARARGS, (char *)"\n" + "InterferenceFunctionFinite2DLattice_domainSize1(InterferenceFunctionFinite2DLattice self) -> unsigned int\n" + "\n" + "unsigned InterferenceFunctionFinite2DLattice::domainSize1() const \n" + "\n" + ""}, + { (char *)"InterferenceFunctionFinite2DLattice_domainSize2", _wrap_InterferenceFunctionFinite2DLattice_domainSize2, METH_VARARGS, (char *)"\n" + "InterferenceFunctionFinite2DLattice_domainSize2(InterferenceFunctionFinite2DLattice self) -> unsigned int\n" + "\n" + "unsigned InterferenceFunctionFinite2DLattice::domainSize2() const \n" + "\n" + ""}, { (char *)"InterferenceFunctionFinite2DLattice_setPositionVariance", _wrap_InterferenceFunctionFinite2DLattice_setPositionVariance, METH_VARARGS, (char *)"\n" "InterferenceFunctionFinite2DLattice_setPositionVariance(InterferenceFunctionFinite2DLattice self, double sigma2)\n" "\n" @@ -127958,6 +128716,133 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { (char *)"InterferenceFunctionFinite2DLattice_swigregister", InterferenceFunctionFinite2DLattice_swigregister, METH_VARARGS, NULL}, + { (char *)"new_InterferenceFunction2DSuperLattice", _wrap_new_InterferenceFunction2DSuperLattice, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice(Lattice2D lattice, unsigned int size_1, unsigned int size_2)\n" + "new_InterferenceFunction2DSuperLattice(double length_1, double length_2, double alpha, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice\n" + "\n" + "InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2)\n" + "\n" + "Constructor of two-dimensional interference function.\n" + "\n" + "Parameters:\n" + "-----------\n" + "\n" + "length_1: \n" + "length of first lattice vector in nanometers\n" + "\n" + "length_2: \n" + "length of second lattice vector in nanometers\n" + "\n" + "alpha: \n" + "angle between lattice vectors in radians\n" + "\n" + "xi: \n" + "rotation of lattice with respect to x-axis (beam direction) in radians \n" + "\n" + ""}, + { (char *)"delete_InterferenceFunction2DSuperLattice", _wrap_delete_InterferenceFunction2DSuperLattice, METH_VARARGS, (char *)"\n" + "delete_InterferenceFunction2DSuperLattice(InterferenceFunction2DSuperLattice self)\n" + "\n" + "InterferenceFunction2DSuperLattice::~InterferenceFunction2DSuperLattice() final\n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_clone", _wrap_InterferenceFunction2DSuperLattice_clone, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_clone(InterferenceFunction2DSuperLattice self) -> InterferenceFunction2DSuperLattice\n" + "\n" + "InterferenceFunction2DSuperLattice * InterferenceFunction2DSuperLattice::clone() const final\n" + "\n" + "Returns a clone of this ISample object. \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_accept", _wrap_InterferenceFunction2DSuperLattice_accept, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_accept(InterferenceFunction2DSuperLattice self, INodeVisitor visitor)\n" + "\n" + "void InterferenceFunction2DSuperLattice::accept(INodeVisitor *visitor) const final\n" + "\n" + "Calls the INodeVisitor's visit method. \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_setSubstructureIFF", _wrap_InterferenceFunction2DSuperLattice_setSubstructureIFF, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_setSubstructureIFF(InterferenceFunction2DSuperLattice self, IInterferenceFunction sub_iff)\n" + "\n" + "void InterferenceFunction2DSuperLattice::setSubstructureIFF(const IInterferenceFunction &sub_iff)\n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_substructureIFF", _wrap_InterferenceFunction2DSuperLattice_substructureIFF, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_substructureIFF(InterferenceFunction2DSuperLattice self) -> IInterferenceFunction\n" + "\n" + "const IInterferenceFunction & InterferenceFunction2DSuperLattice::substructureIFF() const \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_createSquare", _wrap_InterferenceFunction2DSuperLattice_createSquare, METH_VARARGS, (char *)"InterferenceFunction2DSuperLattice_createSquare(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice"}, + { (char *)"InterferenceFunction2DSuperLattice_createHexagonal", _wrap_InterferenceFunction2DSuperLattice_createHexagonal, METH_VARARGS, (char *)"InterferenceFunction2DSuperLattice_createHexagonal(double lattice_length, double xi, unsigned int size_1, unsigned int size_2) -> InterferenceFunction2DSuperLattice"}, + { (char *)"InterferenceFunction2DSuperLattice_evaluate", _wrap_InterferenceFunction2DSuperLattice_evaluate, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_evaluate(InterferenceFunction2DSuperLattice self, kvector_t q) -> double\n" + "\n" + "double InterferenceFunction2DSuperLattice::evaluate(const kvector_t q) const final\n" + "\n" + "Evaluates the interference function for a given wavevector transfer (only the real x and y components are relevant) \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_domainSize1", _wrap_InterferenceFunction2DSuperLattice_domainSize1, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_domainSize1(InterferenceFunction2DSuperLattice self) -> unsigned int\n" + "\n" + "unsigned InterferenceFunction2DSuperLattice::domainSize1() const \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_domainSize2", _wrap_InterferenceFunction2DSuperLattice_domainSize2, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_domainSize2(InterferenceFunction2DSuperLattice self) -> unsigned int\n" + "\n" + "unsigned InterferenceFunction2DSuperLattice::domainSize2() const \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_setPositionVariance", _wrap_InterferenceFunction2DSuperLattice_setPositionVariance, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_setPositionVariance(InterferenceFunction2DSuperLattice self, double sigma2)\n" + "\n" + "void InterferenceFunction2DSuperLattice::setPositionVariance(double sigma2)\n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_positionVariance", _wrap_InterferenceFunction2DSuperLattice_positionVariance, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_positionVariance(InterferenceFunction2DSuperLattice self) -> double\n" + "\n" + "double InterferenceFunction2DSuperLattice::positionVariance() const \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_setIntegrationOverXi", _wrap_InterferenceFunction2DSuperLattice_setIntegrationOverXi, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_setIntegrationOverXi(InterferenceFunction2DSuperLattice self, bool integrate_xi)\n" + "\n" + "void InterferenceFunction2DSuperLattice::setIntegrationOverXi(bool integrate_xi)\n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_integrationOverXi", _wrap_InterferenceFunction2DSuperLattice_integrationOverXi, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_integrationOverXi(InterferenceFunction2DSuperLattice self) -> bool\n" + "\n" + "bool InterferenceFunction2DSuperLattice::integrationOverXi() const \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_lattice", _wrap_InterferenceFunction2DSuperLattice_lattice, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_lattice(InterferenceFunction2DSuperLattice self) -> Lattice2D\n" + "\n" + "const Lattice2D & InterferenceFunction2DSuperLattice::lattice() const \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_getParticleDensity", _wrap_InterferenceFunction2DSuperLattice_getParticleDensity, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_getParticleDensity(InterferenceFunction2DSuperLattice self) -> double\n" + "\n" + "double InterferenceFunction2DSuperLattice::getParticleDensity() const final\n" + "\n" + "Returns the particle density associated with this 2d lattice. \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_getChildren", _wrap_InterferenceFunction2DSuperLattice_getChildren, METH_VARARGS, (char *)"\n" + "InterferenceFunction2DSuperLattice_getChildren(InterferenceFunction2DSuperLattice self) -> swig_dummy_type_const_inode_vector\n" + "\n" + "std::vector< const INode * > InterferenceFunction2DSuperLattice::getChildren() const override\n" + "\n" + "Returns a vector of children (const). \n" + "\n" + ""}, + { (char *)"InterferenceFunction2DSuperLattice_swigregister", InterferenceFunction2DSuperLattice_swigregister, METH_VARARGS, NULL}, { (char *)"new_InterferenceFunction2DParaCrystal", _wrap_new_InterferenceFunction2DParaCrystal, METH_VARARGS, (char *)"\n" "InterferenceFunction2DParaCrystal(Lattice2D lattice, double damping_length=0.0, double domain_size_1=0.0, double domain_size_2=0.0)\n" "InterferenceFunction2DParaCrystal(Lattice2D lattice, double damping_length=0.0, double domain_size_1=0.0)\n" @@ -129105,7 +129990,7 @@ static PyMethodDef SwigMethods[] = { "\n" "BA_CORE_API_ Material MaterialBySLD(const std::string &name, double sld_real, double sld_imag, kvector_t magnetization=kvector_t())\n" "\n" - "Constructs a wavelength-independent material with a given complex-valued scattering lenght density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization.\n" + "Constructs a wavelength-independent material with a given complex-valued scattering length density (SLD). SLD values for a wide variety of materials can be found on https://sld-calculator.appspot.com/ and https://www.ncnr.nist.gov/resources/activation/ By convention, SLD imaginary part is treated as negative by default, which corresponds to attenuation of the signal. With no parameters given, MaterialBySLD constructs default (vacuum) material with zero sld and zero magnetization.\n" "\n" "Parameters:\n" "-----------\n" @@ -131092,7 +131977,7 @@ static PyMethodDef SwigMethods[] = { "\n" "SimulationResult SpecularSimulation::result() const override\n" "\n" - "Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays \n" + "Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays. If simulation was not run, returns an array of proper size filled with zeros. \n" "\n" ""}, { (char *)"SpecularSimulation_setBeamParameters", _wrap_SpecularSimulation_setBeamParameters, METH_VARARGS, (char *)"\n" @@ -131973,6 +132858,9 @@ static void *_p_InterferenceFunction2DLatticeTo_p_ICloneable(void *x, int *SWIGU static void *_p_InterferenceFunctionFinite2DLatticeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISample *)(IInterferenceFunction *) ((InterferenceFunctionFinite2DLattice *) x)); } +static void *_p_InterferenceFunction2DSuperLatticeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (ISample *)(IInterferenceFunction *) ((InterferenceFunction2DSuperLattice *) x)); +} static void *_p_BasicLatticeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (Lattice2D *) ((BasicLattice *) x)); } @@ -132414,6 +133302,9 @@ static void *_p_InterferenceFunction2DLatticeTo_p_INamed(void *x, int *SWIGUNUSE static void *_p_InterferenceFunctionFinite2DLatticeTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INamed *) (IParameterized *)(INode *)(ISample *)(IInterferenceFunction *) ((InterferenceFunctionFinite2DLattice *) x)); } +static void *_p_InterferenceFunction2DSuperLatticeTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INamed *) (IParameterized *)(INode *)(ISample *)(IInterferenceFunction *) ((InterferenceFunction2DSuperLattice *) x)); +} static void *_p_LatticeTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INamed *) (IParameterized *)(INode *) ((Lattice *) x)); } @@ -132444,6 +133335,9 @@ static void *_p_InterferenceFunction2DLatticeTo_p_IInterferenceFunction(void *x, static void *_p_InterferenceFunctionFinite2DLatticeTo_p_IInterferenceFunction(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IInterferenceFunction *) ((InterferenceFunctionFinite2DLattice *) x)); } +static void *_p_InterferenceFunction2DSuperLatticeTo_p_IInterferenceFunction(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IInterferenceFunction *) ((InterferenceFunction2DSuperLattice *) x)); +} static void *_p_InterferenceFunctionNoneTo_p_IInterferenceFunction(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IInterferenceFunction *) ((InterferenceFunctionNone *) x)); } @@ -132867,6 +133761,9 @@ static void *_p_InterferenceFunction2DLatticeTo_p_IParameterized(void *x, int *S static void *_p_InterferenceFunctionFinite2DLatticeTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *)(ISample *)(IInterferenceFunction *) ((InterferenceFunctionFinite2DLattice *) x)); } +static void *_p_InterferenceFunction2DSuperLatticeTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IParameterized *) (INode *)(ISample *)(IInterferenceFunction *) ((InterferenceFunction2DSuperLattice *) x)); +} static void *_p_LatticeTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *) ((Lattice *) x)); } @@ -133176,6 +134073,9 @@ static void *_p_InterferenceFunction2DLatticeTo_p_ISample(void *x, int *SWIGUNUS static void *_p_InterferenceFunctionFinite2DLatticeTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IInterferenceFunction *) ((InterferenceFunctionFinite2DLattice *) x)); } +static void *_p_InterferenceFunction2DSuperLatticeTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ISample *) (IInterferenceFunction *) ((InterferenceFunction2DSuperLattice *) x)); +} static void *_p_IClusteredParticlesTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) ((IClusteredParticles *) x)); } @@ -133608,6 +134508,9 @@ static void *_p_InterferenceFunction2DLatticeTo_p_INode(void *x, int *SWIGUNUSED static void *_p_InterferenceFunctionFinite2DLatticeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISample *)(IInterferenceFunction *) ((InterferenceFunctionFinite2DLattice *) x)); } +static void *_p_InterferenceFunction2DSuperLatticeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (ISample *)(IInterferenceFunction *) ((InterferenceFunction2DSuperLattice *) x)); +} static void *_p_LatticeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) ((Lattice *) x)); } @@ -133957,6 +134860,7 @@ static swig_type_info _swigt__p_IntensityScaleAndShiftNormalizer = {"_p_Intensit static swig_type_info _swigt__p_InterferenceFunction1DLattice = {"_p_InterferenceFunction1DLattice", "InterferenceFunction1DLattice *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceFunction2DLattice = {"_p_InterferenceFunction2DLattice", "InterferenceFunction2DLattice *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceFunction2DParaCrystal = {"_p_InterferenceFunction2DParaCrystal", "InterferenceFunction2DParaCrystal *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_InterferenceFunction2DSuperLattice = {"_p_InterferenceFunction2DSuperLattice", "InterferenceFunction2DSuperLattice *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceFunctionFinite2DLattice = {"_p_InterferenceFunctionFinite2DLattice", "InterferenceFunctionFinite2DLattice *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceFunctionNone = {"_p_InterferenceFunctionNone", "InterferenceFunctionNone *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceFunctionRadialParaCrystal = {"_p_InterferenceFunctionRadialParaCrystal", "InterferenceFunctionRadialParaCrystal *", 0, 0, (void*)0, 0}; @@ -134282,6 +135186,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_InterferenceFunction1DLattice, &_swigt__p_InterferenceFunction2DLattice, &_swigt__p_InterferenceFunction2DParaCrystal, + &_swigt__p_InterferenceFunction2DSuperLattice, &_swigt__p_InterferenceFunctionFinite2DLattice, &_swigt__p_InterferenceFunctionNone, &_swigt__p_InterferenceFunctionRadialParaCrystal, @@ -134555,7 +135460,7 @@ static swig_cast_info _swigc__p_IAbstractParticle[] = { {&_swigt__p_ParticleCom static swig_cast_info _swigc__p_IAxis[] = { {&_swigt__p_IAxis, 0, 0, 0}, {&_swigt__p_VariableBinAxis, _p_VariableBinAxisTo_p_IAxis, 0, 0}, {&_swigt__p_ConstKBinAxis, _p_ConstKBinAxisTo_p_IAxis, 0, 0}, {&_swigt__p_CustomBinAxis, _p_CustomBinAxisTo_p_IAxis, 0, 0}, {&_swigt__p_FixedBinAxis, _p_FixedBinAxisTo_p_IAxis, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IBackground[] = { {&_swigt__p_IBackground, 0, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IBackground, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IBackground, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IChiSquaredModule[] = { {&_swigt__p_IChiSquaredModule, 0, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_IChiSquaredModule, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_ICloneable, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_ICloneable, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_ICloneable, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ICloneable, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_ICloneable, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0}, {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_ICloneable, 0, 0}, {&_swigt__p_ParameterPool, _p_ParameterPoolTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_ICloneable, 0, 0}, {&_swigt__p_IUnitConverter, _p_IUnitConverterTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_ICloneable, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_ICloneable, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_ICloneable, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ICloneable, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_ICloneable, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0}, {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_ICloneable, 0, 0}, {&_swigt__p_ParameterPool, _p_ParameterPoolTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_ICloneable, 0, 0}, {&_swigt__p_IUnitConverter, _p_IUnitConverterTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IClusteredParticles[] = { {&_swigt__p_IClusteredParticles, 0, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_IClusteredParticles, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IDetector[] = { {&_swigt__p_IDetector, 0, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IDetector, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IDetector2D[] = { {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector2D, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector2D, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector2D, 0, 0}, {&_swigt__p_IDetector2D, 0, 0, 0},{0, 0, 0, 0}}; @@ -134577,22 +135482,22 @@ static swig_cast_info _swigc__p_IFormFactorDecorator[] = { {&_swigt__p_IFormFac static swig_cast_info _swigc__p_IHistogram[] = { {&_swigt__p_IHistogram, 0, 0, 0}, {&_swigt__p_Histogram2D, _p_Histogram2DTo_p_IHistogram, 0, 0}, {&_swigt__p_Histogram1D, _p_Histogram1DTo_p_IHistogram, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IIntensityFunction[] = { {&_swigt__p_IntensityFunctionSqrt, _p_IntensityFunctionSqrtTo_p_IIntensityFunction, 0, 0}, {&_swigt__p_IIntensityFunction, 0, 0, 0}, {&_swigt__p_IntensityFunctionLog, _p_IntensityFunctionLogTo_p_IIntensityFunction, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IIntensityNormalizer[] = { {&_swigt__p_IIntensityNormalizer, 0, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_IIntensityNormalizer, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_IIntensityNormalizer, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_IInterferenceFunction[] = { {&_swigt__p_IInterferenceFunction, 0, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IInterferenceFunction, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_IInterferenceFunction[] = { {&_swigt__p_IInterferenceFunction, 0, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IInterferenceFunction, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ILayout[] = { {&_swigt__p_ILayout, 0, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ILayout, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMinimizer[] = { {&_swigt__p_IMinimizer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMultiLayerBuilder[] = { {&_swigt__p_IMultiLayerBuilder, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INamed[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INamed, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_INamed, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INamed, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INamed, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INamed, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_INamed, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INamed, 0, 0}, {&_swigt__p_Polygon, _p_PolygonTo_p_INamed, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INamed, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_INamed, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INamed, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INamed, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_INamed, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INamed, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INamed, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INamed, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_INamed, 0, 0}, {&_swigt__p_INode, _p_INodeTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INamed, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INamed, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INamed, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INamed, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INamed, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INamed, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INamed, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INamed, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INamed, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INamed, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INamed, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INamed, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_IShape2D, _p_IShape2DTo_p_INamed, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INamed, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_INamed, 0, 0}, {&_swigt__p_FitStrategyDefault, _p_FitStrategyDefaultTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INamed, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INamed, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INamed, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INamed, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_INamed, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INamed, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INamed, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INamed, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INamed, 0, 0}, {&_swigt__p_INamed, 0, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INamed, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INamed, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INamed, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INamed, 0, 0}, {&_swigt__p_IParameterT_double_t, _p_IParameterT_double_tTo_p_INamed, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INamed, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_INamed, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INamed, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INamed, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INamed, 0, 0}, {&_swigt__p_Line, _p_LineTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INamed, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INamed, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_INamed, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INamed, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INamed, 0, 0}, {&_swigt__p_AdjustMinimizerStrategy, _p_AdjustMinimizerStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFitStrategy, _p_IFitStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INamed, 0, 0}, {&_swigt__p_IParameterized, _p_IParameterizedTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_INamed, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INamed, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INamed, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INamed, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INamed, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_INamed, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_INamed, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INamed, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INamed, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_INode, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INode, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INode, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_INode, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_INode, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_INode, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INode, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0}, {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INode, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INode, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INode, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INode, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INode, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INode, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INode, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INode, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INode, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INode, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INode, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_INode, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INode, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_INode, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INode, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INode, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_INode, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INode, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INamed[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INamed, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_INamed, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INamed, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INamed, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INamed, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_INamed, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INamed, 0, 0}, {&_swigt__p_Polygon, _p_PolygonTo_p_INamed, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INamed, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_INamed, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INamed, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INamed, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_INamed, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INamed, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INamed, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INamed, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_INamed, 0, 0}, {&_swigt__p_INode, _p_INodeTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INamed, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INamed, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INamed, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INamed, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INamed, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INamed, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INamed, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INamed, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INamed, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INamed, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INamed, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INamed, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_IShape2D, _p_IShape2DTo_p_INamed, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INamed, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_INamed, 0, 0}, {&_swigt__p_FitStrategyDefault, _p_FitStrategyDefaultTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INamed, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INamed, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INamed, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INamed, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_INamed, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INamed, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INamed, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INamed, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INamed, 0, 0}, {&_swigt__p_INamed, 0, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INamed, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INamed, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INamed, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INamed, 0, 0}, {&_swigt__p_IParameterT_double_t, _p_IParameterT_double_tTo_p_INamed, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INamed, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_INamed, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INamed, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INamed, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INamed, 0, 0}, {&_swigt__p_Line, _p_LineTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INamed, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INamed, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_INamed, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INamed, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INamed, 0, 0}, {&_swigt__p_AdjustMinimizerStrategy, _p_AdjustMinimizerStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFitStrategy, _p_IFitStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INamed, 0, 0}, {&_swigt__p_IParameterized, _p_IParameterizedTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_INamed, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INamed, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INamed, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INamed, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INamed, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_INamed, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_INamed, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_INamed, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INamed, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INamed, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_INode, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INode, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INode, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_INode, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_INode, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_INode, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INode, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0}, {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INode, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INode, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INode, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INode, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INode, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INode, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INode, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INode, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INode, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INode, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INode, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_INode, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INode, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_INode, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INode, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INode, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_INode, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INode, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_INodeVisitor[] = { {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IObservable[] = { {&_swigt__p_IObservable, 0, 0, 0}, {&_swigt__p_FitSuite, _p_FitSuiteTo_p_IObservable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IObserver[] = { {&_swigt__p_IObserver, 0, 0, 0}, {&_swigt__p_IFitObserver, _p_IFitObserverTo_p_IObserver, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParameterT_double_t[] = { {&_swigt__p_IParameterT_double_t, 0, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_IParameterT_double_t, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_IParameterized[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_IParameterized, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IParameterized, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IParameterized, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_IParameterized, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_IParameterized, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_IParameterized, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_INode, _p_INodeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IParameterized, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IParameterized, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IParameterized, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_IParameterized, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_IParameterized, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_IParameterized, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_IParameterized, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_IParameterized, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_IParameterized, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_IParameterized, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IParameterized, 0, 0}, {&_swigt__p_IParameterized, 0, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IParameterized, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IParameterized, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_IParameterized[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_IParameterized, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IParameterized, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IParameterized, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_IParameterized, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_IParameterized, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_IParameterized, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_INode, _p_INodeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IParameterized, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IParameterized, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IParameterized, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_IParameterized, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_IParameterized, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_IParameterized, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_IParameterized, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_IParameterized, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintFactorGaussian, _p_FootprintFactorGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintFactorSquare, _p_FootprintFactorSquareTo_p_IParameterized, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_IParameterized, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IParameterized, 0, 0}, {&_swigt__p_IParameterized, 0, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IParameterized, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IParameterized, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParticle[] = { {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParticle, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParticle, 0, 0}, {&_swigt__p_IParticle, 0, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParticle, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IPixel[] = { {&_swigt__p_RectangularPixel, _p_RectangularPixelTo_p_IPixel, 0, 0}, {&_swigt__p_SphericalPixel, _p_SphericalPixelTo_p_IPixel, 0, 0}, {&_swigt__p_IPixel, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IResolutionFunction2D[] = { {&_swigt__p_IResolutionFunction2D, 0, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IResolutionFunction2D, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IRotation[] = { {&_swigt__p_RotationY, _p_RotationYTo_p_IRotation, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IRotation, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IRotation, 0, 0}, {&_swigt__p_IRotation, 0, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IRotation, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IRotation, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ISample[] = { {&_swigt__p_Layer, _p_LayerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ISample, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ISample, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ISample, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ISample, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ISample, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ISample, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_ISample, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ISample, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_ISample, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISample, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ISample, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ISample, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ISample, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ISample, 0, 0}, {&_swigt__p_ISample, 0, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ISample, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ISample, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ISample, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ISample, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISample, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_ISample, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_ISample, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ISample[] = { {&_swigt__p_Layer, _p_LayerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ISample, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ISample, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ISample, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ISample, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ISample, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ISample, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_ISample, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ISample, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_ISample, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISample, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ISample, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ISample, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ISample, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ISample, 0, 0}, {&_swigt__p_ISample, 0, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ISample, 0, 0}, {&_swigt__p_FormFactor2DLattice, _p_FormFactor2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_ISample, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ISample, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ISample, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ISample, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISample, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_ISample, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_ISample, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ISelectionRule[] = { {&_swigt__p_ISelectionRule, 0, 0, 0}, {&_swigt__p_SimpleSelectionRule, _p_SimpleSelectionRuleTo_p_ISelectionRule, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IShape2D[] = { {&_swigt__p_Polygon, _p_PolygonTo_p_IShape2D, 0, 0}, {&_swigt__p_Line, _p_LineTo_p_IShape2D, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_IShape2D, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_IShape2D, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_IShape2D, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_IShape2D, 0, 0}, {&_swigt__p_IShape2D, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ISquaredFunction[] = { {&_swigt__p_SquaredFunctionGaussianError, _p_SquaredFunctionGaussianErrorTo_p_ISquaredFunction, 0, 0}, {&_swigt__p_SquaredFunctionMeanSquaredError, _p_SquaredFunctionMeanSquaredErrorTo_p_ISquaredFunction, 0, 0}, {&_swigt__p_ISquaredFunction, 0, 0, 0}, {&_swigt__p_SquaredFunctionDefault, _p_SquaredFunctionDefaultTo_p_ISquaredFunction, 0, 0}, {&_swigt__p_SquaredFunctionSimError, _p_SquaredFunctionSimErrorTo_p_ISquaredFunction, 0, 0}, {&_swigt__p_SquaredFunctionSystematicError, _p_SquaredFunctionSystematicErrorTo_p_ISquaredFunction, 0, 0},{0, 0, 0, 0}}; @@ -134607,6 +135512,7 @@ static swig_cast_info _swigc__p_IntensityScaleAndShiftNormalizer[] = { {&_swigt static swig_cast_info _swigc__p_InterferenceFunction1DLattice[] = { {&_swigt__p_InterferenceFunction1DLattice, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceFunction2DLattice[] = { {&_swigt__p_InterferenceFunction2DLattice, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceFunction2DParaCrystal[] = { {&_swigt__p_InterferenceFunction2DParaCrystal, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_InterferenceFunction2DSuperLattice[] = { {&_swigt__p_InterferenceFunction2DSuperLattice, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceFunctionFinite2DLattice[] = { {&_swigt__p_InterferenceFunctionFinite2DLattice, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceFunctionNone[] = { {&_swigt__p_InterferenceFunctionNone, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceFunctionRadialParaCrystal[] = { {&_swigt__p_InterferenceFunctionRadialParaCrystal, 0, 0, 0},{0, 0, 0, 0}}; @@ -134932,6 +135838,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_InterferenceFunction1DLattice, _swigc__p_InterferenceFunction2DLattice, _swigc__p_InterferenceFunction2DParaCrystal, + _swigc__p_InterferenceFunction2DSuperLattice, _swigc__p_InterferenceFunctionFinite2DLattice, _swigc__p_InterferenceFunctionNone, _swigc__p_InterferenceFunctionRadialParaCrystal,