diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0c054a8404c163a1c51291d0af67209a8f0f68dc..947ee53f4e2c33a0396e0682201fd6685ed0bbea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,8 +33,6 @@ windows: - build/ script: - $OPT_DIR = "C:/opt/x64" - - $FFTW3_INCLUDE_DIR = "$OPT_DIR/include" - - $FFTW3_LIB = "$OPT_DIR/lib/libfftw3-3.lib" - $BOOST_DIR = "$OPT_DIR/boost_current" - $BOOST_INCLUDE_DIR = "$BOOST_DIR/include" - $BOOST_LIB_DIR = "$BOOST_DIR/lib" @@ -53,10 +51,11 @@ windows: - if($CI_PIPELINE_SOURCE -eq "schedule") { mkdir -Force $BUILD_DIR; echo "scheduled build" } - if(!(Test-Path -path $BUILD_DIR)) { mkdir -Force $BUILD_DIR; echo "build from scratch" } - cd $BUILD_DIR + - Remove-Item CM* -Recurse - pwd - echo "#--- CONFIGURE ---" - cmake --version - - cmake -G "Visual Studio 16 2019" -A x64 -T host=x64 -DLIB_MAN=OFF -DQTDIR="$QT_MSVC_DIR" -DQt5_DIR="$QTCMake_DIR/Qt5" -DQt5Test_DIR="$QTCMake_DIR/Qt5Test" -DFFTW3_INCLUDE_DIR="$FFTW3_INCLUDE_DIR" -DFFTW3_LIBRARY="$FFTW3_LIB" -DCMAKE_INCLUDE_PATH="$OPT_DIR/include;$BOOST_INCLUDE_DIR" -DCMAKE_LIBRARY_PATH="$OPT_DIR/lib;$BOOST_LIB_DIR" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -B. .. + - cmake -G "Visual Studio 16 2019" -A x64 -T host=x64 -DLIB_MAN=OFF -DQTDIR="$QT_MSVC_DIR" -DQt5_DIR="$QTCMake_DIR/Qt5" -DQt5Test_DIR="$QTCMake_DIR/Qt5Test" -DCMAKE_INCLUDE_PATH="$OPT_DIR/include;$BOOST_INCLUDE_DIR" -DCMAKE_LIBRARY_PATH="$OPT_DIR/lib;$BOOST_LIB_DIR" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -B. .. - echo "#--- BUILD ---" - pwd - if($CI_PIPELINE_SOURCE -eq "schedule") { cmake --build . --target clean } diff --git a/CMakeLists.txt b/CMakeLists.txt index 89606bb2f135cdc2a39d6c0d66c6eafecbd95eea..0d2d9bc3d6518bdc652d7a88ca4a2c4f85a2d04a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,9 +150,6 @@ add_subdirectory(Fit) add_subdirectory(Fit/Test/Unit) add_subdirectory(Fit/Test/Functional) -# TEMPORARY formfactor -add_subdirectory(ff) - ## recurse into the given subdirectories # BornAgain components are built as separate shared libraries @@ -178,6 +175,9 @@ if(BORNAGAIN_TIDY) set(CMAKE_CXX_CLANG_TIDY "clang-tidy") # has effect only if compiler is clang; uses .clang-tidy endif() +################################## TEMPORARY formfactor #################################### +add_subdirectory(ff) + # core components foreach(lib ${CoreComponents}) add_subdirectory(${lib}) diff --git a/Core/Export/SampleToPython.cpp b/Core/Export/SampleToPython.cpp index ea7d48ef82618255f50baec263e077f5e6e0d0a2..57a3a7465a6ba76de7f780a29c5f116a8fe91db8 100644 --- a/Core/Export/SampleToPython.cpp +++ b/Core/Export/SampleToPython.cpp @@ -357,7 +357,7 @@ std::string SampleToPython::defineParticleLayouts() const for (const auto* s : v) { const std::string& key = m_objs->obj2key(s); result << indent() << key << " = ba.ParticleLayout()\n"; - const auto particles = NodeUtils::ChildNodesOfType<IAbstractParticle>(*s); + const auto particles = NodeUtils::ChildNodesOfType<IParticle>(*s); for (const auto* particle : particles) { double abundance = particle->abundance(); result << indent() << key << ".addParticle(" << m_objs->obj2key(particle) << ", " diff --git a/Param/Node/INodeVisitor.h b/Param/Node/INodeVisitor.h index 1cfe134136c3607c1770e6aa897a4528f8aa445b..9093e15ade631fc84e4db35f9302127c57600585 100644 --- a/Param/Node/INodeVisitor.h +++ b/Param/Node/INodeVisitor.h @@ -89,7 +89,6 @@ class FormFactorTruncatedSpheroid; class FormFactorWeighted; class GISASSimulation; class HexagonalLattice2D; -class IAbstractParticle; class IBornFF; class IClusteredParticles; class IFormFactor; @@ -217,7 +216,6 @@ public: virtual void visit(const FormFactorWeighted*) {} virtual void visit(const GISASSimulation*) {} virtual void visit(const HexagonalLattice2D*) {} - virtual void visit(const IAbstractParticle*) {} virtual void visit(const IBornFF*) {} virtual void visit(const IClusteredParticles*) {} virtual void visit(const IFormFactor*) {} diff --git a/Sample/Aggregate/ParticleLayout.cpp b/Sample/Aggregate/ParticleLayout.cpp index 71da246bf87ff7cb320ce069d7ef52cbd954ef1a..6ab69bc39f7db363dcd59a5a344581639c603a37 100644 --- a/Sample/Aggregate/ParticleLayout.cpp +++ b/Sample/Aggregate/ParticleLayout.cpp @@ -21,7 +21,7 @@ ParticleLayout::ParticleLayout() { } -ParticleLayout::ParticleLayout(const IAbstractParticle& particle, double abundance) +ParticleLayout::ParticleLayout(const IParticle& particle, double abundance) : m_weight(1.0), m_total_particle_density(0.01), m_interparticle(nullptr) { addParticle(particle, abundance); @@ -50,10 +50,10 @@ ParticleLayout* ParticleLayout::clone() const //! @param abundance Particle abundance //! @param position Particle position //! @param rotation Particle rotation -void ParticleLayout::addParticle(const IAbstractParticle& particle, double abundance, +void ParticleLayout::addParticle(const IParticle& particle, double abundance, const R3 position, const IRotation& rotation) { - IAbstractParticle* particle_clone = particle.clone(); + IParticle* particle_clone = particle.clone(); if (abundance >= 0.0) particle_clone->setAbundance(abundance); if (!rotation.isIdentity()) @@ -64,7 +64,7 @@ void ParticleLayout::addParticle(const IAbstractParticle& particle, double abund } //! Returns information on all particles (type and abundance) -//! and generates new particles if an IAbstractParticle denotes a collection +//! and generates new particles if an IParticle denotes a collection SafePointerVector<IParticle> ParticleLayout::particles() const { SafePointerVector<IParticle> particle_vector; @@ -122,7 +122,7 @@ std::vector<const INode*> ParticleLayout::getChildren() const } //! Adds particle information with simultaneous registration in parent class. -void ParticleLayout::addAndRegisterAbstractParticle(IAbstractParticle* child) +void ParticleLayout::addAndRegisterAbstractParticle(IParticle* child) { m_particles.push_back(child); } diff --git a/Sample/Aggregate/ParticleLayout.h b/Sample/Aggregate/ParticleLayout.h index 499527d8c888d249b55c70147f35a476c82a41fc..dae277e9036b982720e1dcc697e59c90b9c5496f 100644 --- a/Sample/Aggregate/ParticleLayout.h +++ b/Sample/Aggregate/ParticleLayout.h @@ -20,7 +20,7 @@ #include "Sample/Scattering/Rotations.h" #include <memory> -class IAbstractParticle; +class IParticle; class IInterference; class IParticle; @@ -33,14 +33,14 @@ public: std::string className() const final { return class_name; } ParticleLayout(); - ParticleLayout(const IAbstractParticle& particle, double abundance = -1.0); + ParticleLayout(const IParticle& particle, double abundance = -1.0); ~ParticleLayout() override; ParticleLayout* clone() const override; void accept(INodeVisitor* visitor) const override { visitor->visit(this); } - void addParticle(const IAbstractParticle& particle, double abundance = -1.0, R3 position = {}, + void addParticle(const IParticle& particle, double abundance = -1.0, R3 position = {}, const IRotation& rotation = IdentityRotation()); SafePointerVector<IParticle> particles() const; @@ -65,12 +65,12 @@ public: double weightedParticleSurfaceDensity() const; private: - void addAndRegisterAbstractParticle(IAbstractParticle* child); + void addAndRegisterAbstractParticle(IParticle* child); void setAndRegisterInterference(IInterference* child); double m_weight; double m_total_particle_density; - SafePointerVector<IAbstractParticle> m_particles; //!< Vector of particle types + SafePointerVector<IParticle> m_particles; //!< Vector of particle types std::unique_ptr<IInterference> m_interparticle; }; diff --git a/Sample/Particle/IAbstractParticle.cpp b/Sample/Particle/IAbstractParticle.cpp deleted file mode 100644 index 9a09f04b02dbf06b747060197bf447ddd1955659..0000000000000000000000000000000000000000 --- a/Sample/Particle/IAbstractParticle.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file Sample/Particle/IAbstractParticle.cpp -//! @brief Defines interface IAParticle. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#include "Sample/Particle/IAbstractParticle.h" - -IAbstractParticle::IAbstractParticle(const NodeMeta& meta, const std::vector<double>& PValues) - : ISampleNode(meta, PValues) -{ -} - -void IAbstractParticle::accept(INodeVisitor* visitor) const -{ - visitor->visit(this); -} diff --git a/Sample/Particle/IAbstractParticle.h b/Sample/Particle/IAbstractParticle.h deleted file mode 100644 index 7f9b537a6575e0244dad42abe687c100d7ceb9ac..0000000000000000000000000000000000000000 --- a/Sample/Particle/IAbstractParticle.h +++ /dev/null @@ -1,58 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file Sample/Particle/IAbstractParticle.h -//! @brief Defines interface IAbstractParticle. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#ifndef USER_API -#ifndef BORNAGAIN_SAMPLE_PARTICLE_IABSTRACTPARTICLE_H -#define BORNAGAIN_SAMPLE_PARTICLE_IABSTRACTPARTICLE_H - -#include "Sample/Scattering/ISampleNode.h" -#include <heinz/Vectors3D.h> - -class IRotation; - -//! Interface for a generic particle. -//! -//! Inherited by IParticle. - -//! @ingroup samples - -class IAbstractParticle : public ISampleNode { -public: - IAbstractParticle() = default; - IAbstractParticle(const NodeMeta& meta, const std::vector<double>& PValues); - ~IAbstractParticle() override = default; - - IAbstractParticle* clone() const override = 0; - - void accept(INodeVisitor* visitor) const override; - - double abundance() const { return m_abundance; } - - //! Sets particle abundance. - //! @param abundance: proportion of this type of particles normalized to the - //! total number of particles in the layout. - void setAbundance(double abundance) { m_abundance = abundance; } - - //! Translates the particle with the given vector - virtual void translate(R3 translation) = 0; - - //! Applies the given rotation to the particle - virtual void rotate(const IRotation& rotation) = 0; - -protected: - double m_abundance{1.0}; // not a Parameter -}; - -#endif // BORNAGAIN_SAMPLE_PARTICLE_IABSTRACTPARTICLE_H -#endif // USER_API diff --git a/Sample/Particle/IParticle.h b/Sample/Particle/IParticle.h index 8f70cbab0e7242d3b4e975a3981e3acbd6345d7b..8630f769c2079764832bf9725c431b9f330ec740 100644 --- a/Sample/Particle/IParticle.h +++ b/Sample/Particle/IParticle.h @@ -16,8 +16,8 @@ #ifndef BORNAGAIN_SAMPLE_PARTICLE_IPARTICLE_H #define BORNAGAIN_SAMPLE_PARTICLE_IPARTICLE_H +#include "Sample/Scattering/ISampleNode.h" #include "Base/Types/SafePointerVector.h" -#include "Sample/Particle/IAbstractParticle.h" #include <heinz/Vectors3D.h> #include <memory> @@ -26,11 +26,11 @@ class Rotations; class ZLimits; //! Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal. -//! Provides position/rotation and form factor. Abundance is inherited from IAbstractParticle. +//! Provides position/rotation and form factor. Abundance is inherited from IParticle. //! //! @ingroup samples -class IParticle : public IAbstractParticle { +class IParticle : public ISampleNode { public: ~IParticle() override; IParticle* clone() const override = 0; @@ -41,6 +41,13 @@ public: //! Creates a sliced form factor for this particle virtual SlicedParticle createSlicedParticle(const ZLimits& limits) const; + double abundance() const { return m_abundance; } + + //! Sets particle abundance. + //! @param abundance: proportion of this type of particles normalized to the + //! total number of particles in the layout. + void setAbundance(double abundance) { m_abundance = abundance; } + //! Returns particle position. R3 position() const { return m_position; } @@ -57,7 +64,7 @@ public: void setPosition(double x, double y, double z) { m_position = R3(x, y, z); } //! Translates the particle - void translate(R3 translation) override; + void translate(R3 translation); //! Returns rotation object const IRotation* rotation() const; @@ -66,7 +73,7 @@ public: void setRotation(const IRotation& rotation); //! Rotates the particle - void rotate(const IRotation& rotation) override; + void rotate(const IRotation& rotation); std::vector<const INode*> getChildren() const override; @@ -77,6 +84,7 @@ public: virtual ZLimits zSpan() const; protected: + double m_abundance{1.0}; // not a Parameter R3 m_position; std::unique_ptr<IRotation> m_rotation; }; diff --git a/Sample/Particle/Particle.cpp b/Sample/Particle/Particle.cpp index 889c5abb47ecc1fdb3430ae4cc0fa2df4a5ee576..b0cc8d5c06930857ca03e5207366fec83b961fbb 100644 --- a/Sample/Particle/Particle.cpp +++ b/Sample/Particle/Particle.cpp @@ -23,30 +23,22 @@ Particle::~Particle() = default; -Particle::Particle(Material material) : m_material(std::move(material)) -{ - initialize(); -} - Particle::Particle(Material material, const IFormFactor& form_factor) : m_material(std::move(material)), m_form_factor(form_factor.clone()) { - initialize(); } Particle::Particle(Material material, const IFormFactor& form_factor, const IRotation& rotation) - : m_material(std::move(material)), m_form_factor(form_factor.clone()) + : Particle(material, form_factor) { - initialize(); setRotation(rotation); } Particle* Particle::clone() const { - auto* p_result = new Particle(m_material); + ASSERT(m_form_factor); + auto* p_result = new Particle(m_material, *m_form_factor); p_result->setAbundance(m_abundance); - if (m_form_factor) - p_result->setFormFactor(*m_form_factor); if (m_rotation) p_result->setRotation(*m_rotation); p_result->setPosition(m_position); @@ -71,20 +63,7 @@ SlicedParticle Particle::createSlicedParticle(const ZLimits& limits) const return {std::move(sliced_ff), {{{volume, transformed_material}}}}; } -void Particle::setMaterial(Material material) -{ - m_material = std::move(material); -} - -void Particle::setFormFactor(const IFormFactor& form_factor) -{ - if (&form_factor != m_form_factor.get()) - m_form_factor.reset(form_factor.clone()); -} - std::vector<const INode*> Particle::getChildren() const { return std::vector<const INode*>() << IParticle::getChildren() << m_form_factor; } - -void Particle::initialize() {} diff --git a/Sample/Particle/Particle.h b/Sample/Particle/Particle.h index 9eed5376e81b57cca6efd4171af09e3ffdad829a..09be81a0bc1dd2eed75e65dcaa294d95c8c8e2fc 100644 --- a/Sample/Particle/Particle.h +++ b/Sample/Particle/Particle.h @@ -25,7 +25,6 @@ class Particle : public IParticle { public: std::string className() const override { return "Particle"; } - Particle(Material material); Particle(Material material, const IFormFactor& form_factor); Particle(Material material, const IFormFactor& form_factor, const IRotation& rotation); ~Particle() override; @@ -36,7 +35,6 @@ public: SlicedParticle createSlicedParticle(const ZLimits& limits) const override; - void setMaterial(Material material); const Material* material() const override { return &m_material; } std::vector<const INode*> getChildren() const override; @@ -44,10 +42,6 @@ public: protected: Material m_material; std::unique_ptr<IFormFactor> m_form_factor; - -private: - void initialize(); - void setFormFactor(const IFormFactor& form_factor); }; #endif // BORNAGAIN_SAMPLE_PARTICLE_PARTICLE_H diff --git a/Tests/Unit/Core/ParticleLayoutTest.cpp b/Tests/Unit/Core/ParticleLayoutTest.cpp index cf2f70ec5f30d8af7c9305f42caf875979d937aa..07162753f17d14177ab130d22e215b67bb7ebb26 100644 --- a/Tests/Unit/Core/ParticleLayoutTest.cpp +++ b/Tests/Unit/Core/ParticleLayoutTest.cpp @@ -3,6 +3,7 @@ #include "Param/Node/NodeUtils.h" #include "Sample/Aggregate/Interference1DLattice.h" #include "Sample/Aggregate/InterferenceNone.h" +#include "Sample/HardParticle/FormFactorFullSphere.h" #include "Sample/Material/MaterialFactoryFuncs.h" #include "Sample/Particle/Particle.h" #include "Tests/GTestWrapper/google_test.h" @@ -16,22 +17,24 @@ TEST_F(ParticleLayoutTest, ParticleLayoutInitial) { ParticleLayout particleDecoration; const auto* p_iff = NodeUtils::OnlyChildOfType<IInterference>(particleDecoration); - auto particles = NodeUtils::ChildNodesOfType<IAbstractParticle>(particleDecoration); + auto particles = NodeUtils::ChildNodesOfType<IParticle>(particleDecoration); EXPECT_EQ(size_t(0), particles.size()); EXPECT_EQ(nullptr, p_iff); } TEST_F(ParticleLayoutTest, ParticleLayoutInitByValue) { - Particle particle(HomogeneousMaterial()); + FormFactorFullSphere ff(5.); + + Particle particle(HomogeneousMaterial(), ff); ParticleLayout particleDecoration(particle, 2.0); const auto* p_iff = NodeUtils::OnlyChildOfType<IInterference>(particleDecoration); - auto particles = NodeUtils::ChildNodesOfType<IAbstractParticle>(particleDecoration); + auto particles = NodeUtils::ChildNodesOfType<IParticle>(particleDecoration); EXPECT_EQ(size_t(1), particles.size()); EXPECT_EQ(nullptr, p_iff); - const IAbstractParticle* p_particle = particles[0]; + const IParticle* p_particle = particles[0]; EXPECT_TRUE(nullptr != p_particle); EXPECT_EQ(2.0, particleDecoration.getTotalAbundance()); } @@ -40,10 +43,12 @@ TEST_F(ParticleLayoutTest, ParticleLayoutAddParticle) { ParticleLayout particleDecoration; - Particle particle1(HomogeneousMaterial()); - Particle particle2(HomogeneousMaterial()); - Particle particle3(HomogeneousMaterial()); - Particle particle4(HomogeneousMaterial()); + FormFactorFullSphere ff(5.); + + Particle particle1(HomogeneousMaterial(), ff); + Particle particle2(HomogeneousMaterial(), ff); + Particle particle3(HomogeneousMaterial(), ff); + Particle particle4(HomogeneousMaterial(), ff); RotationZ transform3(45. * Units::deg); RotationZ transform4(45. * Units::deg); @@ -52,23 +57,23 @@ TEST_F(ParticleLayoutTest, ParticleLayoutAddParticle) particleDecoration.addParticle(particle2, 2.2); particleDecoration.addParticle(particle3, 1.0, R3(0, 0, 0), transform3); particleDecoration.addParticle(particle4, 4.2, R3(0, 0, 0), transform4); - auto particles = NodeUtils::ChildNodesOfType<IAbstractParticle>(particleDecoration); + auto particles = NodeUtils::ChildNodesOfType<IParticle>(particleDecoration); EXPECT_EQ(size_t(4), particles.size()); - const IAbstractParticle* p_particle1 = particles[0]; + const IParticle* p_particle1 = particles[0]; EXPECT_TRUE(nullptr != p_particle1); EXPECT_EQ(1.0, p_particle1->abundance()); - const IAbstractParticle* p_particle2 = particles[1]; + const IParticle* p_particle2 = particles[1]; EXPECT_TRUE(nullptr != p_particle2); EXPECT_EQ(2.2, p_particle2->abundance()); - const IAbstractParticle* p_particle3 = particles[2]; + const IParticle* p_particle3 = particles[2]; EXPECT_TRUE(nullptr != p_particle3); EXPECT_EQ(1.0, p_particle3->abundance()); - const IAbstractParticle* p_particle4 = particles[3]; + const IParticle* p_particle4 = particles[3]; EXPECT_TRUE(nullptr != p_particle4); EXPECT_EQ(4.2, p_particle4->abundance()); } @@ -77,10 +82,12 @@ TEST_F(ParticleLayoutTest, ParticleLayoutAbundanceFraction) { ParticleLayout particleDecoration; - Particle particle1(HomogeneousMaterial()); - Particle particle2(HomogeneousMaterial()); - Particle particle3(HomogeneousMaterial()); - Particle particle4(HomogeneousMaterial()); + FormFactorFullSphere ff(5.); + + Particle particle1(HomogeneousMaterial(), ff); + Particle particle2(HomogeneousMaterial(), ff); + Particle particle3(HomogeneousMaterial(), ff); + Particle particle4(HomogeneousMaterial(), ff); RotationY transform3(45. * Units::deg); RotationZ transform4(45. * Units::deg); @@ -96,10 +103,12 @@ TEST_F(ParticleLayoutTest, ParticleLayoutClone) { ParticleLayout particleDecoration; - Particle particle1(HomogeneousMaterial()); - Particle particle2(HomogeneousMaterial()); - Particle particle3(HomogeneousMaterial()); - Particle particle4(HomogeneousMaterial()); + FormFactorFullSphere ff(5.); + + Particle particle1(HomogeneousMaterial(), ff); + Particle particle2(HomogeneousMaterial(), ff); + Particle particle3(HomogeneousMaterial(), ff); + Particle particle4(HomogeneousMaterial(), ff); RotationY transform3(45. * Units::deg); RotationZ transform4(45. * Units::deg); @@ -110,7 +119,7 @@ TEST_F(ParticleLayoutTest, ParticleLayoutClone) particleDecoration.addParticle(particle4, 4.0, R3(0, 0, 0), transform4); Material mat5 = HomogeneousMaterial("core", 0, 0); - Particle particle5(mat5); + Particle particle5(mat5, ff); particleDecoration.addParticle(particle5, 0.0); InterferenceNone iff_none; @@ -119,25 +128,25 @@ TEST_F(ParticleLayoutTest, ParticleLayoutClone) particleDecoration.setInterference(iff_none); ParticleLayout* clone = particleDecoration.clone(); - auto particles = NodeUtils::ChildNodesOfType<IAbstractParticle>(*clone); + auto particles = NodeUtils::ChildNodesOfType<IParticle>(*clone); - const IAbstractParticle* p_particle1 = particles[0]; + const IParticle* p_particle1 = particles[0]; EXPECT_TRUE(nullptr != p_particle1); EXPECT_EQ(1.0, p_particle1->abundance()); - const IAbstractParticle* p_particle2 = particles[1]; + const IParticle* p_particle2 = particles[1]; EXPECT_TRUE(nullptr != p_particle2); EXPECT_EQ(2.0, p_particle2->abundance()); - const IAbstractParticle* p_particle3 = particles[2]; + const IParticle* p_particle3 = particles[2]; EXPECT_TRUE(nullptr != p_particle3); EXPECT_EQ(1.0, p_particle3->abundance()); - const IAbstractParticle* p_particle4 = particles[3]; + const IParticle* p_particle4 = particles[3]; EXPECT_TRUE(nullptr != p_particle4); EXPECT_EQ(4.0, p_particle4->abundance()); - const IAbstractParticle* p_particle5 = particles[4]; + const IParticle* p_particle5 = particles[4]; EXPECT_TRUE(nullptr != p_particle5); EXPECT_EQ(0.0, p_particle5->abundance()); @@ -164,7 +173,9 @@ TEST_F(ParticleLayoutTest, getChildren) std::vector<const INode*> children = layout.getChildren(); EXPECT_EQ(children.size(), 0u); - layout.addParticle(Particle(HomogeneousMaterial())); + FormFactorFullSphere ff(5.); + + layout.addParticle(Particle(HomogeneousMaterial(), ff)); layout.setInterference(Interference1DLattice(1.0, 2.0)); children = layout.getChildren(); EXPECT_EQ(children.size(), 2u); diff --git a/Tests/Unit/Sample/ParticleCompositionTest.cpp b/Tests/Unit/Sample/ParticleCompositionTest.cpp index 5eee24e7f11f6d0842493ebd4ca58e257c128066..1edc5085e335962508071314998db68a7682dc3f 100644 --- a/Tests/Unit/Sample/ParticleCompositionTest.cpp +++ b/Tests/Unit/Sample/ParticleCompositionTest.cpp @@ -22,7 +22,8 @@ TEST_F(ParticleCompositionTest, ParticleCompositionClone) ParticleComposition composition; R3 position = R3(1.0, 1.0, 1.0); Material material = HomogeneousMaterial("Vacuum", 0.0, 0.0); - Particle particle(material); + FormFactorFullSphere ff(5.); + Particle particle(material, ff); composition.addParticle(particle, position); std::unique_ptr<ParticleComposition> clone(composition.clone()); diff --git a/Tests/Unit/Sample/ParticleCoreShellTest.cpp b/Tests/Unit/Sample/ParticleCoreShellTest.cpp index f1168a4e97879084a440307f6c4e21063c97675d..7cacedcddc35199d30cc4b6a92ba9b85eb757d0e 100644 --- a/Tests/Unit/Sample/ParticleCoreShellTest.cpp +++ b/Tests/Unit/Sample/ParticleCoreShellTest.cpp @@ -7,32 +7,7 @@ #include "Sample/Scattering/Rotations.h" #include "Tests/GTestWrapper/google_test.h" -class ParticleCoreShellTest : public ::testing::Test { -protected: - ParticleCoreShellTest(); - ~ParticleCoreShellTest() override; - - ParticleCoreShell* m_coreshell{nullptr}; -}; - -ParticleCoreShellTest::ParticleCoreShellTest() : m_coreshell(nullptr) -{ - Material mat = HomogeneousMaterial("Ag", 1.245e-5, 5.419e-7); - Particle core(mat); - Particle shell(mat); - R3 position; - m_coreshell = new ParticleCoreShell(shell, core, position); -} - -ParticleCoreShellTest::~ParticleCoreShellTest() -{ - delete m_coreshell; -} - -TEST_F(ParticleCoreShellTest, InitialState) -{ - EXPECT_EQ(nullptr, m_coreshell->rotation()); -} +class ParticleCoreShellTest : public ::testing::Test {}; TEST_F(ParticleCoreShellTest, ComplexCoreShellClone) { diff --git a/Wrap/Swig/libBornAgainSample.i b/Wrap/Swig/libBornAgainSample.i index 17d191ab0aeac75e9effc1aeccaf4febf35baa3f..ba44b5857886a24a93a185c7dbd843540427d99d 100644 --- a/Wrap/Swig/libBornAgainSample.i +++ b/Wrap/Swig/libBornAgainSample.i @@ -130,7 +130,6 @@ %include "Sample/Particle/FormFactorCrystal.h" %include "Sample/Particle/FormFactorWeighted.h" -%include "Sample/Particle/IAbstractParticle.h" %include "Sample/Particle/Crystal.h" %include "Sample/Particle/IParticle.h" %include "Sample/Particle/MesoCrystal.h" diff --git a/auto/Doc/man/bornagain.1 b/auto/Doc/man/bornagain.1 index 1abbe2bfc4582f0cc481eb032118e34b8b5eff1e..3a43708bef531db48ce991af8c1a9a5bb66b0865 100644 --- a/auto/Doc/man/bornagain.1 +++ b/auto/Doc/man/bornagain.1 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "BORNAGAIN 1" -.TH BORNAGAIN 1 "2020-11-23" "perl v5.32.1" "BornAgain manual" +.TH BORNAGAIN 1 "2021-03-09" "perl v5.32.1" "BornAgain manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/auto/Wrap/doxygenParam.i b/auto/Wrap/doxygenParam.i index d1b50863ef6f804d30e6bac7dd708f9b5d967476..0bb00b3e70f4b4d7bc9997252726106535374e61 100644 --- a/auto/Wrap/doxygenParam.i +++ b/auto/Wrap/doxygenParam.i @@ -727,9 +727,6 @@ C++ includes: INodeVisitor.h %feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const HexagonalLattice2D *) "; -%feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const IAbstractParticle *) -"; - %feature("docstring") INodeVisitor::visit "virtual void INodeVisitor::visit(const IBornFF *) "; diff --git a/auto/Wrap/doxygenSample.i b/auto/Wrap/doxygenSample.i index a604e8a6599d30573fd008ddbf94d784ef8015f9..a0b9d4145340eeb7f5b2954a58fde128083ef636 100644 --- a/auto/Wrap/doxygenSample.i +++ b/auto/Wrap/doxygenSample.i @@ -2526,58 +2526,6 @@ C++ includes: Lattice2D.h "; -// File: classIAbstractParticle.xml -%feature("docstring") IAbstractParticle " - -Interface for a generic particle. - -Inherited by IParticle. - -C++ includes: IAbstractParticle.h -"; - -%feature("docstring") IAbstractParticle::IAbstractParticle "IAbstractParticle::IAbstractParticle()=default -"; - -%feature("docstring") IAbstractParticle::IAbstractParticle "IAbstractParticle::IAbstractParticle(const NodeMeta &meta, const std::vector< double > &PValues) -"; - -%feature("docstring") IAbstractParticle::~IAbstractParticle "IAbstractParticle::~IAbstractParticle() override=default -"; - -%feature("docstring") IAbstractParticle::clone "IAbstractParticle* IAbstractParticle::clone() const override=0 - -Returns a clone of this ISampleNode object. -"; - -%feature("docstring") IAbstractParticle::accept "void IAbstractParticle::accept(INodeVisitor *visitor) const override -"; - -%feature("docstring") IAbstractParticle::abundance "double IAbstractParticle::abundance() const -"; - -%feature("docstring") IAbstractParticle::setAbundance "void IAbstractParticle::setAbundance(double abundance) - -Sets particle abundance. - -Parameters: ------------ - -abundance: -proportion of this type of particles normalized to the total number of particles in the layout. -"; - -%feature("docstring") IAbstractParticle::translate "virtual void IAbstractParticle::translate(R3 translation)=0 - -Translates the particle with the given vector. -"; - -%feature("docstring") IAbstractParticle::rotate "virtual void IAbstractParticle::rotate(const IRotation &rotation)=0 - -Applies the given rotation to the particle. -"; - - // File: classIBornFF.xml %feature("docstring") IBornFF " @@ -2855,9 +2803,6 @@ Returns the z-coordinate of the lowest point in this shape after a given rotatio Returns scattering amplitude for complex scattering wavevector q=k_i-k_f. This method is public only for convenience of plotting form factors in Python. "; -%feature("docstring") IFormFactorPolyhedron::evaluate_centered "complex_t IFormFactorPolyhedron::evaluate_centered(C3 q) const -"; - %feature("docstring") IFormFactorPolyhedron::volume "double IFormFactorPolyhedron::volume() const override Returns the total volume of the particle of this form factor's shape. @@ -3746,7 +3691,7 @@ Returns a clone of this ISampleNode object. // File: classIParticle.xml %feature("docstring") IParticle " -Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal. Provides position/rotation and form factor. Abundance is inherited from IAbstractParticle. +Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal. Provides position/rotation and form factor. Abundance is inherited from IParticle. C++ includes: IParticle.h "; @@ -3769,6 +3714,20 @@ Creates a form factor for this particle. Creates a sliced form factor for this particle. "; +%feature("docstring") IParticle::abundance "double IParticle::abundance() const +"; + +%feature("docstring") IParticle::setAbundance "void IParticle::setAbundance(double abundance) + +Sets particle abundance. + +Parameters: +----------- + +abundance: +proportion of this type of particles normalized to the total number of particles in the layout. +"; + %feature("docstring") IParticle::position "R3 IParticle::position() const Returns particle position. @@ -3802,7 +3761,7 @@ z: z-coordinate in nanometers "; -%feature("docstring") IParticle::translate "void IParticle::translate(R3 translation) override +%feature("docstring") IParticle::translate "void IParticle::translate(R3 translation) Translates the particle. "; @@ -3817,7 +3776,7 @@ Returns rotation object. Sets transformation. "; -%feature("docstring") IParticle::rotate "void IParticle::rotate(const IRotation &rotation) override +%feature("docstring") IParticle::rotate "void IParticle::rotate(const IRotation &rotation) Rotates the particle. "; @@ -4860,9 +4819,6 @@ C++ includes: Particle.h %feature("docstring") Particle::className "std::string Particle::className() const override "; -%feature("docstring") Particle::Particle "Particle::Particle(Material material) -"; - %feature("docstring") Particle::Particle "Particle::Particle(Material material, const IFormFactor &form_factor) "; @@ -4885,9 +4841,6 @@ Returns a clone of this ISampleNode object. Creates a sliced form factor for this particle. "; -%feature("docstring") Particle::setMaterial "void Particle::setMaterial(Material material) -"; - %feature("docstring") Particle::material "const Material* Particle::material() const override Returns nullptr, unless overwritten to return a specific material. @@ -5012,7 +4965,7 @@ C++ includes: ParticleLayout.h %feature("docstring") ParticleLayout::ParticleLayout "ParticleLayout::ParticleLayout() "; -%feature("docstring") ParticleLayout::ParticleLayout "ParticleLayout::ParticleLayout(const IAbstractParticle &particle, double abundance=-1.0) +%feature("docstring") ParticleLayout::ParticleLayout "ParticleLayout::ParticleLayout(const IParticle &particle, double abundance=-1.0) "; %feature("docstring") ParticleLayout::~ParticleLayout "ParticleLayout::~ParticleLayout() override @@ -5026,7 +4979,7 @@ Returns a clone of this ISampleNode object. %feature("docstring") ParticleLayout::accept "void ParticleLayout::accept(INodeVisitor *visitor) const override "; -%feature("docstring") ParticleLayout::addParticle "void ParticleLayout::addParticle(const IAbstractParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation()) +%feature("docstring") ParticleLayout::addParticle "void ParticleLayout::addParticle(const IParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation()) Adds particle to the layout with abundance, position and the rotation defined. @@ -5048,7 +5001,7 @@ rotation: %feature("docstring") ParticleLayout::particles "SafePointerVector< IParticle > ParticleLayout::particles() const -Returns information on all particles (type and abundance) and generates new particles if an IAbstractParticle denotes a collection +Returns information on all particles (type and abundance) and generates new particles if an IParticle denotes a collection "; %feature("docstring") ParticleLayout::interferenceFunction "const IInterference * ParticleLayout::interferenceFunction() const @@ -5484,25 +5437,25 @@ C++ includes: ZLimits.h // File: namespace_0d16.xml -// File: namespace_0d175.xml +// File: namespace_0d173.xml // File: namespace_0d2.xml -// File: namespace_0d203.xml +// File: namespace_0d201.xml -// File: namespace_0d216.xml +// File: namespace_0d214.xml -// File: namespace_0d226.xml +// File: namespace_0d224.xml -// File: namespace_0d248.xml +// File: namespace_0d246.xml -// File: namespace_0d261.xml +// File: namespace_0d259.xml // File: namespace_0d36.xml @@ -6417,12 +6370,6 @@ magnetization (in A/m) // File: FormFactorWeighted_8h.xml -// File: IAbstractParticle_8cpp.xml - - -// File: IAbstractParticle_8h.xml - - // File: IParticle_8cpp.xml diff --git a/auto/Wrap/libBornAgainParam.py b/auto/Wrap/libBornAgainParam.py index 9b9f9935ac6389bbca517d624457d134e466d0ee..f9d0d218f2afa1b081a44c3e860f6c92cc5c2bf0 100644 --- a/auto/Wrap/libBornAgainParam.py +++ b/auto/Wrap/libBornAgainParam.py @@ -2490,7 +2490,6 @@ class INodeVisitor(object): visit(INodeVisitor self, FormFactorWeighted const * arg2) visit(INodeVisitor self, GISASSimulation const * arg2) visit(INodeVisitor self, HexagonalLattice2D const * arg2) - visit(INodeVisitor self, IAbstractParticle const * arg2) visit(INodeVisitor self, IBornFF const * arg2) visit(INodeVisitor self, IClusteredParticles const * arg2) visit(INodeVisitor self, IFormFactor const * arg2) diff --git a/auto/Wrap/libBornAgainParam_wrap.cpp b/auto/Wrap/libBornAgainParam_wrap.cpp index 922e83caceabe3c80b72f59df6fb532fc0cba50f..10d67b388f2f6082562c45c3fe883df695488d05 100644 --- a/auto/Wrap/libBornAgainParam_wrap.cpp +++ b/auto/Wrap/libBornAgainParam_wrap.cpp @@ -3170,117 +3170,116 @@ namespace Swig { #define SWIGTYPE_p_FormFactorWeighted swig_types[70] #define SWIGTYPE_p_GISASSimulation swig_types[71] #define SWIGTYPE_p_HexagonalLattice2D swig_types[72] -#define SWIGTYPE_p_IAbstractParticle swig_types[73] -#define SWIGTYPE_p_IBornFF swig_types[74] -#define SWIGTYPE_p_ICloneable swig_types[75] -#define SWIGTYPE_p_IClusteredParticles swig_types[76] -#define SWIGTYPE_p_IDistribution1D swig_types[77] -#define SWIGTYPE_p_IFormFactor swig_types[78] -#define SWIGTYPE_p_IFormFactorDecorator swig_types[79] -#define SWIGTYPE_p_IInterference swig_types[80] -#define SWIGTYPE_p_INode swig_types[81] -#define SWIGTYPE_p_INodeVisitor swig_types[82] -#define SWIGTYPE_p_IParticle swig_types[83] -#define SWIGTYPE_p_IPeakShape swig_types[84] -#define SWIGTYPE_p_IRangedDistribution swig_types[85] -#define SWIGTYPE_p_IRotation swig_types[86] -#define SWIGTYPE_p_ISampleNode swig_types[87] -#define SWIGTYPE_p_IdentityRotation swig_types[88] -#define SWIGTYPE_p_Instrument swig_types[89] -#define SWIGTYPE_p_Interference1DLattice swig_types[90] -#define SWIGTYPE_p_Interference2DLattice swig_types[91] -#define SWIGTYPE_p_Interference2DParaCrystal swig_types[92] -#define SWIGTYPE_p_Interference2DSuperLattice swig_types[93] -#define SWIGTYPE_p_Interference3DLattice swig_types[94] -#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[95] -#define SWIGTYPE_p_InterferenceFinite3DLattice swig_types[96] -#define SWIGTYPE_p_InterferenceHardDisk swig_types[97] -#define SWIGTYPE_p_InterferenceNone swig_types[98] -#define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[99] -#define SWIGTYPE_p_InterferenceTwin swig_types[100] -#define SWIGTYPE_p_Layer swig_types[101] -#define SWIGTYPE_p_LayerInterface swig_types[102] -#define SWIGTYPE_p_LayerRoughness swig_types[103] -#define SWIGTYPE_p_MesoCrystal swig_types[104] -#define SWIGTYPE_p_MultiLayer swig_types[105] -#define SWIGTYPE_p_NodeMeta swig_types[106] -#define SWIGTYPE_p_OffSpecularSimulation swig_types[107] -#define SWIGTYPE_p_ParaMeta swig_types[108] -#define SWIGTYPE_p_ParameterDistribution swig_types[109] -#define SWIGTYPE_p_ParameterSample swig_types[110] -#define SWIGTYPE_p_Particle swig_types[111] -#define SWIGTYPE_p_ParticleComposition swig_types[112] -#define SWIGTYPE_p_ParticleCoreShell swig_types[113] -#define SWIGTYPE_p_ParticleLayout swig_types[114] -#define SWIGTYPE_p_PoissonNoiseBackground swig_types[115] -#define SWIGTYPE_p_RangedDistributionCosine swig_types[116] -#define SWIGTYPE_p_RangedDistributionGate swig_types[117] -#define SWIGTYPE_p_RangedDistributionGaussian swig_types[118] -#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[119] -#define SWIGTYPE_p_RangedDistributionLorentz swig_types[120] -#define SWIGTYPE_p_RealLimits swig_types[121] -#define SWIGTYPE_p_RectangularDetector swig_types[122] -#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[123] -#define SWIGTYPE_p_RotationEuler swig_types[124] -#define SWIGTYPE_p_RotationX swig_types[125] -#define SWIGTYPE_p_RotationY swig_types[126] -#define SWIGTYPE_p_RotationZ swig_types[127] -#define SWIGTYPE_p_SpecularDetector1D swig_types[128] -#define SWIGTYPE_p_SpecularSimulation swig_types[129] -#define SWIGTYPE_p_SphericalDetector swig_types[130] -#define SWIGTYPE_p_SquareLattice2D swig_types[131] -#define SWIGTYPE_p_allocator_type swig_types[132] -#define SWIGTYPE_p_char swig_types[133] -#define SWIGTYPE_p_difference_type swig_types[134] -#define SWIGTYPE_p_first_type swig_types[135] -#define SWIGTYPE_p_int swig_types[136] -#define SWIGTYPE_p_key_type swig_types[137] -#define SWIGTYPE_p_long_long swig_types[138] -#define SWIGTYPE_p_mapped_type swig_types[139] -#define SWIGTYPE_p_p_PyObject swig_types[140] -#define SWIGTYPE_p_second_type swig_types[141] -#define SWIGTYPE_p_short swig_types[142] -#define SWIGTYPE_p_signed_char swig_types[143] -#define SWIGTYPE_p_size_type swig_types[144] -#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[145] -#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[146] -#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[147] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[148] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[149] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[150] -#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[151] -#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[152] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[153] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[154] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[155] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[156] -#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[157] -#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[158] -#define SWIGTYPE_p_std__complexT_double_t swig_types[159] -#define SWIGTYPE_p_std__invalid_argument swig_types[160] -#define SWIGTYPE_p_std__lessT_std__string_t swig_types[161] -#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[162] -#define SWIGTYPE_p_std__pairT_double_double_t swig_types[163] -#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[164] -#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[165] -#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[166] -#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[167] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[168] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[169] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[170] -#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[171] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[172] -#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[173] -#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[174] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[175] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[176] -#define SWIGTYPE_p_unsigned_char swig_types[177] -#define SWIGTYPE_p_unsigned_int swig_types[178] -#define SWIGTYPE_p_unsigned_long_long swig_types[179] -#define SWIGTYPE_p_unsigned_short swig_types[180] -#define SWIGTYPE_p_value_type swig_types[181] -static swig_type_info *swig_types[183]; -static swig_module_info swig_module = {swig_types, 182, 0, 0, 0, 0}; +#define SWIGTYPE_p_IBornFF swig_types[73] +#define SWIGTYPE_p_ICloneable swig_types[74] +#define SWIGTYPE_p_IClusteredParticles swig_types[75] +#define SWIGTYPE_p_IDistribution1D swig_types[76] +#define SWIGTYPE_p_IFormFactor swig_types[77] +#define SWIGTYPE_p_IFormFactorDecorator swig_types[78] +#define SWIGTYPE_p_IInterference swig_types[79] +#define SWIGTYPE_p_INode swig_types[80] +#define SWIGTYPE_p_INodeVisitor swig_types[81] +#define SWIGTYPE_p_IParticle swig_types[82] +#define SWIGTYPE_p_IPeakShape swig_types[83] +#define SWIGTYPE_p_IRangedDistribution swig_types[84] +#define SWIGTYPE_p_IRotation swig_types[85] +#define SWIGTYPE_p_ISampleNode swig_types[86] +#define SWIGTYPE_p_IdentityRotation swig_types[87] +#define SWIGTYPE_p_Instrument swig_types[88] +#define SWIGTYPE_p_Interference1DLattice swig_types[89] +#define SWIGTYPE_p_Interference2DLattice swig_types[90] +#define SWIGTYPE_p_Interference2DParaCrystal swig_types[91] +#define SWIGTYPE_p_Interference2DSuperLattice swig_types[92] +#define SWIGTYPE_p_Interference3DLattice swig_types[93] +#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[94] +#define SWIGTYPE_p_InterferenceFinite3DLattice swig_types[95] +#define SWIGTYPE_p_InterferenceHardDisk swig_types[96] +#define SWIGTYPE_p_InterferenceNone swig_types[97] +#define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[98] +#define SWIGTYPE_p_InterferenceTwin swig_types[99] +#define SWIGTYPE_p_Layer swig_types[100] +#define SWIGTYPE_p_LayerInterface swig_types[101] +#define SWIGTYPE_p_LayerRoughness swig_types[102] +#define SWIGTYPE_p_MesoCrystal swig_types[103] +#define SWIGTYPE_p_MultiLayer swig_types[104] +#define SWIGTYPE_p_NodeMeta swig_types[105] +#define SWIGTYPE_p_OffSpecularSimulation swig_types[106] +#define SWIGTYPE_p_ParaMeta swig_types[107] +#define SWIGTYPE_p_ParameterDistribution swig_types[108] +#define SWIGTYPE_p_ParameterSample swig_types[109] +#define SWIGTYPE_p_Particle swig_types[110] +#define SWIGTYPE_p_ParticleComposition swig_types[111] +#define SWIGTYPE_p_ParticleCoreShell swig_types[112] +#define SWIGTYPE_p_ParticleLayout swig_types[113] +#define SWIGTYPE_p_PoissonNoiseBackground swig_types[114] +#define SWIGTYPE_p_RangedDistributionCosine swig_types[115] +#define SWIGTYPE_p_RangedDistributionGate swig_types[116] +#define SWIGTYPE_p_RangedDistributionGaussian swig_types[117] +#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[118] +#define SWIGTYPE_p_RangedDistributionLorentz swig_types[119] +#define SWIGTYPE_p_RealLimits swig_types[120] +#define SWIGTYPE_p_RectangularDetector swig_types[121] +#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[122] +#define SWIGTYPE_p_RotationEuler swig_types[123] +#define SWIGTYPE_p_RotationX swig_types[124] +#define SWIGTYPE_p_RotationY swig_types[125] +#define SWIGTYPE_p_RotationZ swig_types[126] +#define SWIGTYPE_p_SpecularDetector1D swig_types[127] +#define SWIGTYPE_p_SpecularSimulation swig_types[128] +#define SWIGTYPE_p_SphericalDetector swig_types[129] +#define SWIGTYPE_p_SquareLattice2D swig_types[130] +#define SWIGTYPE_p_allocator_type swig_types[131] +#define SWIGTYPE_p_char swig_types[132] +#define SWIGTYPE_p_difference_type swig_types[133] +#define SWIGTYPE_p_first_type swig_types[134] +#define SWIGTYPE_p_int swig_types[135] +#define SWIGTYPE_p_key_type swig_types[136] +#define SWIGTYPE_p_long_long swig_types[137] +#define SWIGTYPE_p_mapped_type swig_types[138] +#define SWIGTYPE_p_p_PyObject swig_types[139] +#define SWIGTYPE_p_second_type swig_types[140] +#define SWIGTYPE_p_short swig_types[141] +#define SWIGTYPE_p_signed_char swig_types[142] +#define SWIGTYPE_p_size_type swig_types[143] +#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[144] +#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[145] +#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[146] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[147] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[148] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[149] +#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[150] +#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[151] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[152] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[153] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[154] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[155] +#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[156] +#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[157] +#define SWIGTYPE_p_std__complexT_double_t swig_types[158] +#define SWIGTYPE_p_std__invalid_argument swig_types[159] +#define SWIGTYPE_p_std__lessT_std__string_t swig_types[160] +#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[161] +#define SWIGTYPE_p_std__pairT_double_double_t swig_types[162] +#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[163] +#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[164] +#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[165] +#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[166] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[167] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[168] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[169] +#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[170] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[171] +#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[172] +#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[173] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[174] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[175] +#define SWIGTYPE_p_unsigned_char swig_types[176] +#define SWIGTYPE_p_unsigned_int swig_types[177] +#define SWIGTYPE_p_unsigned_long_long swig_types[178] +#define SWIGTYPE_p_unsigned_short swig_types[179] +#define SWIGTYPE_p_value_type swig_types[180] +static swig_type_info *swig_types[182]; +static swig_module_info swig_module = {swig_types, 181, 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) @@ -33337,34 +33336,6 @@ fail: SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_73(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { - PyObject *resultobj = 0; - INodeVisitor *arg1 = (INodeVisitor *) 0 ; - IAbstractParticle *arg2 = (IAbstractParticle *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - - if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_INodeVisitor, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "INodeVisitor_visit" "', argument " "1"" of type '" "INodeVisitor *""'"); - } - arg1 = reinterpret_cast< INodeVisitor * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "INodeVisitor_visit" "', argument " "2"" of type '" "IAbstractParticle const *""'"); - } - arg2 = reinterpret_cast< IAbstractParticle * >(argp2); - (arg1)->visit((IAbstractParticle const *)arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_74(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IBornFF *arg2 = (IBornFF *) 0 ; @@ -33392,7 +33363,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_75(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_74(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IClusteredParticles *arg2 = (IClusteredParticles *) 0 ; @@ -33420,7 +33391,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_76(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_75(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IFormFactor *arg2 = (IFormFactor *) 0 ; @@ -33448,7 +33419,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_77(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_76(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IFormFactorDecorator *arg2 = (IFormFactorDecorator *) 0 ; @@ -33476,7 +33447,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_78(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_77(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IInterference *arg2 = (IInterference *) 0 ; @@ -33504,7 +33475,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_79(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_78(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; INode *arg2 = (INode *) 0 ; @@ -33532,7 +33503,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_80(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_79(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IParticle *arg2 = (IParticle *) 0 ; @@ -33560,7 +33531,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_81(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_80(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IPeakShape *arg2 = (IPeakShape *) 0 ; @@ -33588,7 +33559,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_82(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_81(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IRotation *arg2 = (IRotation *) 0 ; @@ -33616,7 +33587,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_83(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_82(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; ISampleNode *arg2 = (ISampleNode *) 0 ; @@ -33644,7 +33615,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_84(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_83(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; IdentityRotation *arg2 = (IdentityRotation *) 0 ; @@ -33672,7 +33643,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_85(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_84(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Instrument *arg2 = (Instrument *) 0 ; @@ -33700,7 +33671,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_86(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_85(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Interference1DLattice *arg2 = (Interference1DLattice *) 0 ; @@ -33728,7 +33699,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_87(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_86(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Interference2DLattice *arg2 = (Interference2DLattice *) 0 ; @@ -33756,7 +33727,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_88(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_87(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Interference2DParaCrystal *arg2 = (Interference2DParaCrystal *) 0 ; @@ -33784,7 +33755,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_89(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_88(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Interference2DSuperLattice *arg2 = (Interference2DSuperLattice *) 0 ; @@ -33812,7 +33783,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_90(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_89(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Interference3DLattice *arg2 = (Interference3DLattice *) 0 ; @@ -33840,7 +33811,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_91(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_90(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; InterferenceFinite2DLattice *arg2 = (InterferenceFinite2DLattice *) 0 ; @@ -33868,7 +33839,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_92(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_91(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; InterferenceFinite3DLattice *arg2 = (InterferenceFinite3DLattice *) 0 ; @@ -33896,7 +33867,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_93(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_92(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; InterferenceHardDisk *arg2 = (InterferenceHardDisk *) 0 ; @@ -33924,7 +33895,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_94(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_93(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; InterferenceNone *arg2 = (InterferenceNone *) 0 ; @@ -33952,7 +33923,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_95(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_94(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; InterferenceRadialParaCrystal *arg2 = (InterferenceRadialParaCrystal *) 0 ; @@ -33980,7 +33951,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_96(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_95(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; InterferenceTwin *arg2 = (InterferenceTwin *) 0 ; @@ -34008,7 +33979,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_97(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_96(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Layer *arg2 = (Layer *) 0 ; @@ -34036,7 +34007,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_98(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_97(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; LayerInterface *arg2 = (LayerInterface *) 0 ; @@ -34064,7 +34035,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_99(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_98(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; LayerRoughness *arg2 = (LayerRoughness *) 0 ; @@ -34092,7 +34063,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_100(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_99(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; MesoCrystal *arg2 = (MesoCrystal *) 0 ; @@ -34120,7 +34091,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_101(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_100(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; MultiLayer *arg2 = (MultiLayer *) 0 ; @@ -34148,7 +34119,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_102(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_101(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; OffSpecularSimulation *arg2 = (OffSpecularSimulation *) 0 ; @@ -34176,7 +34147,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_103(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_102(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; Particle *arg2 = (Particle *) 0 ; @@ -34204,7 +34175,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_104(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_103(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; ParticleComposition *arg2 = (ParticleComposition *) 0 ; @@ -34232,7 +34203,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_105(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_104(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; ParticleCoreShell *arg2 = (ParticleCoreShell *) 0 ; @@ -34260,7 +34231,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_106(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_105(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; ParticleLayout *arg2 = (ParticleLayout *) 0 ; @@ -34288,7 +34259,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_107(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_106(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; PoissonNoiseBackground *arg2 = (PoissonNoiseBackground *) 0 ; @@ -34316,7 +34287,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_108(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_107(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; RectangularDetector *arg2 = (RectangularDetector *) 0 ; @@ -34344,7 +34315,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_109(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_108(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; ResolutionFunction2DGaussian *arg2 = (ResolutionFunction2DGaussian *) 0 ; @@ -34372,7 +34343,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_110(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_109(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; RotationEuler *arg2 = (RotationEuler *) 0 ; @@ -34400,7 +34371,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_111(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_110(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; RotationX *arg2 = (RotationX *) 0 ; @@ -34428,7 +34399,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_112(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_111(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; RotationY *arg2 = (RotationY *) 0 ; @@ -34456,7 +34427,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_113(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_112(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; RotationZ *arg2 = (RotationZ *) 0 ; @@ -34484,7 +34455,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_114(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_113(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; SpecularDetector1D *arg2 = (SpecularDetector1D *) 0 ; @@ -34512,7 +34483,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_115(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_114(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; SpecularSimulation *arg2 = (SpecularSimulation *) 0 ; @@ -34540,7 +34511,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_116(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_115(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; SphericalDetector *arg2 = (SphericalDetector *) 0 ; @@ -34568,7 +34539,7 @@ fail: } -SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_117(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_116(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; INodeVisitor *arg1 = (INodeVisitor *) 0 ; SquareLattice2D *arg2 = (SquareLattice2D *) 0 ; @@ -35626,20 +35597,6 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { } } } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_INodeVisitor, 0); - _v = SWIG_CheckState(res); - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IAbstractParticle, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_INodeVisitor_visit__SWIG_73(self, argc, argv); - } - } - } if (argc == 2) { int _v; void *vptr = 0; @@ -35650,7 +35607,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IBornFF, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_74(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_73(self, argc, argv); } } } @@ -35664,7 +35621,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IClusteredParticles, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_75(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_74(self, argc, argv); } } } @@ -35678,7 +35635,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IFormFactor, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_76(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_75(self, argc, argv); } } } @@ -35692,7 +35649,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IFormFactorDecorator, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_77(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_76(self, argc, argv); } } } @@ -35706,7 +35663,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IInterference, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_78(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_77(self, argc, argv); } } } @@ -35720,7 +35677,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_INode, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_79(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_78(self, argc, argv); } } } @@ -35734,7 +35691,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IParticle, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_80(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_79(self, argc, argv); } } } @@ -35748,7 +35705,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IPeakShape, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_81(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_80(self, argc, argv); } } } @@ -35762,7 +35719,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IRotation, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_82(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_81(self, argc, argv); } } } @@ -35776,7 +35733,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ISampleNode, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_83(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_82(self, argc, argv); } } } @@ -35790,7 +35747,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IdentityRotation, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_84(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_83(self, argc, argv); } } } @@ -35804,7 +35761,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Instrument, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_85(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_84(self, argc, argv); } } } @@ -35818,7 +35775,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Interference1DLattice, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_86(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_85(self, argc, argv); } } } @@ -35832,7 +35789,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Interference2DLattice, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_87(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_86(self, argc, argv); } } } @@ -35846,7 +35803,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Interference2DParaCrystal, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_88(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_87(self, argc, argv); } } } @@ -35860,7 +35817,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Interference2DSuperLattice, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_89(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_88(self, argc, argv); } } } @@ -35874,7 +35831,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Interference3DLattice, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_90(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_89(self, argc, argv); } } } @@ -35888,7 +35845,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterferenceFinite2DLattice, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_91(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_90(self, argc, argv); } } } @@ -35902,7 +35859,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterferenceFinite3DLattice, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_92(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_91(self, argc, argv); } } } @@ -35916,7 +35873,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterferenceHardDisk, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_93(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_92(self, argc, argv); } } } @@ -35930,7 +35887,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterferenceNone, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_94(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_93(self, argc, argv); } } } @@ -35944,7 +35901,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterferenceRadialParaCrystal, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_95(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_94(self, argc, argv); } } } @@ -35958,7 +35915,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterferenceTwin, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_96(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_95(self, argc, argv); } } } @@ -35972,7 +35929,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Layer, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_97(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_96(self, argc, argv); } } } @@ -35986,7 +35943,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_LayerInterface, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_98(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_97(self, argc, argv); } } } @@ -36000,7 +35957,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_LayerRoughness, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_99(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_98(self, argc, argv); } } } @@ -36014,7 +35971,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_MesoCrystal, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_100(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_99(self, argc, argv); } } } @@ -36028,7 +35985,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_MultiLayer, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_101(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_100(self, argc, argv); } } } @@ -36042,7 +35999,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_OffSpecularSimulation, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_102(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_101(self, argc, argv); } } } @@ -36056,7 +36013,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Particle, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_103(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_102(self, argc, argv); } } } @@ -36070,7 +36027,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParticleComposition, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_104(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_103(self, argc, argv); } } } @@ -36084,7 +36041,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParticleCoreShell, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_105(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_104(self, argc, argv); } } } @@ -36098,7 +36055,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParticleLayout, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_106(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_105(self, argc, argv); } } } @@ -36112,7 +36069,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_PoissonNoiseBackground, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_107(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_106(self, argc, argv); } } } @@ -36126,7 +36083,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RectangularDetector, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_108(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_107(self, argc, argv); } } } @@ -36140,7 +36097,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ResolutionFunction2DGaussian, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_109(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_108(self, argc, argv); } } } @@ -36154,7 +36111,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationEuler, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_110(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_109(self, argc, argv); } } } @@ -36168,7 +36125,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationX, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_111(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_110(self, argc, argv); } } } @@ -36182,7 +36139,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationY, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_112(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_111(self, argc, argv); } } } @@ -36196,7 +36153,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationZ, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_113(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_112(self, argc, argv); } } } @@ -36210,7 +36167,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SpecularDetector1D, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_114(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_113(self, argc, argv); } } } @@ -36224,7 +36181,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SpecularSimulation, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_115(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_114(self, argc, argv); } } } @@ -36238,7 +36195,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SphericalDetector, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_116(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_115(self, argc, argv); } } } @@ -36252,7 +36209,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SquareLattice2D, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_INodeVisitor_visit__SWIG_117(self, argc, argv); + return _wrap_INodeVisitor_visit__SWIG_116(self, argc, argv); } } } @@ -36333,7 +36290,6 @@ fail: " INodeVisitor::visit(FormFactorWeighted const *)\n" " INodeVisitor::visit(GISASSimulation const *)\n" " INodeVisitor::visit(HexagonalLattice2D const *)\n" - " INodeVisitor::visit(IAbstractParticle const *)\n" " INodeVisitor::visit(IBornFF const *)\n" " INodeVisitor::visit(IClusteredParticles const *)\n" " INodeVisitor::visit(IFormFactor const *)\n" @@ -45094,7 +45050,6 @@ static PyMethodDef SwigMethods[] = { "INodeVisitor_visit(INodeVisitor self, FormFactorWeighted const * arg2)\n" "INodeVisitor_visit(INodeVisitor self, GISASSimulation const * arg2)\n" "INodeVisitor_visit(INodeVisitor self, HexagonalLattice2D const * arg2)\n" - "INodeVisitor_visit(INodeVisitor self, IAbstractParticle const * arg2)\n" "INodeVisitor_visit(INodeVisitor self, IBornFF const * arg2)\n" "INodeVisitor_visit(INodeVisitor self, IClusteredParticles const * arg2)\n" "INodeVisitor_visit(INodeVisitor self, IFormFactor const * arg2)\n" @@ -46056,7 +46011,6 @@ static swig_type_info _swigt__p_FormFactorTruncatedSpheroid = {"_p_FormFactorTru static swig_type_info _swigt__p_FormFactorWeighted = {"_p_FormFactorWeighted", "FormFactorWeighted *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_GISASSimulation = {"_p_GISASSimulation", "GISASSimulation *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_HexagonalLattice2D = {"_p_HexagonalLattice2D", "HexagonalLattice2D *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_IAbstractParticle = {"_p_IAbstractParticle", "IAbstractParticle *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IBornFF = {"_p_IBornFF", "IBornFF *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_ICloneable = {"_p_ICloneable", "ICloneable *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IClusteredParticles = {"_p_IClusteredParticles", "IClusteredParticles *", 0, 0, (void*)0, 0}; @@ -46240,7 +46194,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_FormFactorWeighted, &_swigt__p_GISASSimulation, &_swigt__p_HexagonalLattice2D, - &_swigt__p_IAbstractParticle, &_swigt__p_IBornFF, &_swigt__p_ICloneable, &_swigt__p_IClusteredParticles, @@ -46424,7 +46377,6 @@ static swig_cast_info _swigc__p_FormFactorTruncatedSpheroid[] = { {&_swigt__p_F static swig_cast_info _swigc__p_FormFactorWeighted[] = { {&_swigt__p_FormFactorWeighted, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_GISASSimulation[] = { {&_swigt__p_GISASSimulation, 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_IAbstractParticle[] = { {&_swigt__p_IAbstractParticle, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IBornFF[] = { {&_swigt__p_IBornFF, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionGate, _p_RangedDistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_RangedDistributionGaussian, _p_RangedDistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionCosine, _p_RangedDistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionLorentz, _p_RangedDistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionLogNormal, _p_RangedDistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_IRangedDistribution, _p_IRangedDistributionTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IClusteredParticles[] = { {&_swigt__p_IClusteredParticles, 0, 0, 0},{0, 0, 0, 0}}; @@ -46608,7 +46560,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_FormFactorWeighted, _swigc__p_GISASSimulation, _swigc__p_HexagonalLattice2D, - _swigc__p_IAbstractParticle, _swigc__p_IBornFF, _swigc__p_ICloneable, _swigc__p_IClusteredParticles, diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py index b9564596f64089cff4061b1dddc8d396640b2c79..e00d5737128586124c59ae05a404593428b70e08 100644 --- a/auto/Wrap/libBornAgainSample.py +++ b/auto/Wrap/libBornAgainSample.py @@ -4300,90 +4300,6 @@ class FormFactorWeighted(IFormFactor): # Register FormFactorWeighted in _libBornAgainSample: _libBornAgainSample.FormFactorWeighted_swigregister(FormFactorWeighted) -class IAbstractParticle(ISampleNode): - r""" - - - Interface for a generic particle. - - Inherited by IParticle. - - C++ includes: IAbstractParticle.h - - """ - - thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined - class is abstract") - __repr__ = _swig_repr - __swig_destroy__ = _libBornAgainSample.delete_IAbstractParticle - - def clone(self): - r""" - clone(IAbstractParticle self) -> IAbstractParticle - IAbstractParticle* IAbstractParticle::clone() const override=0 - - Returns a clone of this ISampleNode object. - - """ - return _libBornAgainSample.IAbstractParticle_clone(self) - - def accept(self, visitor): - r""" - accept(IAbstractParticle self, INodeVisitor * visitor) - void IAbstractParticle::accept(INodeVisitor *visitor) const override - - """ - return _libBornAgainSample.IAbstractParticle_accept(self, visitor) - - def abundance(self): - r""" - abundance(IAbstractParticle self) -> double - double IAbstractParticle::abundance() const - - """ - return _libBornAgainSample.IAbstractParticle_abundance(self) - - def setAbundance(self, abundance): - r""" - setAbundance(IAbstractParticle self, double abundance) - void IAbstractParticle::setAbundance(double abundance) - - Sets particle abundance. - - Parameters: - ----------- - - abundance: - proportion of this type of particles normalized to the total number of particles in the layout. - - """ - return _libBornAgainSample.IAbstractParticle_setAbundance(self, abundance) - - def translate(self, translation): - r""" - translate(IAbstractParticle self, R3 translation) - virtual void IAbstractParticle::translate(R3 translation)=0 - - Translates the particle with the given vector. - - """ - return _libBornAgainSample.IAbstractParticle_translate(self, translation) - - def rotate(self, rotation): - r""" - rotate(IAbstractParticle self, IRotation rotation) - virtual void IAbstractParticle::rotate(const IRotation &rotation)=0 - - Applies the given rotation to the particle. - - """ - return _libBornAgainSample.IAbstractParticle_rotate(self, rotation) - -# Register IAbstractParticle in _libBornAgainSample: -_libBornAgainSample.IAbstractParticle_swigregister(IAbstractParticle) - class Crystal(ISampleNode): r""" @@ -4475,11 +4391,11 @@ class Crystal(ISampleNode): # Register Crystal in _libBornAgainSample: _libBornAgainSample.Crystal_swigregister(Crystal) -class IParticle(IAbstractParticle): +class IParticle(ISampleNode): r""" - Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal. Provides position/rotation and form factor. Abundance is inherited from IAbstractParticle. + Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal. Provides position/rotation and form factor. Abundance is inherited from IParticle. C++ includes: IParticle.h @@ -4522,6 +4438,30 @@ class IParticle(IAbstractParticle): """ return _libBornAgainSample.IParticle_createSlicedParticle(self, limits) + def abundance(self): + r""" + abundance(IParticle self) -> double + double IParticle::abundance() const + + """ + return _libBornAgainSample.IParticle_abundance(self) + + def setAbundance(self, abundance): + r""" + setAbundance(IParticle self, double abundance) + void IParticle::setAbundance(double abundance) + + Sets particle abundance. + + Parameters: + ----------- + + abundance: + proportion of this type of particles normalized to the total number of particles in the layout. + + """ + return _libBornAgainSample.IParticle_setAbundance(self, abundance) + def position(self): r""" position(IParticle self) -> R3 @@ -4558,7 +4498,7 @@ class IParticle(IAbstractParticle): def translate(self, translation): r""" translate(IParticle self, R3 translation) - void IParticle::translate(R3 translation) override + void IParticle::translate(R3 translation) Translates the particle. @@ -4588,7 +4528,7 @@ class IParticle(IAbstractParticle): def rotate(self, rotation): r""" rotate(IParticle self, IRotation rotation) - void IParticle::rotate(const IRotation &rotation) override + void IParticle::rotate(const IRotation &rotation) Rotates the particle. @@ -4720,7 +4660,6 @@ class Particle(IParticle): def __init__(self, *args): r""" - __init__(Particle self, Material material) -> Particle __init__(Particle self, Material material, IFormFactor form_factor) -> Particle __init__(Particle self, Material material, IFormFactor form_factor, IRotation rotation) -> Particle Particle::Particle(Material material, const IFormFactor &form_factor, const IRotation &rotation) @@ -4757,14 +4696,6 @@ class Particle(IParticle): """ return _libBornAgainSample.Particle_createSlicedParticle(self, limits) - def setMaterial(self, material): - r""" - setMaterial(Particle self, Material material) - void Particle::setMaterial(Material material) - - """ - return _libBornAgainSample.Particle_setMaterial(self, material) - def material(self): r""" material(Particle self) -> Material @@ -8287,8 +8218,8 @@ class ParticleLayout(ISampleNode): def __init__(self, *args): r""" __init__(ParticleLayout self) -> ParticleLayout - __init__(ParticleLayout self, IAbstractParticle particle, double abundance=-1.0) -> ParticleLayout - ParticleLayout::ParticleLayout(const IAbstractParticle &particle, double abundance=-1.0) + __init__(ParticleLayout self, IParticle particle, double abundance=-1.0) -> ParticleLayout + ParticleLayout::ParticleLayout(const IParticle &particle, double abundance=-1.0) """ _libBornAgainSample.ParticleLayout_swiginit(self, _libBornAgainSample.new_ParticleLayout(*args)) @@ -8314,8 +8245,8 @@ class ParticleLayout(ISampleNode): def addParticle(self, *args): r""" - addParticle(ParticleLayout self, IAbstractParticle particle, double abundance=-1.0, R3 position={}, IRotation rotation=IdentityRotation()) - void ParticleLayout::addParticle(const IAbstractParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation()) + addParticle(ParticleLayout self, IParticle particle, double abundance=-1.0, R3 position={}, IRotation rotation=IdentityRotation()) + void ParticleLayout::addParticle(const IParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation()) Adds particle to the layout with abundance, position and the rotation defined. @@ -8342,7 +8273,7 @@ class ParticleLayout(ISampleNode): particles(ParticleLayout self) -> SafePointerVector< IParticle > SafePointerVector< IParticle > ParticleLayout::particles() const - Returns information on all particles (type and abundance) and generates new particles if an IAbstractParticle denotes a collection + Returns information on all particles (type and abundance) and generates new particles if an IParticle denotes a collection """ return _libBornAgainSample.ParticleLayout_particles(self) diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp index dc2da358797d3c723e1402c51acc2672300bc354..a5e5ef68faaac32b3e48e92adaf56bfe3ba8cbc7 100644 --- a/auto/Wrap/libBornAgainSample_wrap.cpp +++ b/auto/Wrap/libBornAgainSample_wrap.cpp @@ -3154,134 +3154,133 @@ namespace Swig { #define SWIGTYPE_p_FormFactorWeighted swig_types[54] #define SWIGTYPE_p_GaussFisherPeakShape swig_types[55] #define SWIGTYPE_p_HexagonalLattice2D swig_types[56] -#define SWIGTYPE_p_IAbstractParticle swig_types[57] -#define SWIGTYPE_p_IBornFF swig_types[58] -#define SWIGTYPE_p_ICloneable swig_types[59] -#define SWIGTYPE_p_ICosineRipple swig_types[60] -#define SWIGTYPE_p_IFTDecayFunction1D swig_types[61] -#define SWIGTYPE_p_IFTDecayFunction2D swig_types[62] -#define SWIGTYPE_p_IFTDistribution1D swig_types[63] -#define SWIGTYPE_p_IFTDistribution2D swig_types[64] -#define SWIGTYPE_p_IFormFactor swig_types[65] -#define SWIGTYPE_p_IFormFactorDecorator swig_types[66] -#define SWIGTYPE_p_IFormFactorPolyhedron swig_types[67] -#define SWIGTYPE_p_IFormFactorPrism swig_types[68] -#define SWIGTYPE_p_IInterference swig_types[69] -#define SWIGTYPE_p_INode swig_types[70] -#define SWIGTYPE_p_INodeVisitor swig_types[71] -#define SWIGTYPE_p_IParticle swig_types[72] -#define SWIGTYPE_p_IPeakShape swig_types[73] -#define SWIGTYPE_p_IProfileRectangularRipple swig_types[74] -#define SWIGTYPE_p_IProfileRipple swig_types[75] -#define SWIGTYPE_p_IRotation swig_types[76] -#define SWIGTYPE_p_ISampleNode swig_types[77] -#define SWIGTYPE_p_ISawtoothRipple swig_types[78] -#define SWIGTYPE_p_ISelectionRule swig_types[79] -#define SWIGTYPE_p_IdentityRotation swig_types[80] -#define SWIGTYPE_p_Interference1DLattice swig_types[81] -#define SWIGTYPE_p_Interference2DLattice swig_types[82] -#define SWIGTYPE_p_Interference2DParaCrystal swig_types[83] -#define SWIGTYPE_p_Interference2DSuperLattice swig_types[84] -#define SWIGTYPE_p_Interference3DLattice swig_types[85] -#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[86] -#define SWIGTYPE_p_InterferenceFinite3DLattice swig_types[87] -#define SWIGTYPE_p_InterferenceHardDisk swig_types[88] -#define SWIGTYPE_p_InterferenceNone swig_types[89] -#define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[90] -#define SWIGTYPE_p_InterferenceTwin swig_types[91] -#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[92] -#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[93] -#define SWIGTYPE_p_Lattice2D swig_types[94] -#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[95] -#define SWIGTYPE_p_Lattice3D swig_types[96] -#define SWIGTYPE_p_Layer swig_types[97] -#define SWIGTYPE_p_LayerInterface swig_types[98] -#define SWIGTYPE_p_LayerRoughness swig_types[99] -#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[100] -#define SWIGTYPE_p_Material swig_types[101] -#define SWIGTYPE_p_MesoCrystal swig_types[102] -#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[103] -#define SWIGTYPE_p_MisesGaussPeakShape swig_types[104] -#define SWIGTYPE_p_MultiLayer swig_types[105] -#define SWIGTYPE_p_NodeMeta swig_types[106] -#define SWIGTYPE_p_Particle swig_types[107] -#define SWIGTYPE_p_ParticleComposition swig_types[108] -#define SWIGTYPE_p_ParticleCoreShell swig_types[109] -#define SWIGTYPE_p_ParticleLayout swig_types[110] -#define SWIGTYPE_p_RotationEuler swig_types[111] -#define SWIGTYPE_p_RotationX swig_types[112] -#define SWIGTYPE_p_RotationY swig_types[113] -#define SWIGTYPE_p_RotationZ swig_types[114] -#define SWIGTYPE_p_RoughnessModelWrap swig_types[115] -#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[116] -#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[117] -#define SWIGTYPE_p_SimpleSelectionRule swig_types[118] -#define SWIGTYPE_p_SlicedParticle swig_types[119] -#define SWIGTYPE_p_SlicingEffects swig_types[120] -#define SWIGTYPE_p_SquareLattice2D swig_types[121] -#define SWIGTYPE_p_Transform3D swig_types[122] -#define SWIGTYPE_p_Vec3T_double_t swig_types[123] -#define SWIGTYPE_p_Vec3T_int_t swig_types[124] -#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[125] -#define SWIGTYPE_p_WavevectorInfo swig_types[126] -#define SWIGTYPE_p_ZLimits swig_types[127] -#define SWIGTYPE_p_allocator_type swig_types[128] -#define SWIGTYPE_p_char swig_types[129] -#define SWIGTYPE_p_difference_type swig_types[130] -#define SWIGTYPE_p_first_type swig_types[131] -#define SWIGTYPE_p_int swig_types[132] -#define SWIGTYPE_p_key_type swig_types[133] -#define SWIGTYPE_p_long_long swig_types[134] -#define SWIGTYPE_p_mapped_type swig_types[135] -#define SWIGTYPE_p_p_PyObject swig_types[136] -#define SWIGTYPE_p_second_type swig_types[137] -#define SWIGTYPE_p_short swig_types[138] -#define SWIGTYPE_p_signed_char swig_types[139] -#define SWIGTYPE_p_size_type swig_types[140] -#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[141] -#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[142] -#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[143] -#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[144] -#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[145] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[146] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[147] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[148] -#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[149] -#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[150] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[151] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[152] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[153] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[154] -#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[155] -#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[156] -#define SWIGTYPE_p_std__complexT_double_t swig_types[157] -#define SWIGTYPE_p_std__invalid_argument swig_types[158] -#define SWIGTYPE_p_std__lessT_std__string_t swig_types[159] -#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[160] -#define SWIGTYPE_p_std__pairT_double_double_t swig_types[161] -#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[162] -#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[163] -#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[164] -#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[165] -#define SWIGTYPE_p_std__vectorT_ParticleLayout_const_p_std__allocatorT_ParticleLayout_const_p_t_t swig_types[166] -#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[167] -#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[168] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[169] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[170] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[171] -#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[172] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[173] -#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[174] -#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[175] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[176] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[177] -#define SWIGTYPE_p_unsigned_char swig_types[178] -#define SWIGTYPE_p_unsigned_int swig_types[179] -#define SWIGTYPE_p_unsigned_long_long swig_types[180] -#define SWIGTYPE_p_unsigned_short swig_types[181] -#define SWIGTYPE_p_value_type swig_types[182] -static swig_type_info *swig_types[184]; -static swig_module_info swig_module = {swig_types, 183, 0, 0, 0, 0}; +#define SWIGTYPE_p_IBornFF swig_types[57] +#define SWIGTYPE_p_ICloneable swig_types[58] +#define SWIGTYPE_p_ICosineRipple swig_types[59] +#define SWIGTYPE_p_IFTDecayFunction1D swig_types[60] +#define SWIGTYPE_p_IFTDecayFunction2D swig_types[61] +#define SWIGTYPE_p_IFTDistribution1D swig_types[62] +#define SWIGTYPE_p_IFTDistribution2D swig_types[63] +#define SWIGTYPE_p_IFormFactor swig_types[64] +#define SWIGTYPE_p_IFormFactorDecorator swig_types[65] +#define SWIGTYPE_p_IFormFactorPolyhedron swig_types[66] +#define SWIGTYPE_p_IFormFactorPrism swig_types[67] +#define SWIGTYPE_p_IInterference swig_types[68] +#define SWIGTYPE_p_INode swig_types[69] +#define SWIGTYPE_p_INodeVisitor swig_types[70] +#define SWIGTYPE_p_IParticle swig_types[71] +#define SWIGTYPE_p_IPeakShape swig_types[72] +#define SWIGTYPE_p_IProfileRectangularRipple swig_types[73] +#define SWIGTYPE_p_IProfileRipple swig_types[74] +#define SWIGTYPE_p_IRotation swig_types[75] +#define SWIGTYPE_p_ISampleNode swig_types[76] +#define SWIGTYPE_p_ISawtoothRipple swig_types[77] +#define SWIGTYPE_p_ISelectionRule swig_types[78] +#define SWIGTYPE_p_IdentityRotation swig_types[79] +#define SWIGTYPE_p_Interference1DLattice swig_types[80] +#define SWIGTYPE_p_Interference2DLattice swig_types[81] +#define SWIGTYPE_p_Interference2DParaCrystal swig_types[82] +#define SWIGTYPE_p_Interference2DSuperLattice swig_types[83] +#define SWIGTYPE_p_Interference3DLattice swig_types[84] +#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[85] +#define SWIGTYPE_p_InterferenceFinite3DLattice swig_types[86] +#define SWIGTYPE_p_InterferenceHardDisk swig_types[87] +#define SWIGTYPE_p_InterferenceNone swig_types[88] +#define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[89] +#define SWIGTYPE_p_InterferenceTwin swig_types[90] +#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[91] +#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[92] +#define SWIGTYPE_p_Lattice2D swig_types[93] +#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[94] +#define SWIGTYPE_p_Lattice3D swig_types[95] +#define SWIGTYPE_p_Layer swig_types[96] +#define SWIGTYPE_p_LayerInterface swig_types[97] +#define SWIGTYPE_p_LayerRoughness swig_types[98] +#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[99] +#define SWIGTYPE_p_Material swig_types[100] +#define SWIGTYPE_p_MesoCrystal swig_types[101] +#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[102] +#define SWIGTYPE_p_MisesGaussPeakShape swig_types[103] +#define SWIGTYPE_p_MultiLayer swig_types[104] +#define SWIGTYPE_p_NodeMeta swig_types[105] +#define SWIGTYPE_p_Particle swig_types[106] +#define SWIGTYPE_p_ParticleComposition swig_types[107] +#define SWIGTYPE_p_ParticleCoreShell swig_types[108] +#define SWIGTYPE_p_ParticleLayout swig_types[109] +#define SWIGTYPE_p_RotationEuler swig_types[110] +#define SWIGTYPE_p_RotationX swig_types[111] +#define SWIGTYPE_p_RotationY swig_types[112] +#define SWIGTYPE_p_RotationZ swig_types[113] +#define SWIGTYPE_p_RoughnessModelWrap swig_types[114] +#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[115] +#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[116] +#define SWIGTYPE_p_SimpleSelectionRule swig_types[117] +#define SWIGTYPE_p_SlicedParticle swig_types[118] +#define SWIGTYPE_p_SlicingEffects swig_types[119] +#define SWIGTYPE_p_SquareLattice2D swig_types[120] +#define SWIGTYPE_p_Transform3D swig_types[121] +#define SWIGTYPE_p_Vec3T_double_t swig_types[122] +#define SWIGTYPE_p_Vec3T_int_t swig_types[123] +#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[124] +#define SWIGTYPE_p_WavevectorInfo swig_types[125] +#define SWIGTYPE_p_ZLimits swig_types[126] +#define SWIGTYPE_p_allocator_type swig_types[127] +#define SWIGTYPE_p_char swig_types[128] +#define SWIGTYPE_p_difference_type swig_types[129] +#define SWIGTYPE_p_first_type swig_types[130] +#define SWIGTYPE_p_int swig_types[131] +#define SWIGTYPE_p_key_type swig_types[132] +#define SWIGTYPE_p_long_long swig_types[133] +#define SWIGTYPE_p_mapped_type swig_types[134] +#define SWIGTYPE_p_p_PyObject swig_types[135] +#define SWIGTYPE_p_second_type swig_types[136] +#define SWIGTYPE_p_short swig_types[137] +#define SWIGTYPE_p_signed_char swig_types[138] +#define SWIGTYPE_p_size_type swig_types[139] +#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[140] +#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[141] +#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[142] +#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[143] +#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[144] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[145] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[146] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[147] +#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[148] +#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[149] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[150] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[151] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[152] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[153] +#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[154] +#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[155] +#define SWIGTYPE_p_std__complexT_double_t swig_types[156] +#define SWIGTYPE_p_std__invalid_argument swig_types[157] +#define SWIGTYPE_p_std__lessT_std__string_t swig_types[158] +#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[159] +#define SWIGTYPE_p_std__pairT_double_double_t swig_types[160] +#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[161] +#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[162] +#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[163] +#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[164] +#define SWIGTYPE_p_std__vectorT_ParticleLayout_const_p_std__allocatorT_ParticleLayout_const_p_t_t swig_types[165] +#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[166] +#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[167] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[168] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[169] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[170] +#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[171] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[172] +#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[173] +#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[174] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[175] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[176] +#define SWIGTYPE_p_unsigned_char swig_types[177] +#define SWIGTYPE_p_unsigned_int swig_types[178] +#define SWIGTYPE_p_unsigned_long_long swig_types[179] +#define SWIGTYPE_p_unsigned_short swig_types[180] +#define SWIGTYPE_p_value_type swig_types[181] +static swig_type_info *swig_types[183]; +static swig_module_info swig_module = {swig_types, 182, 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) @@ -43830,208 +43829,6 @@ SWIGINTERN PyObject *FormFactorWeighted_swiginit(PyObject *SWIGUNUSEDPARM(self), return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_delete_IAbstractParticle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IAbstractParticle" "', argument " "1"" of type '" "IAbstractParticle *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_IAbstractParticle_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - IAbstractParticle *result = 0 ; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IAbstractParticle_clone" "', argument " "1"" of type '" "IAbstractParticle const *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - result = (IAbstractParticle *)((IAbstractParticle const *)arg1)->clone(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_IAbstractParticle_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - INodeVisitor *arg2 = (INodeVisitor *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "IAbstractParticle_accept", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IAbstractParticle_accept" "', argument " "1"" of type '" "IAbstractParticle const *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IAbstractParticle_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); - } - arg2 = reinterpret_cast< INodeVisitor * >(argp2); - ((IAbstractParticle const *)arg1)->accept(arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_IAbstractParticle_abundance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - double result; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IAbstractParticle_abundance" "', argument " "1"" of type '" "IAbstractParticle const *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - result = (double)((IAbstractParticle const *)arg1)->abundance(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_IAbstractParticle_setAbundance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "IAbstractParticle_setAbundance", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IAbstractParticle_setAbundance" "', argument " "1"" of type '" "IAbstractParticle *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IAbstractParticle_setAbundance" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - (arg1)->setAbundance(arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_IAbstractParticle_translate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - R3 arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "IAbstractParticle_translate", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IAbstractParticle_translate" "', argument " "1"" of type '" "IAbstractParticle *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(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 '" "IAbstractParticle_translate" "', argument " "2"" of type '" "R3""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IAbstractParticle_translate" "', argument " "2"" of type '" "R3""'"); - } else { - R3 * temp = reinterpret_cast< R3 * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - (arg1)->translate(arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_IAbstractParticle_rotate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IAbstractParticle *arg1 = (IAbstractParticle *) 0 ; - IRotation *arg2 = 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "IAbstractParticle_rotate", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IAbstractParticle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IAbstractParticle_rotate" "', argument " "1"" of type '" "IAbstractParticle *""'"); - } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IRotation, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IAbstractParticle_rotate" "', argument " "2"" of type '" "IRotation const &""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IAbstractParticle_rotate" "', argument " "2"" of type '" "IRotation const &""'"); - } - arg2 = reinterpret_cast< IRotation * >(argp2); - (arg1)->rotate((IRotation const &)*arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *IAbstractParticle_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_IAbstractParticle, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - SWIGINTERN PyObject *_wrap_Crystal_className(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Crystal *arg1 = (Crystal *) 0 ; @@ -44572,6 +44369,58 @@ fail: } +SWIGINTERN PyObject *_wrap_IParticle_abundance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + IParticle *arg1 = (IParticle *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + double result; + + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IParticle, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IParticle_abundance" "', argument " "1"" of type '" "IParticle const *""'"); + } + arg1 = reinterpret_cast< IParticle * >(argp1); + result = (double)((IParticle const *)arg1)->abundance(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_IParticle_setAbundance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + IParticle *arg1 = (IParticle *) 0 ; + double arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + double val2 ; + int ecode2 = 0 ; + PyObject *swig_obj[2] ; + + if (!SWIG_Python_UnpackTuple(args, "IParticle_setAbundance", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IParticle, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IParticle_setAbundance" "', argument " "1"" of type '" "IParticle *""'"); + } + arg1 = reinterpret_cast< IParticle * >(argp1); + ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IParticle_setAbundance" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + (arg1)->setAbundance(arg2); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_IParticle_position(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IParticle *arg1 = (IParticle *) 0 ; @@ -45159,35 +45008,6 @@ fail: SWIGINTERN PyObject *_wrap_new_Particle__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { - PyObject *resultobj = 0; - SwigValueWrapper< Material > arg1 ; - void *argp1 ; - int res1 = 0 ; - Particle *result = 0 ; - - if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; - { - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Material, 0 | 0); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Particle" "', argument " "1"" of type '" "Material""'"); - } - if (!argp1) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Particle" "', argument " "1"" of type '" "Material""'"); - } else { - Material * temp = reinterpret_cast< Material * >(argp1); - arg1 = *temp; - if (SWIG_IsNewObj(res1)) delete temp; - } - } - result = (Particle *)new Particle(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Particle, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_Particle__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; SwigValueWrapper< Material > arg1 ; IFormFactor *arg2 = 0 ; @@ -45227,7 +45047,7 @@ fail: } -SWIGINTERN PyObject *_wrap_new_Particle__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { +SWIGINTERN PyObject *_wrap_new_Particle__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; SwigValueWrapper< Material > arg1 ; IFormFactor *arg2 = 0 ; @@ -45286,14 +45106,6 @@ SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) { if (!(argc = SWIG_Python_UnpackTuple(args, "new_Particle", 0, 3, argv))) SWIG_fail; --argc; - if (argc == 1) { - int _v; - int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Material, SWIG_POINTER_NO_NULL | 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_new_Particle__SWIG_0(self, argc, argv); - } - } if (argc == 2) { int _v; int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Material, SWIG_POINTER_NO_NULL | 0); @@ -45302,7 +45114,7 @@ SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IFormFactor, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_Particle__SWIG_1(self, argc, argv); + return _wrap_new_Particle__SWIG_0(self, argc, argv); } } } @@ -45317,7 +45129,7 @@ SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) { int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_IRotation, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_Particle__SWIG_2(self, argc, argv); + return _wrap_new_Particle__SWIG_1(self, argc, argv); } } } @@ -45326,7 +45138,6 @@ SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) { fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_Particle'.\n" " Possible C/C++ prototypes are:\n" - " Particle::Particle(Material)\n" " Particle::Particle(Material,IFormFactor const &)\n" " Particle::Particle(Material,IFormFactor const &,IRotation const &)\n"); return 0; @@ -45442,43 +45253,6 @@ fail: } -SWIGINTERN PyObject *_wrap_Particle_setMaterial(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - Particle *arg1 = (Particle *) 0 ; - SwigValueWrapper< Material > arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "Particle_setMaterial", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Particle, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Particle_setMaterial" "', argument " "1"" of type '" "Particle *""'"); - } - arg1 = reinterpret_cast< Particle * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Material, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Particle_setMaterial" "', argument " "2"" of type '" "Material""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Particle_setMaterial" "', argument " "2"" of type '" "Material""'"); - } else { - Material * temp = reinterpret_cast< Material * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - (arg1)->setMaterial(arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_Particle_material(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Particle *arg1 = (Particle *) 0 ; @@ -56842,7 +56616,7 @@ fail: SWIGINTERN PyObject *_wrap_new_ParticleLayout__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; - IAbstractParticle *arg1 = 0 ; + IParticle *arg1 = 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; @@ -56851,20 +56625,20 @@ SWIGINTERN PyObject *_wrap_new_ParticleLayout__SWIG_1(PyObject *SWIGUNUSEDPARM(s ParticleLayout *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_IAbstractParticle, 0 | 0); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_IParticle, 0 | 0); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IParticle const &""'"); } if (!argp1) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IParticle const &""'"); } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); + arg1 = reinterpret_cast< IParticle * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ParticleLayout" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); - result = (ParticleLayout *)new ParticleLayout((IAbstractParticle const &)*arg1,arg2); + result = (ParticleLayout *)new ParticleLayout((IParticle const &)*arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ParticleLayout, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -56874,21 +56648,21 @@ fail: SWIGINTERN PyObject *_wrap_new_ParticleLayout__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; - IAbstractParticle *arg1 = 0 ; + IParticle *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; ParticleLayout *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_IAbstractParticle, 0 | 0); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_IParticle, 0 | 0); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IParticle const &""'"); } if (!argp1) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ParticleLayout" "', argument " "1"" of type '" "IParticle const &""'"); } - arg1 = reinterpret_cast< IAbstractParticle * >(argp1); - result = (ParticleLayout *)new ParticleLayout((IAbstractParticle const &)*arg1); + arg1 = reinterpret_cast< IParticle * >(argp1); + result = (ParticleLayout *)new ParticleLayout((IParticle const &)*arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ParticleLayout, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -56909,7 +56683,7 @@ SWIGINTERN PyObject *_wrap_new_ParticleLayout(PyObject *self, PyObject *args) { } if (argc == 1) { int _v; - int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_NO_NULL | 0); + int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IParticle, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_ParticleLayout__SWIG_2(self, argc, argv); @@ -56917,7 +56691,7 @@ SWIGINTERN PyObject *_wrap_new_ParticleLayout(PyObject *self, PyObject *args) { } if (argc == 2) { int _v; - int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_NO_NULL | 0); + int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IParticle, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { { @@ -56934,8 +56708,8 @@ fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_ParticleLayout'.\n" " Possible C/C++ prototypes are:\n" " ParticleLayout::ParticleLayout()\n" - " ParticleLayout::ParticleLayout(IAbstractParticle const &,double)\n" - " ParticleLayout::ParticleLayout(IAbstractParticle const &)\n"); + " ParticleLayout::ParticleLayout(IParticle const &,double)\n" + " ParticleLayout::ParticleLayout(IParticle const &)\n"); return 0; } @@ -57017,7 +56791,7 @@ fail: SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; ParticleLayout *arg1 = (ParticleLayout *) 0 ; - IAbstractParticle *arg2 = 0 ; + IParticle *arg2 = 0 ; double arg3 ; R3 arg4 ; IRotation *arg5 = 0 ; @@ -57038,14 +56812,14 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_0(PyObject *SWIGUNUS SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleLayout_addParticle" "', argument " "1"" of type '" "ParticleLayout *""'"); } arg1 = reinterpret_cast< ParticleLayout * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IAbstractParticle, 0 | 0); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IParticle, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } - arg2 = reinterpret_cast< IAbstractParticle * >(argp2); + arg2 = reinterpret_cast< IParticle * >(argp2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ParticleLayout_addParticle" "', argument " "3"" of type '" "double""'"); @@ -57072,7 +56846,7 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_0(PyObject *SWIGUNUS SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "5"" of type '" "IRotation const &""'"); } arg5 = reinterpret_cast< IRotation * >(argp5); - (arg1)->addParticle((IAbstractParticle const &)*arg2,arg3,arg4,(IRotation const &)*arg5); + (arg1)->addParticle((IParticle const &)*arg2,arg3,arg4,(IRotation const &)*arg5); resultobj = SWIG_Py_Void(); return resultobj; fail: @@ -57083,7 +56857,7 @@ fail: SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; ParticleLayout *arg1 = (ParticleLayout *) 0 ; - IAbstractParticle *arg2 = 0 ; + IParticle *arg2 = 0 ; double arg3 ; R3 arg4 ; void *argp1 = 0 ; @@ -57101,14 +56875,14 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_1(PyObject *SWIGUNUS SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleLayout_addParticle" "', argument " "1"" of type '" "ParticleLayout *""'"); } arg1 = reinterpret_cast< ParticleLayout * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IAbstractParticle, 0 | 0); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IParticle, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } - arg2 = reinterpret_cast< IAbstractParticle * >(argp2); + arg2 = reinterpret_cast< IParticle * >(argp2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ParticleLayout_addParticle" "', argument " "3"" of type '" "double""'"); @@ -57127,7 +56901,7 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_1(PyObject *SWIGUNUS if (SWIG_IsNewObj(res4)) delete temp; } } - (arg1)->addParticle((IAbstractParticle const &)*arg2,arg3,arg4); + (arg1)->addParticle((IParticle const &)*arg2,arg3,arg4); resultobj = SWIG_Py_Void(); return resultobj; fail: @@ -57138,7 +56912,7 @@ fail: SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; ParticleLayout *arg1 = (ParticleLayout *) 0 ; - IAbstractParticle *arg2 = 0 ; + IParticle *arg2 = 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; @@ -57153,20 +56927,20 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_2(PyObject *SWIGUNUS SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleLayout_addParticle" "', argument " "1"" of type '" "ParticleLayout *""'"); } arg1 = reinterpret_cast< ParticleLayout * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IAbstractParticle, 0 | 0); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IParticle, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } - arg2 = reinterpret_cast< IAbstractParticle * >(argp2); + arg2 = reinterpret_cast< IParticle * >(argp2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ParticleLayout_addParticle" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); - (arg1)->addParticle((IAbstractParticle const &)*arg2,arg3); + (arg1)->addParticle((IParticle const &)*arg2,arg3); resultobj = SWIG_Py_Void(); return resultobj; fail: @@ -57177,7 +56951,7 @@ fail: SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_3(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; ParticleLayout *arg1 = (ParticleLayout *) 0 ; - IAbstractParticle *arg2 = 0 ; + IParticle *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; @@ -57189,15 +56963,15 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_3(PyObject *SWIGUNUS SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleLayout_addParticle" "', argument " "1"" of type '" "ParticleLayout *""'"); } arg1 = reinterpret_cast< ParticleLayout * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IAbstractParticle, 0 | 0); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IParticle, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IAbstractParticle const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ParticleLayout_addParticle" "', argument " "2"" of type '" "IParticle const &""'"); } - arg2 = reinterpret_cast< IAbstractParticle * >(argp2); - (arg1)->addParticle((IAbstractParticle const &)*arg2); + arg2 = reinterpret_cast< IParticle * >(argp2); + (arg1)->addParticle((IParticle const &)*arg2); resultobj = SWIG_Py_Void(); return resultobj; fail: @@ -57219,7 +56993,7 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle(PyObject *self, PyObject * int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ParticleLayout, 0); _v = SWIG_CheckState(res); if (_v) { - int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_NO_NULL | 0); + int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IParticle, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_ParticleLayout_addParticle__SWIG_3(self, argc, argv); @@ -57232,7 +57006,7 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle(PyObject *self, PyObject * int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ParticleLayout, 0); _v = SWIG_CheckState(res); if (_v) { - int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_NO_NULL | 0); + int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IParticle, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { { @@ -57251,7 +57025,7 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle(PyObject *self, PyObject * int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ParticleLayout, 0); _v = SWIG_CheckState(res); if (_v) { - int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_NO_NULL | 0); + int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IParticle, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { { @@ -57274,7 +57048,7 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle(PyObject *self, PyObject * int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ParticleLayout, 0); _v = SWIG_CheckState(res); if (_v) { - int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IAbstractParticle, SWIG_POINTER_NO_NULL | 0); + int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_IParticle, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); if (_v) { { @@ -57299,10 +57073,10 @@ SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle(PyObject *self, PyObject * fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'ParticleLayout_addParticle'.\n" " Possible C/C++ prototypes are:\n" - " ParticleLayout::addParticle(IAbstractParticle const &,double,R3,IRotation const &)\n" - " ParticleLayout::addParticle(IAbstractParticle const &,double,R3)\n" - " ParticleLayout::addParticle(IAbstractParticle const &,double)\n" - " ParticleLayout::addParticle(IAbstractParticle const &)\n"); + " ParticleLayout::addParticle(IParticle const &,double,R3,IRotation const &)\n" + " ParticleLayout::addParticle(IParticle const &,double,R3)\n" + " ParticleLayout::addParticle(IParticle const &,double)\n" + " ParticleLayout::addParticle(IParticle const &)\n"); return 0; } @@ -72678,56 +72452,6 @@ static PyMethodDef SwigMethods[] = { ""}, { "FormFactorWeighted_swigregister", FormFactorWeighted_swigregister, METH_O, NULL}, { "FormFactorWeighted_swiginit", FormFactorWeighted_swiginit, METH_VARARGS, NULL}, - { "delete_IAbstractParticle", _wrap_delete_IAbstractParticle, METH_O, "\n" - "delete_IAbstractParticle(IAbstractParticle self)\n" - "IAbstractParticle::~IAbstractParticle() override=default\n" - "\n" - ""}, - { "IAbstractParticle_clone", _wrap_IAbstractParticle_clone, METH_O, "\n" - "IAbstractParticle_clone(IAbstractParticle self) -> IAbstractParticle\n" - "IAbstractParticle* IAbstractParticle::clone() const override=0\n" - "\n" - "Returns a clone of this ISampleNode object. \n" - "\n" - ""}, - { "IAbstractParticle_accept", _wrap_IAbstractParticle_accept, METH_VARARGS, "\n" - "IAbstractParticle_accept(IAbstractParticle self, INodeVisitor * visitor)\n" - "void IAbstractParticle::accept(INodeVisitor *visitor) const override\n" - "\n" - ""}, - { "IAbstractParticle_abundance", _wrap_IAbstractParticle_abundance, METH_O, "\n" - "IAbstractParticle_abundance(IAbstractParticle self) -> double\n" - "double IAbstractParticle::abundance() const\n" - "\n" - ""}, - { "IAbstractParticle_setAbundance", _wrap_IAbstractParticle_setAbundance, METH_VARARGS, "\n" - "IAbstractParticle_setAbundance(IAbstractParticle self, double abundance)\n" - "void IAbstractParticle::setAbundance(double abundance)\n" - "\n" - "Sets particle abundance.\n" - "\n" - "Parameters:\n" - "-----------\n" - "\n" - "abundance: \n" - "proportion of this type of particles normalized to the total number of particles in the layout. \n" - "\n" - ""}, - { "IAbstractParticle_translate", _wrap_IAbstractParticle_translate, METH_VARARGS, "\n" - "IAbstractParticle_translate(IAbstractParticle self, R3 translation)\n" - "virtual void IAbstractParticle::translate(R3 translation)=0\n" - "\n" - "Translates the particle with the given vector. \n" - "\n" - ""}, - { "IAbstractParticle_rotate", _wrap_IAbstractParticle_rotate, METH_VARARGS, "\n" - "IAbstractParticle_rotate(IAbstractParticle self, IRotation rotation)\n" - "virtual void IAbstractParticle::rotate(const IRotation &rotation)=0\n" - "\n" - "Applies the given rotation to the particle. \n" - "\n" - ""}, - { "IAbstractParticle_swigregister", IAbstractParticle_swigregister, METH_O, NULL}, { "Crystal_className", _wrap_Crystal_className, METH_O, "\n" "Crystal_className(Crystal self) -> std::string\n" "std::string Crystal::className() const final\n" @@ -72803,6 +72527,24 @@ static PyMethodDef SwigMethods[] = { "Creates a sliced form factor for this particle. \n" "\n" ""}, + { "IParticle_abundance", _wrap_IParticle_abundance, METH_O, "\n" + "IParticle_abundance(IParticle self) -> double\n" + "double IParticle::abundance() const\n" + "\n" + ""}, + { "IParticle_setAbundance", _wrap_IParticle_setAbundance, METH_VARARGS, "\n" + "IParticle_setAbundance(IParticle self, double abundance)\n" + "void IParticle::setAbundance(double abundance)\n" + "\n" + "Sets particle abundance.\n" + "\n" + "Parameters:\n" + "-----------\n" + "\n" + "abundance: \n" + "proportion of this type of particles normalized to the total number of particles in the layout. \n" + "\n" + ""}, { "IParticle_position", _wrap_IParticle_position, METH_O, "\n" "IParticle_position(IParticle self) -> R3\n" "R3 IParticle::position() const\n" @@ -72832,7 +72574,7 @@ static PyMethodDef SwigMethods[] = { ""}, { "IParticle_translate", _wrap_IParticle_translate, METH_VARARGS, "\n" "IParticle_translate(IParticle self, R3 translation)\n" - "void IParticle::translate(R3 translation) override\n" + "void IParticle::translate(R3 translation)\n" "\n" "Translates the particle. \n" "\n" @@ -72853,7 +72595,7 @@ static PyMethodDef SwigMethods[] = { ""}, { "IParticle_rotate", _wrap_IParticle_rotate, METH_VARARGS, "\n" "IParticle_rotate(IParticle self, IRotation rotation)\n" - "void IParticle::rotate(const IRotation &rotation) override\n" + "void IParticle::rotate(const IRotation &rotation)\n" "\n" "Rotates the particle. \n" "\n" @@ -72925,7 +72667,6 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "new_Particle", _wrap_new_Particle, METH_VARARGS, "\n" - "Particle(Material material)\n" "Particle(Material material, IFormFactor form_factor)\n" "new_Particle(Material material, IFormFactor form_factor, IRotation rotation) -> Particle\n" "Particle::Particle(Material material, const IFormFactor &form_factor, const IRotation &rotation)\n" @@ -72955,11 +72696,6 @@ static PyMethodDef SwigMethods[] = { "Creates a sliced form factor for this particle. \n" "\n" ""}, - { "Particle_setMaterial", _wrap_Particle_setMaterial, METH_VARARGS, "\n" - "Particle_setMaterial(Particle self, Material material)\n" - "void Particle::setMaterial(Material material)\n" - "\n" - ""}, { "Particle_material", _wrap_Particle_material, METH_O, "\n" "Particle_material(Particle self) -> Material\n" "const Material* Particle::material() const override\n" @@ -74946,8 +74682,8 @@ static PyMethodDef SwigMethods[] = { ""}, { "new_ParticleLayout", _wrap_new_ParticleLayout, METH_VARARGS, "\n" "ParticleLayout()\n" - "ParticleLayout(IAbstractParticle particle, double abundance=-1.0)\n" - "ParticleLayout::ParticleLayout(const IAbstractParticle &particle, double abundance=-1.0)\n" + "ParticleLayout(IParticle particle, double abundance=-1.0)\n" + "ParticleLayout::ParticleLayout(const IParticle &particle, double abundance=-1.0)\n" "\n" ""}, { "delete_ParticleLayout", _wrap_delete_ParticleLayout, METH_O, "\n" @@ -74968,8 +74704,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "ParticleLayout_addParticle", _wrap_ParticleLayout_addParticle, METH_VARARGS, "\n" - "ParticleLayout_addParticle(ParticleLayout self, IAbstractParticle particle, double abundance=-1.0, R3 position={}, IRotation rotation=IdentityRotation())\n" - "void ParticleLayout::addParticle(const IAbstractParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation())\n" + "ParticleLayout_addParticle(ParticleLayout self, IParticle particle, double abundance=-1.0, R3 position={}, IRotation rotation=IdentityRotation())\n" + "void ParticleLayout::addParticle(const IParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation())\n" "\n" "Adds particle to the layout with abundance, position and the rotation defined.\n" "\n" @@ -74993,7 +74729,7 @@ static PyMethodDef SwigMethods[] = { "ParticleLayout_particles(ParticleLayout self) -> SafePointerVector< IParticle >\n" "SafePointerVector< IParticle > ParticleLayout::particles() const\n" "\n" - "Returns information on all particles (type and abundance) and generates new particles if an IAbstractParticle denotes a collection \n" + "Returns information on all particles (type and abundance) and generates new particles if an IParticle denotes a collection \n" "\n" ""}, { "ParticleLayout_interferenceFunction", _wrap_ParticleLayout_interferenceFunction, METH_O, "\n" @@ -77395,7 +77131,7 @@ static void *_p_FormFactorLongBoxGaussTo_p_ISampleNode(void *x, int *SWIGUNUSEDP return (void *)((ISampleNode *) (IFormFactor *)(IBornFF *) ((FormFactorLongBoxGauss *) x)); } static void *_p_ParticleCoreShellTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) (IAbstractParticle *)(IParticle *) ((ParticleCoreShell *) x)); + return (void *)((ISampleNode *) (IParticle *) ((ParticleCoreShell *) x)); } static void *_p_FormFactorCosineRippleGaussTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IFormFactor *)(IBornFF *)(IProfileRipple *)(ICosineRipple *) ((FormFactorCosineRippleGauss *) x)); @@ -77422,7 +77158,7 @@ static void *_p_CrystalTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) return (void *)((ISampleNode *) ((Crystal *) x)); } static void *_p_MesoCrystalTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) (IAbstractParticle *)(IParticle *) ((MesoCrystal *) x)); + return (void *)((ISampleNode *) (IParticle *) ((MesoCrystal *) x)); } static void *_p_InterferenceNoneTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IInterference *) ((InterferenceNone *) x)); @@ -77448,14 +77184,11 @@ static void *_p_MultiLayerTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemor static void *_p_InterferenceHardDiskTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IInterference *) ((InterferenceHardDisk *) x)); } -static void *_p_IAbstractParticleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) ((IAbstractParticle *) x)); -} static void *_p_IParticleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) (IAbstractParticle *) ((IParticle *) x)); + return (void *)((ISampleNode *) ((IParticle *) x)); } static void *_p_ParticleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) (IAbstractParticle *)(IParticle *) ((Particle *) x)); + return (void *)((ISampleNode *) (IParticle *) ((Particle *) x)); } static void *_p_FormFactorBoxTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IFormFactor *)(IBornFF *)(IFormFactorPrism *) ((FormFactorBox *) x)); @@ -77535,15 +77268,15 @@ static void *_p_LorentzFisherPeakShapeTo_p_ISampleNode(void *x, int *SWIGUNUSEDP static void *_p_GaussFisherPeakShapeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IPeakShape *) ((GaussFisherPeakShape *) x)); } -static void *_p_IsotropicLorentzPeakShapeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) (IPeakShape *) ((IsotropicLorentzPeakShape *) x)); -} static void *_p_IPeakShapeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) ((IPeakShape *) x)); } static void *_p_IsotropicGaussPeakShapeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IPeakShape *) ((IsotropicGaussPeakShape *) x)); } +static void *_p_IsotropicLorentzPeakShapeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ISampleNode *) (IPeakShape *) ((IsotropicLorentzPeakShape *) x)); +} static void *_p_FormFactorWeightedTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IFormFactor *) ((FormFactorWeighted *) x)); } @@ -77572,7 +77305,7 @@ static void *_p_FormFactorSawtoothRippleBoxTo_p_ISampleNode(void *x, int *SWIGUN return (void *)((ISampleNode *) (IFormFactor *)(IBornFF *)(IProfileRipple *)(ISawtoothRipple *) ((FormFactorSawtoothRippleBox *) x)); } static void *_p_ParticleCompositionTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISampleNode *) (IAbstractParticle *)(IParticle *) ((ParticleComposition *) x)); + return (void *)((ISampleNode *) (IParticle *) ((ParticleComposition *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISampleNode *) (IFormFactor *)(IBornFF *)(IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); @@ -77604,21 +77337,6 @@ static void *_p_ParticleTo_p_IParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) static void *_p_ParticleCoreShellTo_p_IParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParticle *) ((ParticleCoreShell *) x)); } -static void *_p_ParticleCompositionTo_p_IAbstractParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IAbstractParticle *) (IParticle *) ((ParticleComposition *) x)); -} -static void *_p_MesoCrystalTo_p_IAbstractParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IAbstractParticle *) (IParticle *) ((MesoCrystal *) x)); -} -static void *_p_IParticleTo_p_IAbstractParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IAbstractParticle *) ((IParticle *) x)); -} -static void *_p_ParticleTo_p_IAbstractParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IAbstractParticle *) (IParticle *) ((Particle *) x)); -} -static void *_p_ParticleCoreShellTo_p_IAbstractParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IAbstractParticle *) (IParticle *) ((ParticleCoreShell *) x)); -} static void *_p_FormFactorPrism3To_p_IFormFactorPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorPrism *) ((FormFactorPrism3 *) x)); } @@ -77746,7 +77464,7 @@ static void *_p_FTDistribution2DConeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM return (void *)((ICloneable *) (IFTDistribution2D *) ((FTDistribution2DCone *) x)); } static void *_p_ParticleCoreShellTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((ParticleCoreShell *) x)); + return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((ParticleCoreShell *) x)); } static void *_p_ISawtoothRippleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IBornFF *)(IProfileRipple *) ((ISawtoothRipple *) x)); @@ -77775,12 +77493,12 @@ static void *_p_FTDistribution2DGateTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM static void *_p_IInterferenceTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *) ((IInterference *) x)); } -static void *_p_FTDistribution1DVoigtTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (IFTDistribution1D *) ((FTDistribution1DVoigt *) x)); -} static void *_p_FTDecayFunction1DVoigtTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IFTDecayFunction1D *) ((FTDecayFunction1DVoigt *) x)); } +static void *_p_FTDistribution1DVoigtTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (IFTDistribution1D *) ((FTDistribution1DVoigt *) x)); +} static void *_p_IdentityRotationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IRotation *) ((IdentityRotation *) x)); } @@ -77817,14 +77535,11 @@ static void *_p_RotationZTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory) static void *_p_InterferenceTwinTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IInterference *) ((InterferenceTwin *) x)); } -static void *_p_IAbstractParticleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISampleNode *) ((IAbstractParticle *) x)); -} static void *_p_IParticleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISampleNode *)(IAbstractParticle *) ((IParticle *) x)); + return (void *)((ICloneable *) (ISampleNode *) ((IParticle *) x)); } static void *_p_ParticleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((Particle *) x)); + return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((Particle *) x)); } static void *_p_Lattice2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((Lattice2D *) x)); @@ -77869,7 +77584,7 @@ static void *_p_FormFactorEllipsoidalCylinderTo_p_ICloneable(void *x, int *SWIGU return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IBornFF *) ((FormFactorEllipsoidalCylinder *) x)); } static void *_p_ParticleCompositionTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((ParticleComposition *) x)); + return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((ParticleComposition *) x)); } static void *_p_FTDistribution1DCosineTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IFTDistribution1D *) ((FTDistribution1DCosine *) x)); @@ -77926,7 +77641,7 @@ static void *_p_FormFactorCrystalTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(ne return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((FormFactorCrystal *) x)); } static void *_p_MesoCrystalTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((MesoCrystal *) x)); + return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((MesoCrystal *) x)); } static void *_p_ICosineRippleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IBornFF *)(IProfileRipple *) ((ICosineRipple *) x)); @@ -78103,7 +77818,7 @@ static void *_p_FTDistribution2DConeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newm return (void *)((INode *) (IFTDistribution2D *) ((FTDistribution2DCone *) x)); } static void *_p_ParticleCoreShellTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((ParticleCoreShell *) x)); + return (void *)((INode *) (ISampleNode *)(IParticle *) ((ParticleCoreShell *) x)); } static void *_p_ISawtoothRippleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IBornFF *)(IProfileRipple *) ((ISawtoothRipple *) x)); @@ -78132,12 +77847,12 @@ static void *_p_FTDistribution2DGateTo_p_INode(void *x, int *SWIGUNUSEDPARM(newm static void *_p_IInterferenceTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *) ((IInterference *) x)); } -static void *_p_FTDistribution1DVoigtTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (IFTDistribution1D *) ((FTDistribution1DVoigt *) x)); -} static void *_p_FTDecayFunction1DVoigtTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IFTDecayFunction1D *) ((FTDecayFunction1DVoigt *) x)); } +static void *_p_FTDistribution1DVoigtTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (IFTDistribution1D *) ((FTDistribution1DVoigt *) x)); +} static void *_p_IdentityRotationTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IRotation *) ((IdentityRotation *) x)); } @@ -78174,14 +77889,11 @@ static void *_p_RotationZTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { static void *_p_InterferenceTwinTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IInterference *) ((InterferenceTwin *) x)); } -static void *_p_IAbstractParticleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISampleNode *) ((IAbstractParticle *) x)); -} static void *_p_IParticleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISampleNode *)(IAbstractParticle *) ((IParticle *) x)); + return (void *)((INode *) (ISampleNode *) ((IParticle *) x)); } static void *_p_ParticleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((Particle *) x)); + return (void *)((INode *) (ISampleNode *)(IParticle *) ((Particle *) x)); } static void *_p_Lattice2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) ((Lattice2D *) x)); @@ -78226,7 +77938,7 @@ static void *_p_FormFactorEllipsoidalCylinderTo_p_INode(void *x, int *SWIGUNUSED return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IBornFF *) ((FormFactorEllipsoidalCylinder *) x)); } static void *_p_ParticleCompositionTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((ParticleComposition *) x)); + return (void *)((INode *) (ISampleNode *)(IParticle *) ((ParticleComposition *) x)); } static void *_p_FTDistribution1DCosineTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IFTDistribution1D *) ((FTDistribution1DCosine *) x)); @@ -78283,7 +77995,7 @@ static void *_p_FormFactorCrystalTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemo return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((FormFactorCrystal *) x)); } static void *_p_MesoCrystalTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISampleNode *)(IAbstractParticle *)(IParticle *) ((MesoCrystal *) x)); + return (void *)((INode *) (ISampleNode *)(IParticle *) ((MesoCrystal *) x)); } static void *_p_ICosineRippleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IBornFF *)(IProfileRipple *) ((ICosineRipple *) x)); @@ -78573,7 +78285,6 @@ static swig_type_info _swigt__p_FormFactorTruncatedSpheroid = {"_p_FormFactorTru static swig_type_info _swigt__p_FormFactorWeighted = {"_p_FormFactorWeighted", "FormFactorWeighted *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_GaussFisherPeakShape = {"_p_GaussFisherPeakShape", "GaussFisherPeakShape *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_HexagonalLattice2D = {"_p_HexagonalLattice2D", "HexagonalLattice2D *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_IAbstractParticle = {"_p_IAbstractParticle", "IAbstractParticle *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IBornFF = {"_p_IBornFF", "IBornFF *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_ICloneable = {"_p_ICloneable", "ICloneable *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_ICosineRipple = {"_p_ICosineRipple", "ICosineRipple *", 0, 0, (void*)0, 0}; @@ -78758,7 +78469,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_FormFactorWeighted, &_swigt__p_GaussFisherPeakShape, &_swigt__p_HexagonalLattice2D, - &_swigt__p_IAbstractParticle, &_swigt__p_IBornFF, &_swigt__p_ICloneable, &_swigt__p_ICosineRipple, @@ -78943,9 +78653,8 @@ static swig_cast_info _swigc__p_FormFactorTruncatedSpheroid[] = { {&_swigt__p_F static swig_cast_info _swigc__p_FormFactorWeighted[] = { {&_swigt__p_FormFactorWeighted, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_GaussFisherPeakShape[] = { {&_swigt__p_GaussFisherPeakShape, 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_IAbstractParticle[] = { {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IAbstractParticle, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IAbstractParticle, 0, 0}, {&_swigt__p_IAbstractParticle, 0, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_IAbstractParticle, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IAbstractParticle, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IAbstractParticle, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IBornFF[] = { {&_swigt__p_IBornFF, 0, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IBornFF, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IBornFF, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IBornFF, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IBornFF, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IBornFF, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IBornFF, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IBornFF, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IBornFF, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_IBornFF, _p_IBornFFTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_IBornFF, _p_IBornFFTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ICosineRipple[] = { {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ICosineRipple, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ICosineRipple, 0, 0}, {&_swigt__p_ICosineRipple, 0, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ICosineRipple, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFTDecayFunction1D[] = { {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_IFTDecayFunction1D, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_IFTDecayFunction1D, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_IFTDecayFunction1D, 0, 0}, {&_swigt__p_IFTDecayFunction1D, 0, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_IFTDecayFunction1D, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFTDecayFunction2D[] = { {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_IFTDecayFunction2D, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_IFTDecayFunction2D, 0, 0}, {&_swigt__p_IFTDecayFunction2D, 0, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_IFTDecayFunction2D, 0, 0},{0, 0, 0, 0}}; @@ -78956,14 +78665,14 @@ static swig_cast_info _swigc__p_IFormFactorDecorator[] = { {&_swigt__p_IFormFac static swig_cast_info _swigc__p_IFormFactorPolyhedron[] = { {&_swigt__p_IFormFactorPolyhedron, 0, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactorPolyhedron, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormFactorPrism[] = { {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactorPrism, 0, 0}, {&_swigt__p_IFormFactorPrism, 0, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactorPrism, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactorPrism, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IInterference[] = { {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_IInterference, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_IInterference, 0, 0}, {&_swigt__p_IInterference, 0, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_IInterference, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_IBornFF, _p_IBornFFTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INode, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_INode, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_IBornFF, _p_IBornFFTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INode, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_INode, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_INodeVisitor[] = { {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParticle[] = { {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParticle, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParticle, 0, 0}, {&_swigt__p_IParticle, 0, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParticle, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IPeakShape[] = { {&_swigt__p_IPeakShape, 0, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_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_IProfileRectangularRipple[] = { {&_swigt__p_IProfileRectangularRipple, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IProfileRipple[] = { {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IProfileRipple, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IProfileRipple, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IProfileRipple, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IProfileRipple, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IProfileRipple, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IProfileRipple, 0, 0}, {&_swigt__p_IProfileRipple, 0, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IProfileRipple, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IProfileRipple, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IProfileRipple, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IRotation[] = { {&_swigt__p_RotationY, _p_RotationYTo_p_IRotation, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IRotation, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IRotation, 0, 0}, {&_swigt__p_IRotation, 0, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IRotation, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IRotation, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ISampleNode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ISampleNode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISampleNode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ISampleNode, 0, 0}, {&_swigt__p_IBornFF, _p_IBornFFTo_p_ISampleNode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ISampleNode, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ISampleNode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ISampleNode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_ISampleNode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ISampleNode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ISampleNode, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ISampleNode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ISampleNode, 0, 0}, {&_swigt__p_ISampleNode, 0, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ISampleNode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISampleNode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ISampleNode, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ISampleNode[] = { {&_swigt__p_IBornFF, _p_IBornFFTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ISampleNode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ISampleNode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ISampleNode, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_ISampleNode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ISampleNode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ISampleNode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ISampleNode, 0, 0}, {&_swigt__p_ISampleNode, 0, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_ISampleNode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISampleNode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ISampleNode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ISampleNode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ISampleNode, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ISampleNode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ISampleNode, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ISawtoothRipple[] = { {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ISawtoothRipple, 0, 0}, {&_swigt__p_ISawtoothRipple, 0, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ISawtoothRipple, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ISawtoothRipple, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ISelectionRule[] = { {&_swigt__p_ISelectionRule, 0, 0, 0}, {&_swigt__p_SimpleSelectionRule, _p_SimpleSelectionRuleTo_p_ISelectionRule, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IdentityRotation[] = { {&_swigt__p_IdentityRotation, 0, 0, 0},{0, 0, 0, 0}}; @@ -79128,7 +78837,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_FormFactorWeighted, _swigc__p_GaussFisherPeakShape, _swigc__p_HexagonalLattice2D, - _swigc__p_IAbstractParticle, _swigc__p_IBornFF, _swigc__p_ICloneable, _swigc__p_ICosineRipple,