From 3045129c7025f2cb79024f11e759f2f14543e5fa Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Wed, 21 Aug 2024 15:22:28 +0200 Subject: [PATCH] add SpatialFrequencyCrosscorrelation --- GUI/Model/FromCore/ItemizeSample.cpp | 2 +- Sample/Interface/AutocorrelationModels.cpp | 8 +- Sample/Interface/AutocorrelationModels.h | 4 +- Sample/Interface/CrosscorrelationModels.cpp | 88 ++- Sample/Interface/CrosscorrelationModels.h | 56 +- auto/Wrap/libBornAgainSample.py | 83 ++- auto/Wrap/libBornAgainSample_wrap.cpp | 682 +++++++++++++------- 7 files changed, 623 insertions(+), 300 deletions(-) diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 9f95690b97f..ad808f31fea 100644 --- a/GUI/Model/FromCore/ItemizeSample.cpp +++ b/GUI/Model/FromCore/ItemizeSample.cpp @@ -296,7 +296,7 @@ void set_CrosscorrelationModel(RoughnessItem* parent, const CrosscorrelationMode { if (const auto cd = dynamic_cast<const CommonDepthCrosscorrelation*>(crosscorr)) parent->crossrorrModelSelection().setCertainItem( - new CommonDepthCrosscorrelationItem(cd->crossCorrDepth(R3()))); + new CommonDepthCrosscorrelationItem(cd->crossCorrDepth())); } void set_Roughness(LayerItem* parent, const LayerInterface* top_interface) diff --git a/Sample/Interface/AutocorrelationModels.cpp b/Sample/Interface/AutocorrelationModels.cpp index a08e233b133..b0eccefb4d1 100644 --- a/Sample/Interface/AutocorrelationModels.cpp +++ b/Sample/Interface/AutocorrelationModels.cpp @@ -62,22 +62,22 @@ std::string K_CorrelationModel::pythonArguments() const //! Fourier transform of the correlation function of the roughness profile. //! //! Based on Palasantzas, Phys Rev B, 48, 14472 (1993) -double K_CorrelationModel::spectralFunction(const R3& k) const +double K_CorrelationModel::spectralFunction(const R3& q) const { ASSERT(m_validated); double H = m_hurst_parameter; double clength2 = m_lateral_corr_length * m_lateral_corr_length; - double Qpar2 = k.magxy2(); + double Qpar2 = q.magxy2(); return 4.0 * pi * H * m_sigma * m_sigma * clength2 * std::pow(1 + Qpar2 * clength2, -1 - H); } //! Correlation function of the roughness profile -double K_CorrelationModel::corrFunction(const R3& k) const +double K_CorrelationModel::corrFunction(const R3& r) const { ASSERT(m_validated); double H = m_hurst_parameter; double clength = m_lateral_corr_length; - double R = k.magxy(); + double R = r.magxy(); return m_sigma * m_sigma * std::pow(2., 1 - H) / tgamma(H) * std::pow(R / clength, H) * gsl_sf_bessel_Knu(H, R / clength); } diff --git a/Sample/Interface/AutocorrelationModels.h b/Sample/Interface/AutocorrelationModels.h index a0ea5329bcc..6f2595588df 100644 --- a/Sample/Interface/AutocorrelationModels.h +++ b/Sample/Interface/AutocorrelationModels.h @@ -52,9 +52,9 @@ public: #endif //! Returns power spectral density of the surface roughness - double spectralFunction(const R3& k) const override; + double spectralFunction(const R3& q) const override; - double corrFunction(const R3& k) const override; + double corrFunction(const R3& r) const override; //! Sets rms of roughness void setSigma(double sigma) diff --git a/Sample/Interface/CrosscorrelationModels.cpp b/Sample/Interface/CrosscorrelationModels.cpp index 64f6e0f6f1e..d48316bcfeb 100644 --- a/Sample/Interface/CrosscorrelationModels.cpp +++ b/Sample/Interface/CrosscorrelationModels.cpp @@ -17,53 +17,91 @@ #include "Base/Util/Assert.h" #include "Sample/Interface/AutocorrelationModels.h" #include <cmath> +#include <numbers> -CommonDepthCrosscorrelation::CommonDepthCrosscorrelation(double cross_corr_depth) - : m_crosscorrelation_depth(cross_corr_depth) +using std::numbers::pi; + +namespace { +double cross_spectrum(const AutocorrelationModel* up, const AutocorrelationModel* low, + const R3& qvec) +{ + ASSERT(up && low); + + double sigma_up = up->sigma(); + double sigma_low = low->sigma(); + + if (sigma_up <= 0 || sigma_low <= 0) + return 0; + + double spectrum_up = up->spectralFunction(qvec); + double spectrum_low = low->spectralFunction(qvec); + return 0.5 * ((sigma_low / sigma_up) * spectrum_up + (sigma_up / sigma_low) * spectrum_low); +} +} // namespace + +SpatialFrequencyCrosscorrelation::SpatialFrequencyCrosscorrelation(double base_crosscorr_depth, + double base_frequency, + double power) + : m_base_crosscorr_depth(base_crosscorr_depth) + , m_base_spatial_frequency(base_frequency) + , m_power(power) { validateOrThrow(); } -CommonDepthCrosscorrelation* CommonDepthCrosscorrelation::clone() const +SpatialFrequencyCrosscorrelation* SpatialFrequencyCrosscorrelation::clone() const { - return new CommonDepthCrosscorrelation(m_crosscorrelation_depth); + return new SpatialFrequencyCrosscorrelation(m_base_crosscorr_depth, m_base_spatial_frequency, + m_power); } -std::string CommonDepthCrosscorrelation::validate() const +std::string SpatialFrequencyCrosscorrelation::pythonArguments() const +{ + return Py::Fmt::printArguments({{m_base_crosscorr_depth, parDefs()[0].unit}, + {m_base_spatial_frequency, parDefs()[1].unit}, + {m_power, parDefs()[2].unit}}); +} + +std::string SpatialFrequencyCrosscorrelation::validate() const { std::vector<std::string> errs; - requestGe0(errs, m_crosscorrelation_depth, "crossCorrDepth"); + requestGe0(errs, m_base_crosscorr_depth, parDefs()[0].name); + requestGt0(errs, m_base_spatial_frequency, parDefs()[1].name); + requestGe0(errs, m_power, parDefs()[2].name); if (!errs.empty()) return jointError(errs); m_validated = true; return ""; } -std::string CommonDepthCrosscorrelation::pythonArguments() const -{ - return Py::Fmt::printArguments({{m_crosscorrelation_depth, parDefs()[0].unit}}); -} - -double CommonDepthCrosscorrelation::crossCorrSpectrum(const AutocorrelationModel* up, - const AutocorrelationModel* low, - const R3& qvec, double thickness) const +double SpatialFrequencyCrosscorrelation::crossCorrSpectrum(const AutocorrelationModel* up, + const AutocorrelationModel* low, + const R3& qvec, double thickness) const { ASSERT(thickness >= 0); - ASSERT(up && low); - if (m_crosscorrelation_depth == 0) + if (m_base_crosscorr_depth == 0) return 0; - double sigma_up = up->sigma(); - double sigma_low = low->sigma(); + double frequency_factor = std::pow(qvec.magxy() / 2 / pi / m_base_spatial_frequency, m_power); - if (sigma_up <= 0 || sigma_low <= 0) - return 0; + return ::cross_spectrum(up, low, qvec) + * std::exp(-thickness / m_base_crosscorr_depth * frequency_factor); +} - double spectrum_up = up->spectralFunction(qvec); - double spectrum_low = low->spectralFunction(qvec); - double distance_factor = std::exp(-thickness / m_crosscorrelation_depth); +//------------------------------------------------------------------------------------------------- - return 0.5 * ((sigma_low / sigma_up) * spectrum_up + (sigma_up / sigma_low) * spectrum_low) - * distance_factor; +CommonDepthCrosscorrelation::CommonDepthCrosscorrelation(double cross_corr_depth) + : SpatialFrequencyCrosscorrelation(cross_corr_depth, 1, 0) +{ +} + +CommonDepthCrosscorrelation* CommonDepthCrosscorrelation::clone() const +{ + return new CommonDepthCrosscorrelation(m_base_crosscorr_depth); +} + +std::string CommonDepthCrosscorrelation::pythonArguments() const +{ + return Py::Fmt::printArguments({{m_base_crosscorr_depth, parDefs()[0].unit}}); } diff --git a/Sample/Interface/CrosscorrelationModels.h b/Sample/Interface/CrosscorrelationModels.h index 5e8e611f6a8..a2bc6404703 100644 --- a/Sample/Interface/CrosscorrelationModels.h +++ b/Sample/Interface/CrosscorrelationModels.h @@ -25,7 +25,6 @@ class AutocorrelationModel; class CrosscorrelationModel : public ICloneable, public INode { public: CrosscorrelationModel* clone() const override = 0; - virtual double crossCorrDepth(const R3& qvec) const = 0; virtual double crossCorrSpectrum(const AutocorrelationModel* up, const AutocorrelationModel* low, const R3& qvec, double thickness) const = 0; @@ -36,25 +35,62 @@ public: #endif }; +//! The crosscorrelation factor depends both on the distance between interfaces and the spatial +//! frequency of roughness. +class SpatialFrequencyCrosscorrelation : public CrosscorrelationModel { +public: + SpatialFrequencyCrosscorrelation(double base_crosscorr_depth, double base_frequency, + double power); + SpatialFrequencyCrosscorrelation* clone() const override; + std::string className() const override { return "SpatialFrequencyCrosscorrelation"; } + std::string validate() const override; + double crossCorrSpectrum(const AutocorrelationModel* up, const AutocorrelationModel* low, + const R3& qvec, double thickness) const override; + std::vector<ParaMeta> parDefs() const override + { + return {{"BaseCrosscorrDepth", "nm"}, {"BaseSpatialFrequency", "1/nm"}, {"Power", ""}}; + } + +#ifndef SWIG + std::string pythonArguments() const override; +#endif + + double baseCrossCorrDepth() const + { + return m_base_crosscorr_depth; + } + double baseSpatialFrequency() const + { + return m_base_spatial_frequency; + } + double power() const + { + return m_power; + } + +protected: + double m_base_crosscorr_depth; + double m_base_spatial_frequency; + double m_power; +}; + //! The crosscorrelation factor depends on the distance between interfaces and does not depend //! on the spatial frequency of roughness. -class CommonDepthCrosscorrelation : public CrosscorrelationModel { +class CommonDepthCrosscorrelation : public SpatialFrequencyCrosscorrelation { public: - CommonDepthCrosscorrelation(double cross_corr_depth = 0); + CommonDepthCrosscorrelation(double cross_corr_depth); CommonDepthCrosscorrelation* clone() const override; std::string className() const override { return "CommonDepthCrosscorrelation"; } - std::string validate() const override; - double crossCorrDepth(const R3&) const override { return m_crosscorrelation_depth; } - double crossCorrSpectrum(const AutocorrelationModel* up, const AutocorrelationModel* low, - const R3& qvec, double thickness) const override; - std::vector<ParaMeta> parDefs() const final { return {{"CrosscorrDepth", "nm"}}; } + std::vector<ParaMeta> parDefs() const override { return {{"CrosscorrDepth", "nm"}}; } #ifndef SWIG std::string pythonArguments() const override; #endif -private: - double m_crosscorrelation_depth = 0; + double crossCorrDepth() const + { + return m_base_crosscorr_depth; + } }; #endif // BORNAGAIN_SAMPLE_INTERFACE_CROSSCORRELATIONMODELS_H diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py index 2990af8d604..9f35ceb0dcb 100644 --- a/auto/Wrap/libBornAgainSample.py +++ b/auto/Wrap/libBornAgainSample.py @@ -4367,13 +4367,13 @@ class K_CorrelationModel(AutocorrelationModel): r"""validate(K_CorrelationModel self) -> std::string""" return _libBornAgainSample.K_CorrelationModel_validate(self) - def spectralFunction(self, k): - r"""spectralFunction(K_CorrelationModel self, R3 k) -> double""" - return _libBornAgainSample.K_CorrelationModel_spectralFunction(self, k) + def spectralFunction(self, q): + r"""spectralFunction(K_CorrelationModel self, R3 q) -> double""" + return _libBornAgainSample.K_CorrelationModel_spectralFunction(self, q) - def corrFunction(self, k): - r"""corrFunction(K_CorrelationModel self, R3 k) -> double""" - return _libBornAgainSample.K_CorrelationModel_corrFunction(self, k) + def corrFunction(self, r): + r"""corrFunction(K_CorrelationModel self, R3 r) -> double""" + return _libBornAgainSample.K_CorrelationModel_corrFunction(self, r) def setSigma(self, sigma): r"""setSigma(K_CorrelationModel self, double sigma)""" @@ -4509,10 +4509,6 @@ class CrosscorrelationModel(libBornAgainBase.ICloneable, libBornAgainParam.INode r"""clone(CrosscorrelationModel self) -> CrosscorrelationModel""" return _libBornAgainSample.CrosscorrelationModel_clone(self) - def crossCorrDepth(self, qvec): - r"""crossCorrDepth(CrosscorrelationModel self, R3 qvec) -> double""" - return _libBornAgainSample.CrosscorrelationModel_crossCorrDepth(self, qvec) - def crossCorrSpectrum(self, up, low, qvec, thickness): r"""crossCorrSpectrum(CrosscorrelationModel self, AutocorrelationModel up, AutocorrelationModel low, R3 qvec, double thickness) -> double""" return _libBornAgainSample.CrosscorrelationModel_crossCorrSpectrum(self, up, low, qvec, thickness) @@ -4520,14 +4516,59 @@ class CrosscorrelationModel(libBornAgainBase.ICloneable, libBornAgainParam.INode # Register CrosscorrelationModel in _libBornAgainSample: _libBornAgainSample.CrosscorrelationModel_swigregister(CrosscorrelationModel) -class CommonDepthCrosscorrelation(CrosscorrelationModel): +class SpatialFrequencyCrosscorrelation(CrosscorrelationModel): + r"""Proxy of C++ SpatialFrequencyCrosscorrelation class.""" + + thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") + __repr__ = _swig_repr + + def __init__(self, base_crosscorr_depth, base_frequency, power): + r"""__init__(SpatialFrequencyCrosscorrelation self, double base_crosscorr_depth, double base_frequency, double power) -> SpatialFrequencyCrosscorrelation""" + _libBornAgainSample.SpatialFrequencyCrosscorrelation_swiginit(self, _libBornAgainSample.new_SpatialFrequencyCrosscorrelation(base_crosscorr_depth, base_frequency, power)) + + def clone(self): + r"""clone(SpatialFrequencyCrosscorrelation self) -> SpatialFrequencyCrosscorrelation""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_clone(self) + + def className(self): + r"""className(SpatialFrequencyCrosscorrelation self) -> std::string""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_className(self) + + def validate(self): + r"""validate(SpatialFrequencyCrosscorrelation self) -> std::string""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_validate(self) + + def crossCorrSpectrum(self, up, low, qvec, thickness): + r"""crossCorrSpectrum(SpatialFrequencyCrosscorrelation self, AutocorrelationModel up, AutocorrelationModel low, R3 qvec, double thickness) -> double""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_crossCorrSpectrum(self, up, low, qvec, thickness) + + def parDefs(self): + r"""parDefs(SpatialFrequencyCrosscorrelation self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_parDefs(self) + + def baseCrossCorrDepth(self): + r"""baseCrossCorrDepth(SpatialFrequencyCrosscorrelation self) -> double""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_baseCrossCorrDepth(self) + + def baseSpatialFrequency(self): + r"""baseSpatialFrequency(SpatialFrequencyCrosscorrelation self) -> double""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_baseSpatialFrequency(self) + + def power(self): + r"""power(SpatialFrequencyCrosscorrelation self) -> double""" + return _libBornAgainSample.SpatialFrequencyCrosscorrelation_power(self) + __swig_destroy__ = _libBornAgainSample.delete_SpatialFrequencyCrosscorrelation + +# Register SpatialFrequencyCrosscorrelation in _libBornAgainSample: +_libBornAgainSample.SpatialFrequencyCrosscorrelation_swigregister(SpatialFrequencyCrosscorrelation) +class CommonDepthCrosscorrelation(SpatialFrequencyCrosscorrelation): r"""Proxy of C++ CommonDepthCrosscorrelation class.""" thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") __repr__ = _swig_repr - def __init__(self, cross_corr_depth=0): - r"""__init__(CommonDepthCrosscorrelation self, double cross_corr_depth=0) -> CommonDepthCrosscorrelation""" + def __init__(self, cross_corr_depth): + r"""__init__(CommonDepthCrosscorrelation self, double cross_corr_depth) -> CommonDepthCrosscorrelation""" _libBornAgainSample.CommonDepthCrosscorrelation_swiginit(self, _libBornAgainSample.new_CommonDepthCrosscorrelation(cross_corr_depth)) def clone(self): @@ -4538,21 +4579,13 @@ class CommonDepthCrosscorrelation(CrosscorrelationModel): r"""className(CommonDepthCrosscorrelation self) -> std::string""" return _libBornAgainSample.CommonDepthCrosscorrelation_className(self) - def validate(self): - r"""validate(CommonDepthCrosscorrelation self) -> std::string""" - return _libBornAgainSample.CommonDepthCrosscorrelation_validate(self) - - def crossCorrDepth(self, arg2): - r"""crossCorrDepth(CommonDepthCrosscorrelation self, R3 arg2) -> double""" - return _libBornAgainSample.CommonDepthCrosscorrelation_crossCorrDepth(self, arg2) - - def crossCorrSpectrum(self, up, low, qvec, thickness): - r"""crossCorrSpectrum(CommonDepthCrosscorrelation self, AutocorrelationModel up, AutocorrelationModel low, R3 qvec, double thickness) -> double""" - return _libBornAgainSample.CommonDepthCrosscorrelation_crossCorrSpectrum(self, up, low, qvec, thickness) - def parDefs(self): r"""parDefs(CommonDepthCrosscorrelation self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >""" return _libBornAgainSample.CommonDepthCrosscorrelation_parDefs(self) + + def crossCorrDepth(self): + r"""crossCorrDepth(CommonDepthCrosscorrelation self) -> double""" + return _libBornAgainSample.CommonDepthCrosscorrelation_crossCorrDepth(self) __swig_destroy__ = _libBornAgainSample.delete_CommonDepthCrosscorrelation # Register CommonDepthCrosscorrelation in _libBornAgainSample: diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp index 60c6e5d5e4b..c2f75f61b9f 100644 --- a/auto/Wrap/libBornAgainSample_wrap.cpp +++ b/auto/Wrap/libBornAgainSample_wrap.cpp @@ -3750,68 +3750,69 @@ namespace Swig { #define SWIGTYPE_p_SawtoothRippleLorentz swig_types[102] #define SWIGTYPE_p_SimpleSelectionRule swig_types[103] #define SWIGTYPE_p_Span swig_types[104] -#define SWIGTYPE_p_Sphere swig_types[105] -#define SWIGTYPE_p_Spheroid swig_types[106] -#define SWIGTYPE_p_SpinMatrix swig_types[107] -#define SWIGTYPE_p_SquareLattice2D swig_types[108] -#define SWIGTYPE_p_TanhInterlayer swig_types[109] -#define SWIGTYPE_p_TruncatedCube swig_types[110] -#define SWIGTYPE_p_TruncatedSphere swig_types[111] -#define SWIGTYPE_p_TruncatedSpheroid swig_types[112] -#define SWIGTYPE_p_Vec3T_double_t swig_types[113] -#define SWIGTYPE_p_Vec3T_int_t swig_types[114] -#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[115] -#define SWIGTYPE_p_WavevectorInfo swig_types[116] -#define SWIGTYPE_p_allocator_type swig_types[117] -#define SWIGTYPE_p_char swig_types[118] -#define SWIGTYPE_p_difference_type swig_types[119] -#define SWIGTYPE_p_double2d_t swig_types[120] -#define SWIGTYPE_p_first_type swig_types[121] -#define SWIGTYPE_p_int swig_types[122] -#define SWIGTYPE_p_key_type swig_types[123] -#define SWIGTYPE_p_long_long swig_types[124] -#define SWIGTYPE_p_mapped_type swig_types[125] -#define SWIGTYPE_p_p_PyObject swig_types[126] -#define SWIGTYPE_p_second_type swig_types[127] -#define SWIGTYPE_p_short swig_types[128] -#define SWIGTYPE_p_signed_char swig_types[129] -#define SWIGTYPE_p_size_type swig_types[130] -#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[131] -#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[132] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[133] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[134] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[135] -#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[136] -#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[137] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[138] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_t_t swig_types[139] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_t_t swig_types[140] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[141] -#define SWIGTYPE_p_std__complexT_double_t swig_types[142] -#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[143] -#define SWIGTYPE_p_std__invalid_argument swig_types[144] -#define SWIGTYPE_p_std__lessT_std__string_t swig_types[145] -#define SWIGTYPE_p_std__mapT_std__string_double_t swig_types[146] -#define SWIGTYPE_p_std__pairT_double_double_t swig_types[147] -#define SWIGTYPE_p_std__vectorT_INode_const_p_t swig_types[148] -#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[149] -#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_t swig_types[150] -#define SWIGTYPE_p_std__vectorT_double_t swig_types[151] -#define SWIGTYPE_p_std__vectorT_int_t swig_types[152] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_t swig_types[153] -#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_t swig_types[154] -#define SWIGTYPE_p_std__vectorT_std__string_t swig_types[155] -#define SWIGTYPE_p_std__vectorT_std__vectorT_double_t_t swig_types[156] -#define SWIGTYPE_p_std__vectorT_std__vectorT_int_t_t swig_types[157] -#define SWIGTYPE_p_std__vectorT_unsigned_long_t swig_types[158] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[159] -#define SWIGTYPE_p_unsigned_char swig_types[160] -#define SWIGTYPE_p_unsigned_int swig_types[161] -#define SWIGTYPE_p_unsigned_long_long swig_types[162] -#define SWIGTYPE_p_unsigned_short swig_types[163] -#define SWIGTYPE_p_value_type swig_types[164] -static swig_type_info *swig_types[166]; -static swig_module_info swig_module = {swig_types, 165, 0, 0, 0, 0}; +#define SWIGTYPE_p_SpatialFrequencyCrosscorrelation swig_types[105] +#define SWIGTYPE_p_Sphere swig_types[106] +#define SWIGTYPE_p_Spheroid swig_types[107] +#define SWIGTYPE_p_SpinMatrix swig_types[108] +#define SWIGTYPE_p_SquareLattice2D swig_types[109] +#define SWIGTYPE_p_TanhInterlayer swig_types[110] +#define SWIGTYPE_p_TruncatedCube swig_types[111] +#define SWIGTYPE_p_TruncatedSphere swig_types[112] +#define SWIGTYPE_p_TruncatedSpheroid swig_types[113] +#define SWIGTYPE_p_Vec3T_double_t swig_types[114] +#define SWIGTYPE_p_Vec3T_int_t swig_types[115] +#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[116] +#define SWIGTYPE_p_WavevectorInfo swig_types[117] +#define SWIGTYPE_p_allocator_type swig_types[118] +#define SWIGTYPE_p_char swig_types[119] +#define SWIGTYPE_p_difference_type swig_types[120] +#define SWIGTYPE_p_double2d_t swig_types[121] +#define SWIGTYPE_p_first_type swig_types[122] +#define SWIGTYPE_p_int swig_types[123] +#define SWIGTYPE_p_key_type swig_types[124] +#define SWIGTYPE_p_long_long swig_types[125] +#define SWIGTYPE_p_mapped_type swig_types[126] +#define SWIGTYPE_p_p_PyObject swig_types[127] +#define SWIGTYPE_p_second_type swig_types[128] +#define SWIGTYPE_p_short swig_types[129] +#define SWIGTYPE_p_signed_char swig_types[130] +#define SWIGTYPE_p_size_type swig_types[131] +#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[132] +#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[133] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[134] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[135] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[136] +#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[137] +#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[138] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[139] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_t_t swig_types[140] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_t_t swig_types[141] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[142] +#define SWIGTYPE_p_std__complexT_double_t swig_types[143] +#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[144] +#define SWIGTYPE_p_std__invalid_argument swig_types[145] +#define SWIGTYPE_p_std__lessT_std__string_t swig_types[146] +#define SWIGTYPE_p_std__mapT_std__string_double_t swig_types[147] +#define SWIGTYPE_p_std__pairT_double_double_t swig_types[148] +#define SWIGTYPE_p_std__vectorT_INode_const_p_t swig_types[149] +#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[150] +#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_t swig_types[151] +#define SWIGTYPE_p_std__vectorT_double_t swig_types[152] +#define SWIGTYPE_p_std__vectorT_int_t swig_types[153] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_t swig_types[154] +#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_t swig_types[155] +#define SWIGTYPE_p_std__vectorT_std__string_t swig_types[156] +#define SWIGTYPE_p_std__vectorT_std__vectorT_double_t_t swig_types[157] +#define SWIGTYPE_p_std__vectorT_std__vectorT_int_t_t swig_types[158] +#define SWIGTYPE_p_std__vectorT_unsigned_long_t swig_types[159] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[160] +#define SWIGTYPE_p_unsigned_char swig_types[161] +#define SWIGTYPE_p_unsigned_int swig_types[162] +#define SWIGTYPE_p_unsigned_long_long swig_types[163] +#define SWIGTYPE_p_unsigned_short swig_types[164] +#define SWIGTYPE_p_value_type swig_types[165] +static swig_type_info *swig_types[167]; +static swig_module_info swig_module = {swig_types, 166, 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) @@ -53727,50 +53728,6 @@ fail: } -SWIGINTERN PyObject *_wrap_CrosscorrelationModel_crossCorrDepth(PyObject *self, PyObject *args) { - PyObject *resultobj = 0; - CrosscorrelationModel *arg1 = (CrosscorrelationModel *) 0 ; - R3 *arg2 = 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - double result; - - (void)self; - if (!SWIG_Python_UnpackTuple(args, "CrosscorrelationModel_crossCorrDepth", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CrosscorrelationModel, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CrosscorrelationModel_crossCorrDepth" "', argument " "1"" of type '" "CrosscorrelationModel const *""'"); - } - arg1 = reinterpret_cast< CrosscorrelationModel * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_double_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CrosscorrelationModel_crossCorrDepth" "', argument " "2"" of type '" "R3 const &""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CrosscorrelationModel_crossCorrDepth" "', argument " "2"" of type '" "R3 const &""'"); - } - arg2 = reinterpret_cast< R3 * >(argp2); - { - try { - result = (double)((CrosscorrelationModel const *)arg1)->crossCorrDepth((R3 const &)*arg2); - } catch (const std::exception& ex) { - // message shown in the Python interpreter - const std::string msg { - "BornAgain C++ Exception: " + std::string(ex.what()) - }; - SWIG_exception(SWIG_RuntimeError, msg.c_str()); - } - } - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_CrosscorrelationModel_crossCorrSpectrum(PyObject *self, PyObject *args) { PyObject *resultobj = 0; CrosscorrelationModel *arg1 = (CrosscorrelationModel *) 0 ; @@ -53879,23 +53836,40 @@ SWIGINTERN PyObject *CrosscorrelationModel_swigregister(PyObject *SWIGUNUSEDPARM return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_new_CommonDepthCrosscorrelation__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_new_SpatialFrequencyCrosscorrelation(PyObject *self, PyObject *args) { PyObject *resultobj = 0; double arg1 ; + double arg2 ; + double arg3 ; double val1 ; int ecode1 = 0 ; - CommonDepthCrosscorrelation *result = 0 ; + double val2 ; + int ecode2 = 0 ; + double val3 ; + int ecode3 = 0 ; + PyObject *swig_obj[3] ; + SpatialFrequencyCrosscorrelation *result = 0 ; (void)self; - if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "new_SpatialFrequencyCrosscorrelation", 3, 3, swig_obj)) SWIG_fail; ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_CommonDepthCrosscorrelation" "', argument " "1"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_SpatialFrequencyCrosscorrelation" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); + ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_SpatialFrequencyCrosscorrelation" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_SpatialFrequencyCrosscorrelation" "', argument " "3"" of type '" "double""'"); + } + arg3 = static_cast< double >(val3); { try { - result = (CommonDepthCrosscorrelation *)new CommonDepthCrosscorrelation(arg1); + result = (SpatialFrequencyCrosscorrelation *)new SpatialFrequencyCrosscorrelation(arg1,arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53904,22 +53878,32 @@ SWIGINTERN PyObject *_wrap_new_CommonDepthCrosscorrelation__SWIG_0(PyObject *sel SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CommonDepthCrosscorrelation, SWIG_POINTER_NEW | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SpatialFrequencyCrosscorrelation, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_new_CommonDepthCrosscorrelation__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - CommonDepthCrosscorrelation *result = 0 ; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + SpatialFrequencyCrosscorrelation *result = 0 ; (void)self; - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_clone" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); + } + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); { try { - result = (CommonDepthCrosscorrelation *)new CommonDepthCrosscorrelation(); + result = (SpatialFrequencyCrosscorrelation *)((SpatialFrequencyCrosscorrelation const *)arg1)->clone(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53928,63 +53912,168 @@ SWIGINTERN PyObject *_wrap_new_CommonDepthCrosscorrelation__SWIG_1(PyObject *sel SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CommonDepthCrosscorrelation, SWIG_POINTER_NEW | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_new_CommonDepthCrosscorrelation(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[2] = { - 0 - }; +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_className(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + std::string result; - if (!(argc = SWIG_Python_UnpackTuple(args, "new_CommonDepthCrosscorrelation", 0, 1, argv))) SWIG_fail; - --argc; - if (argc == 0) { - return _wrap_new_CommonDepthCrosscorrelation__SWIG_1(self, argc, argv); + (void)self; + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_className" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); } - if (argc == 1) { - int _v = 0; - { - int res = SWIG_AsVal_double(argv[0], NULL); - _v = SWIG_CheckState(res); + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); + { + try { + result = ((SpatialFrequencyCrosscorrelation const *)arg1)->className(); + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); } - if (_v) { - return _wrap_new_CommonDepthCrosscorrelation__SWIG_0(self, argc, argv); + } + resultobj = SWIG_From_std_string(static_cast< std::string >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_validate(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + std::string result; + + (void)self; + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_validate" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); + } + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); + { + try { + result = ((SpatialFrequencyCrosscorrelation const *)arg1)->validate(); + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } + resultobj = SWIG_From_std_string(static_cast< std::string >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_crossCorrSpectrum(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; + AutocorrelationModel *arg2 = (AutocorrelationModel *) 0 ; + AutocorrelationModel *arg3 = (AutocorrelationModel *) 0 ; + R3 *arg4 = 0 ; + double arg5 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; + void *argp3 = 0 ; + int res3 = 0 ; + void *argp4 = 0 ; + int res4 = 0 ; + double val5 ; + int ecode5 = 0 ; + PyObject *swig_obj[5] ; + double result; + (void)self; + if (!SWIG_Python_UnpackTuple(args, "SpatialFrequencyCrosscorrelation_crossCorrSpectrum", 5, 5, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_crossCorrSpectrum" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); + } + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_AutocorrelationModel, 0 | 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpatialFrequencyCrosscorrelation_crossCorrSpectrum" "', argument " "2"" of type '" "AutocorrelationModel const *""'"); + } + arg2 = reinterpret_cast< AutocorrelationModel * >(argp2); + res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_AutocorrelationModel, 0 | 0 ); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SpatialFrequencyCrosscorrelation_crossCorrSpectrum" "', argument " "3"" of type '" "AutocorrelationModel const *""'"); + } + arg3 = reinterpret_cast< AutocorrelationModel * >(argp3); + res4 = SWIG_ConvertPtr(swig_obj[3], &argp4, SWIGTYPE_p_Vec3T_double_t, 0 | 0); + if (!SWIG_IsOK(res4)) { + SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SpatialFrequencyCrosscorrelation_crossCorrSpectrum" "', argument " "4"" of type '" "R3 const &""'"); + } + if (!argp4) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpatialFrequencyCrosscorrelation_crossCorrSpectrum" "', argument " "4"" of type '" "R3 const &""'"); + } + arg4 = reinterpret_cast< R3 * >(argp4); + ecode5 = SWIG_AsVal_double(swig_obj[4], &val5); + if (!SWIG_IsOK(ecode5)) { + SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "SpatialFrequencyCrosscorrelation_crossCorrSpectrum" "', argument " "5"" of type '" "double""'"); + } + arg5 = static_cast< double >(val5); + { + try { + result = (double)((SpatialFrequencyCrosscorrelation const *)arg1)->crossCorrSpectrum((AutocorrelationModel const *)arg2,(AutocorrelationModel const *)arg3,(R3 const &)*arg4,arg5); + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); + } + } + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; fail: - SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_CommonDepthCrosscorrelation'.\n" - " Possible C/C++ prototypes are:\n" - " CommonDepthCrosscorrelation::CommonDepthCrosscorrelation(double)\n" - " CommonDepthCrosscorrelation::CommonDepthCrosscorrelation()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_clone(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_parDefs(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - CommonDepthCrosscorrelation *result = 0 ; + SwigValueWrapper< std::vector< ParaMeta,std::allocator< ParaMeta > > > result; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_clone" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_parDefs" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); } - arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); { try { - result = (CommonDepthCrosscorrelation *)((CommonDepthCrosscorrelation const *)arg1)->clone(); + result = ((SpatialFrequencyCrosscorrelation const *)arg1)->parDefs(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53993,32 +54082,32 @@ SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_clone(PyObject *self, PyO SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + resultobj = SWIG_NewPointerObj((new std::vector< ParaMeta,std::allocator< ParaMeta > >(result)), SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_className(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_baseCrossCorrDepth(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - std::string result; + double result; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_className" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_baseCrossCorrDepth" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); } - arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); { try { - result = ((CommonDepthCrosscorrelation const *)arg1)->className(); + result = (double)((SpatialFrequencyCrosscorrelation const *)arg1)->baseCrossCorrDepth(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -54027,32 +54116,32 @@ SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_className(PyObject *self, SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_From_std_string(static_cast< std::string >(result)); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_validate(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_baseSpatialFrequency(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - std::string result; + double result; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_validate" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_baseSpatialFrequency" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); } - arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); { try { - result = ((CommonDepthCrosscorrelation const *)arg1)->validate(); + result = (double)((SpatialFrequencyCrosscorrelation const *)arg1)->baseSpatialFrequency(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -54061,42 +54150,110 @@ SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_validate(PyObject *self, SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_From_std_string(static_cast< std::string >(result)); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_crossCorrDepth(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_SpatialFrequencyCrosscorrelation_power(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; - R3 *arg2 = 0 ; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; + PyObject *swig_obj[1] ; double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "CommonDepthCrosscorrelation_crossCorrDepth", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_crossCorrDepth" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialFrequencyCrosscorrelation_power" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation const *""'"); } - arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_double_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CommonDepthCrosscorrelation_crossCorrDepth" "', argument " "2"" of type '" "R3 const &""'"); + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); + { + try { + result = (double)((SpatialFrequencyCrosscorrelation const *)arg1)->power(); + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); + } } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CommonDepthCrosscorrelation_crossCorrDepth" "', argument " "2"" of type '" "R3 const &""'"); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_delete_SpatialFrequencyCrosscorrelation(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + SpatialFrequencyCrosscorrelation *arg1 = (SpatialFrequencyCrosscorrelation *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + + (void)self; + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpatialFrequencyCrosscorrelation, SWIG_POINTER_DISOWN | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SpatialFrequencyCrosscorrelation" "', argument " "1"" of type '" "SpatialFrequencyCrosscorrelation *""'"); } - arg2 = reinterpret_cast< R3 * >(argp2); + arg1 = reinterpret_cast< SpatialFrequencyCrosscorrelation * >(argp1); + { + try { + delete arg1; + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); + } + } + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *SpatialFrequencyCrosscorrelation_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *obj; + if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; + SWIG_TypeNewClientData(SWIGTYPE_p_SpatialFrequencyCrosscorrelation, SWIG_NewClientData(obj)); + return SWIG_Py_Void(); +} + +SWIGINTERN PyObject *SpatialFrequencyCrosscorrelation_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + return SWIG_Python_InitShadowInstance(args); +} + +SWIGINTERN PyObject *_wrap_new_CommonDepthCrosscorrelation(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + double arg1 ; + double val1 ; + int ecode1 = 0 ; + PyObject *swig_obj[1] ; + CommonDepthCrosscorrelation *result = 0 ; + + (void)self; + if (!args) SWIG_fail; + swig_obj[0] = args; + ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_CommonDepthCrosscorrelation" "', argument " "1"" of type '" "double""'"); + } + arg1 = static_cast< double >(val1); { try { - result = (double)((CommonDepthCrosscorrelation const *)arg1)->crossCorrDepth((R3 const &)*arg2); + result = (CommonDepthCrosscorrelation *)new CommonDepthCrosscorrelation(arg1); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -54105,66 +54262,66 @@ SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_crossCorrDepth(PyObject * SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_From_double(static_cast< double >(result)); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CommonDepthCrosscorrelation, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_crossCorrSpectrum(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; - AutocorrelationModel *arg2 = (AutocorrelationModel *) 0 ; - AutocorrelationModel *arg3 = (AutocorrelationModel *) 0 ; - R3 *arg4 = 0 ; - double arg5 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - double val5 ; - int ecode5 = 0 ; - PyObject *swig_obj[5] ; - double result; + PyObject *swig_obj[1] ; + CommonDepthCrosscorrelation *result = 0 ; (void)self; - if (!SWIG_Python_UnpackTuple(args, "CommonDepthCrosscorrelation_crossCorrSpectrum", 5, 5, swig_obj)) SWIG_fail; + if (!args) SWIG_fail; + swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_crossCorrSpectrum" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_clone" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); } arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_AutocorrelationModel, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CommonDepthCrosscorrelation_crossCorrSpectrum" "', argument " "2"" of type '" "AutocorrelationModel const *""'"); - } - arg2 = reinterpret_cast< AutocorrelationModel * >(argp2); - res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_AutocorrelationModel, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CommonDepthCrosscorrelation_crossCorrSpectrum" "', argument " "3"" of type '" "AutocorrelationModel const *""'"); - } - arg3 = reinterpret_cast< AutocorrelationModel * >(argp3); - res4 = SWIG_ConvertPtr(swig_obj[3], &argp4, SWIGTYPE_p_Vec3T_double_t, 0 | 0); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "CommonDepthCrosscorrelation_crossCorrSpectrum" "', argument " "4"" of type '" "R3 const &""'"); + { + try { + result = (CommonDepthCrosscorrelation *)((CommonDepthCrosscorrelation const *)arg1)->clone(); + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); + } } - if (!argp4) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CommonDepthCrosscorrelation_crossCorrSpectrum" "', argument " "4"" of type '" "R3 const &""'"); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_className(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + std::string result; + + (void)self; + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_className" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); } - arg4 = reinterpret_cast< R3 * >(argp4); - ecode5 = SWIG_AsVal_double(swig_obj[4], &val5); - if (!SWIG_IsOK(ecode5)) { - SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "CommonDepthCrosscorrelation_crossCorrSpectrum" "', argument " "5"" of type '" "double""'"); - } - arg5 = static_cast< double >(val5); + arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); { try { - result = (double)((CommonDepthCrosscorrelation const *)arg1)->crossCorrSpectrum((AutocorrelationModel const *)arg2,(AutocorrelationModel const *)arg3,(R3 const &)*arg4,arg5); + result = ((CommonDepthCrosscorrelation const *)arg1)->className(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -54173,7 +54330,7 @@ SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_crossCorrSpectrum(PyObjec SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_From_double(static_cast< double >(result)); + resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; @@ -54214,6 +54371,40 @@ fail: } +SWIGINTERN PyObject *_wrap_CommonDepthCrosscorrelation_crossCorrDepth(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + double result; + + (void)self; + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_CommonDepthCrosscorrelation, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CommonDepthCrosscorrelation_crossCorrDepth" "', argument " "1"" of type '" "CommonDepthCrosscorrelation const *""'"); + } + arg1 = reinterpret_cast< CommonDepthCrosscorrelation * >(argp1); + { + try { + result = (double)((CommonDepthCrosscorrelation const *)arg1)->crossCorrDepth(); + } catch (const std::exception& ex) { + // message shown in the Python interpreter + const std::string msg { + "BornAgain C++ Exception: " + std::string(ex.what()) + }; + SWIG_exception(SWIG_RuntimeError, msg.c_str()); + } + } + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_delete_CommonDepthCrosscorrelation(PyObject *self, PyObject *args) { PyObject *resultobj = 0; CommonDepthCrosscorrelation *arg1 = (CommonDepthCrosscorrelation *) 0 ; @@ -74254,8 +74445,8 @@ static PyMethodDef SwigMethods[] = { { "K_CorrelationModel_className", _wrap_K_CorrelationModel_className, METH_O, "K_CorrelationModel_className(K_CorrelationModel self) -> std::string"}, { "K_CorrelationModel_parDefs", _wrap_K_CorrelationModel_parDefs, METH_O, "K_CorrelationModel_parDefs(K_CorrelationModel self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >"}, { "K_CorrelationModel_validate", _wrap_K_CorrelationModel_validate, METH_O, "K_CorrelationModel_validate(K_CorrelationModel self) -> std::string"}, - { "K_CorrelationModel_spectralFunction", _wrap_K_CorrelationModel_spectralFunction, METH_VARARGS, "K_CorrelationModel_spectralFunction(K_CorrelationModel self, R3 k) -> double"}, - { "K_CorrelationModel_corrFunction", _wrap_K_CorrelationModel_corrFunction, METH_VARARGS, "K_CorrelationModel_corrFunction(K_CorrelationModel self, R3 k) -> double"}, + { "K_CorrelationModel_spectralFunction", _wrap_K_CorrelationModel_spectralFunction, METH_VARARGS, "K_CorrelationModel_spectralFunction(K_CorrelationModel self, R3 q) -> double"}, + { "K_CorrelationModel_corrFunction", _wrap_K_CorrelationModel_corrFunction, METH_VARARGS, "K_CorrelationModel_corrFunction(K_CorrelationModel self, R3 r) -> double"}, { "K_CorrelationModel_setSigma", _wrap_K_CorrelationModel_setSigma, METH_VARARGS, "K_CorrelationModel_setSigma(K_CorrelationModel self, double sigma)"}, { "K_CorrelationModel_sigma", _wrap_K_CorrelationModel_sigma, METH_O, "K_CorrelationModel_sigma(K_CorrelationModel self) -> double"}, { "K_CorrelationModel_setHurstParameter", _wrap_K_CorrelationModel_setHurstParameter, METH_VARARGS, "K_CorrelationModel_setHurstParameter(K_CorrelationModel self, double hurstParameter)"}, @@ -74290,17 +74481,26 @@ static PyMethodDef SwigMethods[] = { { "TanhInterlayer_swigregister", TanhInterlayer_swigregister, METH_O, NULL}, { "TanhInterlayer_swiginit", TanhInterlayer_swiginit, METH_VARARGS, NULL}, { "CrosscorrelationModel_clone", _wrap_CrosscorrelationModel_clone, METH_O, "CrosscorrelationModel_clone(CrosscorrelationModel self) -> CrosscorrelationModel"}, - { "CrosscorrelationModel_crossCorrDepth", _wrap_CrosscorrelationModel_crossCorrDepth, METH_VARARGS, "CrosscorrelationModel_crossCorrDepth(CrosscorrelationModel self, R3 qvec) -> double"}, { "CrosscorrelationModel_crossCorrSpectrum", _wrap_CrosscorrelationModel_crossCorrSpectrum, METH_VARARGS, "CrosscorrelationModel_crossCorrSpectrum(CrosscorrelationModel self, AutocorrelationModel up, AutocorrelationModel low, R3 qvec, double thickness) -> double"}, { "delete_CrosscorrelationModel", _wrap_delete_CrosscorrelationModel, METH_O, "delete_CrosscorrelationModel(CrosscorrelationModel self)"}, { "CrosscorrelationModel_swigregister", CrosscorrelationModel_swigregister, METH_O, NULL}, - { "new_CommonDepthCrosscorrelation", _wrap_new_CommonDepthCrosscorrelation, METH_VARARGS, "CommonDepthCrosscorrelation(double cross_corr_depth=0)"}, + { "new_SpatialFrequencyCrosscorrelation", _wrap_new_SpatialFrequencyCrosscorrelation, METH_VARARGS, "new_SpatialFrequencyCrosscorrelation(double base_crosscorr_depth, double base_frequency, double power) -> SpatialFrequencyCrosscorrelation"}, + { "SpatialFrequencyCrosscorrelation_clone", _wrap_SpatialFrequencyCrosscorrelation_clone, METH_O, "SpatialFrequencyCrosscorrelation_clone(SpatialFrequencyCrosscorrelation self) -> SpatialFrequencyCrosscorrelation"}, + { "SpatialFrequencyCrosscorrelation_className", _wrap_SpatialFrequencyCrosscorrelation_className, METH_O, "SpatialFrequencyCrosscorrelation_className(SpatialFrequencyCrosscorrelation self) -> std::string"}, + { "SpatialFrequencyCrosscorrelation_validate", _wrap_SpatialFrequencyCrosscorrelation_validate, METH_O, "SpatialFrequencyCrosscorrelation_validate(SpatialFrequencyCrosscorrelation self) -> std::string"}, + { "SpatialFrequencyCrosscorrelation_crossCorrSpectrum", _wrap_SpatialFrequencyCrosscorrelation_crossCorrSpectrum, METH_VARARGS, "SpatialFrequencyCrosscorrelation_crossCorrSpectrum(SpatialFrequencyCrosscorrelation self, AutocorrelationModel up, AutocorrelationModel low, R3 qvec, double thickness) -> double"}, + { "SpatialFrequencyCrosscorrelation_parDefs", _wrap_SpatialFrequencyCrosscorrelation_parDefs, METH_O, "SpatialFrequencyCrosscorrelation_parDefs(SpatialFrequencyCrosscorrelation self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >"}, + { "SpatialFrequencyCrosscorrelation_baseCrossCorrDepth", _wrap_SpatialFrequencyCrosscorrelation_baseCrossCorrDepth, METH_O, "SpatialFrequencyCrosscorrelation_baseCrossCorrDepth(SpatialFrequencyCrosscorrelation self) -> double"}, + { "SpatialFrequencyCrosscorrelation_baseSpatialFrequency", _wrap_SpatialFrequencyCrosscorrelation_baseSpatialFrequency, METH_O, "SpatialFrequencyCrosscorrelation_baseSpatialFrequency(SpatialFrequencyCrosscorrelation self) -> double"}, + { "SpatialFrequencyCrosscorrelation_power", _wrap_SpatialFrequencyCrosscorrelation_power, METH_O, "SpatialFrequencyCrosscorrelation_power(SpatialFrequencyCrosscorrelation self) -> double"}, + { "delete_SpatialFrequencyCrosscorrelation", _wrap_delete_SpatialFrequencyCrosscorrelation, METH_O, "delete_SpatialFrequencyCrosscorrelation(SpatialFrequencyCrosscorrelation self)"}, + { "SpatialFrequencyCrosscorrelation_swigregister", SpatialFrequencyCrosscorrelation_swigregister, METH_O, NULL}, + { "SpatialFrequencyCrosscorrelation_swiginit", SpatialFrequencyCrosscorrelation_swiginit, METH_VARARGS, NULL}, + { "new_CommonDepthCrosscorrelation", _wrap_new_CommonDepthCrosscorrelation, METH_O, "new_CommonDepthCrosscorrelation(double cross_corr_depth) -> CommonDepthCrosscorrelation"}, { "CommonDepthCrosscorrelation_clone", _wrap_CommonDepthCrosscorrelation_clone, METH_O, "CommonDepthCrosscorrelation_clone(CommonDepthCrosscorrelation self) -> CommonDepthCrosscorrelation"}, { "CommonDepthCrosscorrelation_className", _wrap_CommonDepthCrosscorrelation_className, METH_O, "CommonDepthCrosscorrelation_className(CommonDepthCrosscorrelation self) -> std::string"}, - { "CommonDepthCrosscorrelation_validate", _wrap_CommonDepthCrosscorrelation_validate, METH_O, "CommonDepthCrosscorrelation_validate(CommonDepthCrosscorrelation self) -> std::string"}, - { "CommonDepthCrosscorrelation_crossCorrDepth", _wrap_CommonDepthCrosscorrelation_crossCorrDepth, METH_VARARGS, "CommonDepthCrosscorrelation_crossCorrDepth(CommonDepthCrosscorrelation self, R3 arg2) -> double"}, - { "CommonDepthCrosscorrelation_crossCorrSpectrum", _wrap_CommonDepthCrosscorrelation_crossCorrSpectrum, METH_VARARGS, "CommonDepthCrosscorrelation_crossCorrSpectrum(CommonDepthCrosscorrelation self, AutocorrelationModel up, AutocorrelationModel low, R3 qvec, double thickness) -> double"}, { "CommonDepthCrosscorrelation_parDefs", _wrap_CommonDepthCrosscorrelation_parDefs, METH_O, "CommonDepthCrosscorrelation_parDefs(CommonDepthCrosscorrelation self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >"}, + { "CommonDepthCrosscorrelation_crossCorrDepth", _wrap_CommonDepthCrosscorrelation_crossCorrDepth, METH_O, "CommonDepthCrosscorrelation_crossCorrDepth(CommonDepthCrosscorrelation self) -> double"}, { "delete_CommonDepthCrosscorrelation", _wrap_delete_CommonDepthCrosscorrelation, METH_O, "delete_CommonDepthCrosscorrelation(CommonDepthCrosscorrelation self)"}, { "CommonDepthCrosscorrelation_swigregister", CommonDepthCrosscorrelation_swigregister, METH_O, NULL}, { "CommonDepthCrosscorrelation_swiginit", CommonDepthCrosscorrelation_swiginit, METH_VARARGS, NULL}, @@ -74917,7 +75117,10 @@ static void *_p_K_CorrelationModelTo_p_AutocorrelationModel(void *x, int *SWIGUN return (void *)((AutocorrelationModel *) ((K_CorrelationModel *) x)); } static void *_p_CommonDepthCrosscorrelationTo_p_CrosscorrelationModel(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((CrosscorrelationModel *) ((CommonDepthCrosscorrelation *) x)); + return (void *)((CrosscorrelationModel *) (SpatialFrequencyCrosscorrelation *) ((CommonDepthCrosscorrelation *) x)); +} +static void *_p_SpatialFrequencyCrosscorrelationTo_p_CrosscorrelationModel(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((CrosscorrelationModel *) ((SpatialFrequencyCrosscorrelation *) x)); } static void *_p_AutocorrelationModelTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((AutocorrelationModel *) x)); @@ -74941,7 +75144,7 @@ static void *_p_CantellatedCubeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newm return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x)); } static void *_p_CommonDepthCrosscorrelationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (CrosscorrelationModel *) ((CommonDepthCrosscorrelation *) x)); + return (void *)((ICloneable *) (CrosscorrelationModel *)(SpatialFrequencyCrosscorrelation *) ((CommonDepthCrosscorrelation *) x)); } static void *_p_CompoundTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((Compound *) x)); @@ -75195,6 +75398,9 @@ static void *_p_SawtoothRippleGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM( static void *_p_SawtoothRippleLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x)); } +static void *_p_SpatialFrequencyCrosscorrelationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (CrosscorrelationModel *) ((SpatialFrequencyCrosscorrelation *) x)); +} static void *_p_SphereTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((Sphere *) x)); } @@ -75454,7 +75660,7 @@ static void *_p_CantellatedCubeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x)); } static void *_p_CommonDepthCrosscorrelationTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (CrosscorrelationModel *) ((CommonDepthCrosscorrelation *) x)); + return (void *)((INode *) (CrosscorrelationModel *)(SpatialFrequencyCrosscorrelation *) ((CommonDepthCrosscorrelation *) x)); } static void *_p_CompoundTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IParticle *) ((Compound *) x)); @@ -75711,6 +75917,9 @@ static void *_p_SawtoothRippleGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newme static void *_p_SawtoothRippleLorentzTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x)); } +static void *_p_SpatialFrequencyCrosscorrelationTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (CrosscorrelationModel *) ((SpatialFrequencyCrosscorrelation *) x)); +} static void *_p_SphereTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((Sphere *) x)); } @@ -76032,6 +76241,9 @@ static void *_p_HexagonalLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(ne static void *_p_SquareLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Lattice2D *) ((SquareLattice2D *) x)); } +static void *_p_CommonDepthCrosscorrelationTo_p_SpatialFrequencyCrosscorrelation(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((SpatialFrequencyCrosscorrelation *) ((CommonDepthCrosscorrelation *) x)); +} static swig_type_info _swigt__p_AutocorrelationModel = {"_p_AutocorrelationModel", "AutocorrelationModel *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BarGauss = {"_p_BarGauss", "BarGauss *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BarLorentz = {"_p_BarLorentz", "BarLorentz *", 0, 0, (void*)0, 0}; @@ -76137,6 +76349,7 @@ static swig_type_info _swigt__p_SawtoothRippleGauss = {"_p_SawtoothRippleGauss", static swig_type_info _swigt__p_SawtoothRippleLorentz = {"_p_SawtoothRippleLorentz", "SawtoothRippleLorentz *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SimpleSelectionRule = {"_p_SimpleSelectionRule", "SimpleSelectionRule *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Span = {"_p_Span", "Span *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_SpatialFrequencyCrosscorrelation = {"_p_SpatialFrequencyCrosscorrelation", "SpatialFrequencyCrosscorrelation *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Sphere = {"_p_Sphere", "Sphere *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Spheroid = {"_p_Spheroid", "Spheroid *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SpinMatrix = {"_p_SpinMatrix", "SpinMatrix *", 0, 0, (void*)0, 0}; @@ -76304,6 +76517,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_SawtoothRippleLorentz, &_swigt__p_SimpleSelectionRule, &_swigt__p_Span, + &_swigt__p_SpatialFrequencyCrosscorrelation, &_swigt__p_Sphere, &_swigt__p_Spheroid, &_swigt__p_SpinMatrix, @@ -76380,7 +76594,7 @@ static swig_cast_info _swigc__p_CoreAndShell[] = { {&_swigt__p_CoreAndShell, 0, static swig_cast_info _swigc__p_CosineRippleBox[] = { {&_swigt__p_CosineRippleBox, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_CosineRippleGauss[] = { {&_swigt__p_CosineRippleGauss, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_CosineRippleLorentz[] = { {&_swigt__p_CosineRippleLorentz, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_CrosscorrelationModel[] = { {&_swigt__p_CrosscorrelationModel, 0, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_CrosscorrelationModel, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_CrosscorrelationModel[] = { {&_swigt__p_CrosscorrelationModel, 0, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_CrosscorrelationModel, 0, 0}, {&_swigt__p_SpatialFrequencyCrosscorrelation, _p_SpatialFrequencyCrosscorrelationTo_p_CrosscorrelationModel, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Crystal[] = { {&_swigt__p_Crystal, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Cylinder[] = { {&_swigt__p_Cylinder, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Dodecahedron[] = { {&_swigt__p_Dodecahedron, 0, 0, 0},{0, 0, 0, 0}}; @@ -76392,14 +76606,14 @@ static swig_cast_info _swigc__p_GaussSphere[] = { {&_swigt__p_GaussSphere, 0, 0 static swig_cast_info _swigc__p_HemiEllipsoid[] = { {&_swigt__p_HemiEllipsoid, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_HexagonalLattice2D[] = { {&_swigt__p_HexagonalLattice2D, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_HorizontalCylinder[] = { {&_swigt__p_HorizontalCylinder, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_AutocorrelationModel, _p_AutocorrelationModelTo_p_ICloneable, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_ICloneable, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_CrosscorrelationModel, _p_CrosscorrelationModelTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_K_CorrelationModel, _p_K_CorrelationModelTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_AutocorrelationModel, _p_AutocorrelationModelTo_p_ICloneable, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_ICloneable, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_CrosscorrelationModel, _p_CrosscorrelationModelTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_K_CorrelationModel, _p_K_CorrelationModelTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_SpatialFrequencyCrosscorrelation, _p_SpatialFrequencyCrosscorrelationTo_p_ICloneable, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ICosineRipple[] = { {&_swigt__p_ICosineRipple, 0, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICosineRipple, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICosineRipple, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICosineRipple, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormfactor[] = { {&_swigt__p_IFormfactor, 0, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactor, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_IFormfactor, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactor, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_IFormfactor, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_IFormfactor, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_IFormfactor, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_IFormfactor, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_IFormfactor, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_IFormfactor, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactor, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactor, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactor, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_IFormfactor, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_IFormfactor, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactor, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_IFormfactor, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormfactorPolyhedron[] = { {&_swigt__p_IFormfactorPolyhedron, 0, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactorPolyhedron, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormfactorPrism[] = { {&_swigt__p_IFormfactorPrism, 0, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPrism, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPrism, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPrism, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IInterference[] = { {&_swigt__p_IInterference, 0, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_IInterference, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMaterialImpl[] = { {&_swigt__p_IMaterialImpl, 0, 0, 0}, {&_swigt__p_MaterialBySLDImpl, _p_MaterialBySLDImplTo_p_IMaterialImpl, 0, 0}, {&_swigt__p_RefractiveMaterialImpl, _p_RefractiveMaterialImplTo_p_IMaterialImpl, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_AutocorrelationModel, _p_AutocorrelationModelTo_p_INode, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_INode, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_CrosscorrelationModel, _p_CrosscorrelationModelTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_INode, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0}, {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_K_CorrelationModel, _p_K_CorrelationModelTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_INode, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_AutocorrelationModel, _p_AutocorrelationModelTo_p_INode, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_INode, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_CrosscorrelationModel, _p_CrosscorrelationModelTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_INode, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0}, {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_K_CorrelationModel, _p_K_CorrelationModelTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_SpatialFrequencyCrosscorrelation, _p_SpatialFrequencyCrosscorrelationTo_p_INode, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_INode, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParticle[] = { {&_swigt__p_IParticle, 0, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_IParticle, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_IParticle, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_IParticle, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IPeakShape[] = { {&_swigt__p_IPeakShape, 0, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_IPeakShape, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IProfile1D[] = { {&_swigt__p_IProfile1D, 0, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_IProfile1D, 0, 0},{0, 0, 0, 0}}; @@ -76471,6 +76685,7 @@ static swig_cast_info _swigc__p_SawtoothRippleGauss[] = { {&_swigt__p_SawtoothR static swig_cast_info _swigc__p_SawtoothRippleLorentz[] = { {&_swigt__p_SawtoothRippleLorentz, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SimpleSelectionRule[] = { {&_swigt__p_SimpleSelectionRule, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Span[] = { {&_swigt__p_Span, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_SpatialFrequencyCrosscorrelation[] = { {&_swigt__p_SpatialFrequencyCrosscorrelation, 0, 0, 0}, {&_swigt__p_CommonDepthCrosscorrelation, _p_CommonDepthCrosscorrelationTo_p_SpatialFrequencyCrosscorrelation, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Sphere[] = { {&_swigt__p_Sphere, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Spheroid[] = { {&_swigt__p_Spheroid, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SpinMatrix[] = { {&_swigt__p_SpinMatrix, 0, 0, 0},{0, 0, 0, 0}}; @@ -76638,6 +76853,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_SawtoothRippleLorentz, _swigc__p_SimpleSelectionRule, _swigc__p_Span, + _swigc__p_SpatialFrequencyCrosscorrelation, _swigc__p_Sphere, _swigc__p_Spheroid, _swigc__p_SpinMatrix, -- GitLab