diff --git a/Core/Computation/ProcessedLayout.cpp b/Core/Computation/ProcessedLayout.cpp index ee75fb7eeed8862654a0ae2dbdb371c3bbf3bffe..62f448ce5a94833a4f842be8ad66f6077555c758 100644 --- a/Core/Computation/ProcessedLayout.cpp +++ b/Core/Computation/ProcessedLayout.cpp @@ -96,7 +96,7 @@ FormFactorCoherentSum ProcessedLayout::ProcessParticle(const IParticle& particle double z_ref) { double abundance = particle.abundance(); - auto sliced_ffs = SlicedFormFactorList::CreateSlicedFormFactors(particle, slices, z_ref); + auto sliced_ffs = SlicedFormFactorList::createSlicedFormFactors(particle, slices, z_ref); auto region_map = sliced_ffs.regionMap(); ScaleRegionMap(region_map, abundance); mergeRegionMap(region_map); diff --git a/Core/Computation/ProcessedSample.cpp b/Core/Computation/ProcessedSample.cpp index b4b148545e246003b0abd6b626041ab004dde826..b86dc778b0fcb51944604acb73e4b411be8e5aa3 100644 --- a/Core/Computation/ProcessedSample.cpp +++ b/Core/Computation/ProcessedSample.cpp @@ -331,7 +331,7 @@ CreateAverageMaterialSlices(const std::vector<Slice>& slices, if (!CheckRegions(entry.second)) throw std::runtime_error("CreateAverageMaterialSlices: " "total volumetric fraction of particles exceeds 1!"); - auto new_material = CreateAveragedMaterial(slice_mat, entry.second); + auto new_material = createAveragedMaterial(slice_mat, entry.second); result[i_slice].setMaterial(new_material); } return result; diff --git a/Core/Detector/IDetector2D.h b/Core/Detector/IDetector2D.h index 02a5bc529d802e435fdb6f5599bb196d3d79b29c..59a30a61f25db9891b7270a455b638d2dd865336 100644 --- a/Core/Detector/IDetector2D.h +++ b/Core/Detector/IDetector2D.h @@ -70,7 +70,7 @@ public: //! Returns vector of unmasked detector indices. std::vector<size_t> active_indices() const; - //! Create an IPixel for the given OutputData object and index + //! Creates an IPixel for the given OutputData object and index virtual IPixel* createPixel(size_t index) const = 0; //! Returns index of pixel that contains the specular wavevector. diff --git a/Core/Detector/RectangularDetector.h b/Core/Detector/RectangularDetector.h index bf6332cce1ecee4032ce61c57ebb8b6ae9f5096e..3e6150cbff10d23847a14104c86d67fd38fce7fb 100644 --- a/Core/Detector/RectangularDetector.h +++ b/Core/Detector/RectangularDetector.h @@ -79,7 +79,7 @@ public: RectangularPixel* regionOfInterestPixel() const; protected: - //! Create an IPixel for the given OutputData object and index + //! Creates an IPixel for the given OutputData object and index IPixel* createPixel(size_t index) const override; //! Returns the name for the axis with given index diff --git a/Core/Detector/SphericalDetector.h b/Core/Detector/SphericalDetector.h index 5266a69a66f3663c624f83c672ed6b098b807156..86ae5e72fc2e3cab16ccfe8b6b5338207926bcaf 100644 --- a/Core/Detector/SphericalDetector.h +++ b/Core/Detector/SphericalDetector.h @@ -50,7 +50,7 @@ public: AxesUnits defaultAxesUnits() const override; protected: - //! Create an IPixel for the given OutputData object and index + //! Creates an IPixel for the given OutputData object and index IPixel* createPixel(size_t index) const override; //! Returns the name for the axis with given index diff --git a/Core/HardParticle/FormFactorAnisoPyramid.cpp b/Core/HardParticle/FormFactorAnisoPyramid.cpp index 4b034cf3385fd59e815edd7d8b2581b65f79f754..cd84facee9410cbefc9700a4a7585eddf9bc87f9 100644 --- a/Core/HardParticle/FormFactorAnisoPyramid.cpp +++ b/Core/HardParticle/FormFactorAnisoPyramid.cpp @@ -31,13 +31,13 @@ const PolyhedralTopology FormFactorAnisoPyramid::topology = {{{{3, 2, 1, 0}, tru //! @param height: height of pyramid in nm //! @param alpha: dihedral angle in radians between base and facet FormFactorAnisoPyramid::FormFactorAnisoPyramid(const std::vector<double> P) - : FormFactorPolyhedron({"AnisoPyramid", - "class_tooltip", - {{"Length", "nm", "para_tooltip", 0, +INF, 0}, - {"Width", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}, - {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, - P), + : IFormFactorPolyhedron({"AnisoPyramid", + "class_tooltip", + {{"Length", "nm", "para_tooltip", 0, +INF, 0}, + {"Width", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}, + {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, + P), m_length(m_P[0]), m_width(m_P[1]), m_height(m_P[2]), m_alpha(m_P[3]) { onChange(); @@ -56,7 +56,7 @@ IFormFactor* FormFactorAnisoPyramid::sliceFormFactor(ZLimits limits, const IRota double dbase_edge = 2 * effects.dz_bottom * MathFunctions::cot(m_alpha); FormFactorAnisoPyramid slicedff(m_length - dbase_edge, m_width - dbase_edge, m_height - effects.dz_bottom - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorAnisoPyramid::onChange() diff --git a/Core/HardParticle/FormFactorAnisoPyramid.h b/Core/HardParticle/FormFactorAnisoPyramid.h index ae85f38501db93818618374f563968e82a44918e..9b611f65c966188b1a6d51ee002da048034fe22d 100644 --- a/Core/HardParticle/FormFactorAnisoPyramid.h +++ b/Core/HardParticle/FormFactorAnisoPyramid.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORANISOPYRAMID_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORANISOPYRAMID_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A frustum (truncated pyramid) with rectangular base. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorAnisoPyramid : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorAnisoPyramid : public IFormFactorPolyhedron { public: FormFactorAnisoPyramid(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorBox.cpp b/Core/HardParticle/FormFactorBox.cpp index 64bc064a844cf20b8df8cb186d666f8026f0ae6e..53256e6b4a2dfe47c7056703c3c2640a34d3c628 100644 --- a/Core/HardParticle/FormFactorBox.cpp +++ b/Core/HardParticle/FormFactorBox.cpp @@ -20,12 +20,12 @@ //! @param width: width of the base in nanometers //! @param height: height of the box in nanometers FormFactorBox::FormFactorBox(const std::vector<double> P) - : FormFactorPolygonalPrism({"Box", - "class_tooltip", - {{"Length", "nm", "para_tooltip", 0, +INF, 0}, - {"Width", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}}}, - P), + : IFormFactorPrism({"Box", + "class_tooltip", + {{"Length", "nm", "para_tooltip", 0, +INF, 0}, + {"Width", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}}}, + P), m_length(m_P[0]), m_width(m_P[1]), m_height(m_P[2]) { onChange(); @@ -49,7 +49,7 @@ IFormFactor* FormFactorBox::sliceFormFactor(ZLimits limits, const IRotation& rot { auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorBox slicedff(m_length, m_width, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorBox::onChange() diff --git a/Core/HardParticle/FormFactorBox.h b/Core/HardParticle/FormFactorBox.h index 99af81279b9eff83663e768f0f8d9bf7ab63f973..96ad5644723d391356ec2fb9848b970ae66cc5df 100644 --- a/Core/HardParticle/FormFactorBox.h +++ b/Core/HardParticle/FormFactorBox.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORBOX_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORBOX_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPrism.h" //! A rectangular prism (parallelepiped). //! @ingroup hardParticle -class BA_CORE_API_ FormFactorBox : public FormFactorPolygonalPrism +class BA_CORE_API_ FormFactorBox : public IFormFactorPrism { public: FormFactorBox(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorCantellatedCube.cpp b/Core/HardParticle/FormFactorCantellatedCube.cpp index bf88c253ed5f362b7460f9351820c669dc2dff57..6d6e8fcce71e1d967c937fd336142615c3eb0f34 100644 --- a/Core/HardParticle/FormFactorCantellatedCube.cpp +++ b/Core/HardParticle/FormFactorCantellatedCube.cpp @@ -50,11 +50,11 @@ const PolyhedralTopology FormFactorCantellatedCube::topology = { //! @param length: length of the full cube's edge in nanometers //! @param removed_length: removed length from each edge of the cube in nanometers FormFactorCantellatedCube::FormFactorCantellatedCube(const std::vector<double> P) - : FormFactorPolyhedron({"CantellatedCube", - "class_tooltip", - {{"Length", "nm", "para_tooltip", 0, +INF, 0}, - {"RemovedLength", "nm", "para_tooltip", 0, +INF, 0}}}, - P), + : IFormFactorPolyhedron({"CantellatedCube", + "class_tooltip", + {{"Length", "nm", "para_tooltip", 0, +INF, 0}, + {"RemovedLength", "nm", "para_tooltip", 0, +INF, 0}}}, + P), m_length(m_P[0]), m_removed_length(m_P[1]) { onChange(); diff --git a/Core/HardParticle/FormFactorCantellatedCube.h b/Core/HardParticle/FormFactorCantellatedCube.h index 0737e7992d0bf9db79ae16f9c4ee7260542665ee..59282a3bcaadfb259ffb0f88a55560e9fd0463f9 100644 --- a/Core/HardParticle/FormFactorCantellatedCube.h +++ b/Core/HardParticle/FormFactorCantellatedCube.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORCANTELLATEDCUBE_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORCANTELLATEDCUBE_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A cube, with truncation of all edges and corners, as in Croset (2017) Fig 7 //! @ingroup hardParticle -class BA_CORE_API_ FormFactorCantellatedCube : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorCantellatedCube : public IFormFactorPolyhedron { public: FormFactorCantellatedCube(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorCone.cpp b/Core/HardParticle/FormFactorCone.cpp index 77474e7a463a1197233822159870b0d7cb7aa71f..832d542356201a6128638a8b5e616e2e8c7e8311 100644 --- a/Core/HardParticle/FormFactorCone.cpp +++ b/Core/HardParticle/FormFactorCone.cpp @@ -86,7 +86,7 @@ IFormFactor* FormFactorCone::sliceFormFactor(ZLimits limits, const IRotation& ro double dradius = effects.dz_bottom * m_cot_alpha; FormFactorCone slicedff(m_radius - dradius, m_height - effects.dz_bottom - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorCone::onChange() diff --git a/Core/HardParticle/FormFactorCone6.cpp b/Core/HardParticle/FormFactorCone6.cpp index aeb1c022622cf4a4c450314b485e9db39e03caf4..00fe80883cf98bfba9dec708b36532905723250d 100644 --- a/Core/HardParticle/FormFactorCone6.cpp +++ b/Core/HardParticle/FormFactorCone6.cpp @@ -32,12 +32,12 @@ const PolyhedralTopology FormFactorCone6::topology = {{{{5, 4, 3, 2, 1, 0}, true //! @param height: height of a truncated pyramid in nanometers //! @param alpha: dihedral angle in radians between base and facet FormFactorCone6::FormFactorCone6(const std::vector<double> P) - : FormFactorPolyhedron({"Cone6", - "class_tooltip", - {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}, - {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, - P), + : IFormFactorPolyhedron({"Cone6", + "class_tooltip", + {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}, + {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, + P), m_base_edge(m_P[0]), m_height(m_P[1]), m_alpha(m_P[2]) { onChange(); @@ -55,7 +55,7 @@ IFormFactor* FormFactorCone6::sliceFormFactor(ZLimits limits, const IRotation& r double dbase_edge = effects.dz_bottom * MathFunctions::cot(m_alpha); FormFactorCone6 slicedff(m_base_edge - dbase_edge, m_height - effects.dz_bottom - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorCone6::onChange() diff --git a/Core/HardParticle/FormFactorCone6.h b/Core/HardParticle/FormFactorCone6.h index ae9918c5e612ff9ee4bc13d12378003fdeaf47b1..105ec353519db50bad47d454820a10fc90289b6b 100644 --- a/Core/HardParticle/FormFactorCone6.h +++ b/Core/HardParticle/FormFactorCone6.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORCONE6_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORCONE6_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A frustum (truncated pyramid) with regular hexagonal base. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorCone6 : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorCone6 : public IFormFactorPolyhedron { public: FormFactorCone6(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorCuboctahedron.cpp b/Core/HardParticle/FormFactorCuboctahedron.cpp index 59e941aacd8123d43296ffec2741bfc19afa683e..f45ba0ee9f4f4b04cc13bc355f8f1b2b4035c57d 100644 --- a/Core/HardParticle/FormFactorCuboctahedron.cpp +++ b/Core/HardParticle/FormFactorCuboctahedron.cpp @@ -37,13 +37,13 @@ const PolyhedralTopology FormFactorCuboctahedron::topology = {{{{3, 2, 1, 0}, tr //! @param height_ratio: ratio of heights of top to bottom pyramids //! @param alpha: dihedral angle in radians between base and facet FormFactorCuboctahedron::FormFactorCuboctahedron(const std::vector<double> P) - : FormFactorPolyhedron({"Cuboctahedron", - "class_tooltip", - {{"Length", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}, - {"HeightRatio", "nm", "para_tooltip", 0, +INF, 0}, - {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, - P), + : IFormFactorPolyhedron({"Cuboctahedron", + "class_tooltip", + {{"Length", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}, + {"HeightRatio", "nm", "para_tooltip", 0, +INF, 0}, + {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, + P), m_length(m_P[0]), m_height(m_P[1]), m_height_ratio(m_P[2]), m_alpha(m_P[3]) { onChange(); @@ -64,17 +64,17 @@ IFormFactor* FormFactorCuboctahedron::sliceFormFactor(ZLimits limits, const IRot FormFactorPyramid slicedff( m_length - dbase_edge, m_height * (1 + m_height_ratio) - effects.dz_bottom - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } else if (effects.dz_top > m_height_ratio * m_height) { double dbase_edge = 2 * (m_height - effects.dz_bottom) * MathFunctions::cot(m_alpha); FormFactorPyramid slicedff( m_length - dbase_edge, m_height * (1 + m_height_ratio) - effects.dz_bottom - effects.dz_top, M_PI - m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } else { FormFactorCuboctahedron slicedff(m_length, m_height - effects.dz_bottom, m_height_ratio * m_height - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } } diff --git a/Core/HardParticle/FormFactorCuboctahedron.h b/Core/HardParticle/FormFactorCuboctahedron.h index 02da5d79440fa242cfb5b9aec08811fab6893678..2cd3d5df7948f04ff01549900442dcb348b7a1ff 100644 --- a/Core/HardParticle/FormFactorCuboctahedron.h +++ b/Core/HardParticle/FormFactorCuboctahedron.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORCUBOCTAHEDRON_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORCUBOCTAHEDRON_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A truncated bifrustum with quadratic base. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorCuboctahedron : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorCuboctahedron : public IFormFactorPolyhedron { public: FormFactorCuboctahedron(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorCylinder.cpp b/Core/HardParticle/FormFactorCylinder.cpp index b9a55789176a9d9d3ec7fe6cafcb4e7b228224ca..9f07ba3992052c7cf534189048ebc29d476c67b6 100644 --- a/Core/HardParticle/FormFactorCylinder.cpp +++ b/Core/HardParticle/FormFactorCylinder.cpp @@ -55,7 +55,7 @@ IFormFactor* FormFactorCylinder::sliceFormFactor(ZLimits limits, const IRotation { auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorCylinder slicedff(m_radius, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorCylinder::onChange() diff --git a/Core/HardParticle/FormFactorDodecahedron.cpp b/Core/HardParticle/FormFactorDodecahedron.cpp index cdd2e323e00f68fa8df134c2e04a46a43235972f..df8a23115068a888483f488baec5ab1f573c706e 100644 --- a/Core/HardParticle/FormFactorDodecahedron.cpp +++ b/Core/HardParticle/FormFactorDodecahedron.cpp @@ -35,7 +35,7 @@ const PolyhedralTopology FormFactorDodecahedron::topology = {{// bottom: //! Constructor of a dodecahedron. //! @param edge: length of the edge in nanometers FormFactorDodecahedron::FormFactorDodecahedron(const std::vector<double> P) - : FormFactorPolyhedron( + : IFormFactorPolyhedron( {"Dodecahedron", "class_tooltip", {{"Edge", "nm", "para_tooltip", 0, +INF, 0}}}, P), m_edge(m_P[0]) { diff --git a/Core/HardParticle/FormFactorDodecahedron.h b/Core/HardParticle/FormFactorDodecahedron.h index aca1951bbb4de2b10dd00d17cbd856d3a0ae549c..909537b554ceebad782236c2983d2f55d16aeab2 100644 --- a/Core/HardParticle/FormFactorDodecahedron.h +++ b/Core/HardParticle/FormFactorDodecahedron.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORDODECAHEDRON_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORDODECAHEDRON_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A regular dodecahedron. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorDodecahedron : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorDodecahedron : public IFormFactorPolyhedron { public: //! @brief Constructs a regular dodecahedron diff --git a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp index 93bcbd70e54b9422d8c3fb8e7bf414f10400e508..753563bac09894f69f49ade31c7fafae1d847a1c 100644 --- a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp +++ b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp @@ -63,7 +63,7 @@ IFormFactor* FormFactorEllipsoidalCylinder::sliceFormFactor(ZLimits limits, cons auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorEllipsoidalCylinder slicedff(m_radius_x, m_radius_y, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorEllipsoidalCylinder::onChange() diff --git a/Core/HardParticle/FormFactorFullSphere.cpp b/Core/HardParticle/FormFactorFullSphere.cpp index 4f584f548f3b5c8d8993f6c740423b23b5425812..789d758d22c2559f4e9ae77b79b37fa609f3e283 100644 --- a/Core/HardParticle/FormFactorFullSphere.cpp +++ b/Core/HardParticle/FormFactorFullSphere.cpp @@ -71,7 +71,7 @@ IFormFactor* FormFactorFullSphere::sliceFormFactor(ZLimits limits, const IRotati double height = 2.0 * m_radius; auto effects = computeSlicingEffects(limits, new_translation, height); FormFactorTruncatedSphere slicedff(m_radius, height - effects.dz_bottom, effects.dz_top); - return CreateTransformedFormFactor(slicedff, *P_identity, effects.position); + return createTransformedFormFactor(slicedff, *P_identity, effects.position); } void FormFactorFullSphere::onChange() {} diff --git a/Core/HardParticle/FormFactorFullSpheroid.cpp b/Core/HardParticle/FormFactorFullSpheroid.cpp index 6a189c842bd0004d87d4047aa798e99a9aac4c0c..80eba59ee6a5a68787cc14baffddbf7c0263d667 100644 --- a/Core/HardParticle/FormFactorFullSpheroid.cpp +++ b/Core/HardParticle/FormFactorFullSpheroid.cpp @@ -63,7 +63,7 @@ IFormFactor* FormFactorFullSpheroid::sliceFormFactor(ZLimits limits, const IRota auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorTruncatedSpheroid slicedff(m_radius, m_height - effects.dz_bottom, flattening, effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorFullSpheroid::onChange() diff --git a/Core/HardParticle/FormFactorIcosahedron.cpp b/Core/HardParticle/FormFactorIcosahedron.cpp index 1055d6facb41858a6f5a3529d2a854d8a184ebb1..cc7df3aad810d759cca3d45be1f3131669fa9171 100644 --- a/Core/HardParticle/FormFactorIcosahedron.cpp +++ b/Core/HardParticle/FormFactorIcosahedron.cpp @@ -45,7 +45,7 @@ const PolyhedralTopology FormFactorIcosahedron::topology = {{// bottom: //! Constructor of a icosahedron. //! @param edge: length of the edge in nanometers FormFactorIcosahedron::FormFactorIcosahedron(const std::vector<double> P) - : FormFactorPolyhedron( + : IFormFactorPolyhedron( {"Icosahedron", "class_tooltip", {{"Edge", "nm", "para_tooltip", 0, +INF, 0}}}, P), m_edge(m_P[0]) { diff --git a/Core/HardParticle/FormFactorIcosahedron.h b/Core/HardParticle/FormFactorIcosahedron.h index 700ef15004c5bcfaefe29b7ac2a1793cba52c911..95a65db811d0de445857df310d19fbfaa8204c41 100644 --- a/Core/HardParticle/FormFactorIcosahedron.h +++ b/Core/HardParticle/FormFactorIcosahedron.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORICOSAHEDRON_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORICOSAHEDRON_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A regular icosahedron. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorIcosahedron : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorIcosahedron : public IFormFactorPolyhedron { public: FormFactorIcosahedron(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorLongBoxGauss.cpp b/Core/HardParticle/FormFactorLongBoxGauss.cpp index ff9156a6ce58d83ec9b2ded4fad3bcd66f34e590..427d8304318c54fa35b9f5dd6c9b025213e83d6c 100644 --- a/Core/HardParticle/FormFactorLongBoxGauss.cpp +++ b/Core/HardParticle/FormFactorLongBoxGauss.cpp @@ -49,7 +49,7 @@ IFormFactor* FormFactorLongBoxGauss::sliceFormFactor(ZLimits limits, const IRota auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorLongBoxGauss slicedff(m_length, m_width, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorLongBoxGauss::onChange() diff --git a/Core/HardParticle/FormFactorLongBoxLorentz.cpp b/Core/HardParticle/FormFactorLongBoxLorentz.cpp index 637fce0db5198fb2e90ae23c1098e7513a0ee1d8..4691a262064f92c1141028a8c08763249a019bf4 100644 --- a/Core/HardParticle/FormFactorLongBoxLorentz.cpp +++ b/Core/HardParticle/FormFactorLongBoxLorentz.cpp @@ -49,7 +49,7 @@ IFormFactor* FormFactorLongBoxLorentz::sliceFormFactor(ZLimits limits, const IRo auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorLongBoxLorentz slicedff(m_length, m_width, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorLongBoxLorentz::onChange() diff --git a/Core/HardParticle/FormFactorPolyhedron.h b/Core/HardParticle/FormFactorPolyhedron.h deleted file mode 100644 index dd5c3000e0b7140c5ee4c0e0a12adbe2c8d02e2b..0000000000000000000000000000000000000000 --- a/Core/HardParticle/FormFactorPolyhedron.h +++ /dev/null @@ -1,176 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Core/HardParticle/FormFactorPolyhedron.h -//! @brief Defines class FormFactorPolyhedron, FormFactorPrism, and auxiliary classes. -//! -//! @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 BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPOLYHEDRON_H -#define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPOLYHEDRON_H - -#include "Core/Scattering/IFormFactorBorn.h" -#include <memory> - -//! For internal use in PolyhedralFace. -class PolygonalTopology -{ -public: - std::vector<int> vertexIndices; - bool symmetry_S2; -}; - -//! For internal use in FormFactorPolyhedron. -class PolyhedralTopology -{ -public: - std::vector<PolygonalTopology> faces; - bool symmetry_Ci; -}; - -//! One edge of a polygon, for form factor computation. - -class PolyhedralEdge -{ -public: - PolyhedralEdge(const kvector_t _Vlow, const kvector_t _Vhig); - - kvector_t E() const { return m_E; } - kvector_t R() const { return m_R; } - complex_t qE(cvector_t q) const { return m_E.dot(q); } - complex_t qR(cvector_t q) const { return m_R.dot(q); } - - complex_t contrib(int m, cvector_t qpa, complex_t qrperp) const; - -private: - kvector_t m_E; //!< vector pointing from mid of edge to upper vertex - kvector_t m_R; //!< position vector of edge midpoint -}; - -//! A polygon, for form factor computation. - -class PolyhedralFace -{ -public: - static double diameter(const std::vector<kvector_t>& V); -#ifdef POLYHEDRAL_DIAGNOSTIC - static void setLimits(double _qpa, int _n); -#endif - - PolyhedralFace(const std::vector<kvector_t>& _V = std::vector<kvector_t>(), - bool _sym_S2 = false); - - double area() const { return m_area; } - double pyramidalVolume() const { return m_rperp * m_area / 3; } - double radius3d() const { return m_radius_3d; } - //! Returns conj(q)*normal [BasicVector3D::dot is antilinear in 'this' argument] - complex_t normalProjectionConj(cvector_t q) const { return q.dot(m_normal); } - complex_t ff_n(int m, cvector_t q) const; - complex_t ff(cvector_t q, bool sym_Ci) const; - complex_t ff_2D(cvector_t qpa) const; - void assert_Ci(const PolyhedralFace& other) const; - -private: - static double qpa_limit_series; //!< determines when use power series - static int n_limit_series; - - bool sym_S2; //!< if true, then edges obtainable by inversion are not provided - std::vector<PolyhedralEdge> edges; - double m_area; - kvector_t m_normal; //!< normal vector of this polygon's plane - double m_rperp; //!< distance of this polygon's plane from the origin, along 'm_normal' - double m_radius_2d; //!< radius of enclosing cylinder - double m_radius_3d; //!< radius of enclosing sphere - - void decompose_q(cvector_t q, complex_t& qperp, cvector_t& qpa) const; - complex_t ff_n_core(int m, cvector_t qpa, complex_t qperp) const; - complex_t edge_sum_ff(cvector_t q, cvector_t qpa, bool sym_Ci) const; - complex_t expansion(complex_t fac_even, complex_t fac_odd, cvector_t qpa, - double abslevel) const; -}; - -//! A polyhedron, for form factor computation. - -class BA_CORE_API_ FormFactorPolyhedron : public IFormFactorBorn -{ -public: -#ifdef POLYHEDRAL_DIAGNOSTIC - static void setLimits(double _q, int _n); -#endif - - FormFactorPolyhedron() {} - FormFactorPolyhedron(const NodeMeta& meta, const std::vector<double>& PValues); - - double bottomZ(const IRotation& rotation) const override final; - double topZ(const IRotation& rotation) const override final; - - complex_t evaluate_for_q(cvector_t q) const override final; - complex_t evaluate_centered(cvector_t q) const; - - double volume() const override final { return m_volume; } - double radialExtension() const override final { return m_radius; } - void assert_platonic() const; - -protected: - double m_z_bottom; - bool m_sym_Ci; //!< if true, then faces obtainable by inversion are not provided - - void setPolyhedron(const PolyhedralTopology& topology, double z_bottom, - const std::vector<kvector_t>& vertices); - -private: - static double q_limit_series; //!< determines when to use power series - static int n_limit_series; - - std::vector<PolyhedralFace> m_faces; - double m_radius; - double m_volume; - std::vector<kvector_t> m_vertices; //! for topZ, bottomZ computation only -}; - -//! A prism with a polygonal base, for form factor computation. - -class BA_CORE_API_ FormFactorPolygonalPrism : public IFormFactorBorn -{ -public: - FormFactorPolygonalPrism() = default; - FormFactorPolygonalPrism(const NodeMeta& meta, const std::vector<double>& PValues); - - double bottomZ(const IRotation& rotation) const override final; - double topZ(const IRotation& rotation) const override final; - - virtual complex_t evaluate_for_q(cvector_t q) const override; - virtual double volume() const override; - double getHeight() const { return height(); } - virtual double radialExtension() const override { return std::sqrt(m_base->area()); } - -protected: - virtual double height() const = 0; - std::unique_ptr<PolyhedralFace> m_base; - void setPrism(bool symmetry_Ci, const std::vector<kvector_t>& vertices); - std::vector<kvector_t> m_vertices; //! for topZ, bottomZ computation only -}; - -//! A polygonal surface, for testing form factor computations. - -class BA_CORE_API_ FormFactorPolygonalSurface : public IFormFactorBorn -{ -public: - FormFactorPolygonalSurface() = default; - FormFactorPolygonalSurface(const NodeMeta& meta, const std::vector<double>& PValues); - - complex_t evaluate_for_q(cvector_t q) const override final; - double volume() const override { return 0; } - double radialExtension() const override final { return std::sqrt(m_base->area()); } - -protected: - std::unique_ptr<PolyhedralFace> m_base; -}; - -#endif // BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPOLYHEDRON_H diff --git a/Core/HardParticle/FormFactorPrism3.cpp b/Core/HardParticle/FormFactorPrism3.cpp index 874606046146cdbf800053ad6e750cf5e7b1c7b8..13c2aec0ecca0bc265717dd723a57c39ceca8424 100644 --- a/Core/HardParticle/FormFactorPrism3.cpp +++ b/Core/HardParticle/FormFactorPrism3.cpp @@ -19,11 +19,11 @@ //! @param base_edge: length of the base edge in nanometers //! @param height: height in nanometers FormFactorPrism3::FormFactorPrism3(const std::vector<double> P) - : FormFactorPolygonalPrism({"Prism3", - "class_tooltip", - {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}}}, - P), + : IFormFactorPrism({"Prism3", + "class_tooltip", + {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}}}, + P), m_base_edge(m_P[0]), m_height(m_P[1]) { onChange(); @@ -39,7 +39,7 @@ IFormFactor* FormFactorPrism3::sliceFormFactor(ZLimits limits, const IRotation& { auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorPrism3 slicedff(m_base_edge, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorPrism3::onChange() diff --git a/Core/HardParticle/FormFactorPrism3.h b/Core/HardParticle/FormFactorPrism3.h index 15a8841f1870e3e470d5f94939a2f904404c20e5..5d53a51d1ba52112d260d2a3593e2d9408d9ec9a 100644 --- a/Core/HardParticle/FormFactorPrism3.h +++ b/Core/HardParticle/FormFactorPrism3.h @@ -14,12 +14,13 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPRISM3_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPRISM3_H -#include "Core/HardParticle/FormFactorPolyhedron.h" + +#include "Core/HardParticle/IFormFactorPrism.h" //! A prism based on an equilateral triangle. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorPrism3 : public FormFactorPolygonalPrism +class BA_CORE_API_ FormFactorPrism3 : public IFormFactorPrism { public: FormFactorPrism3(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorPrism6.cpp b/Core/HardParticle/FormFactorPrism6.cpp index ff5be1148ee797597fc00ae8b4f55eecfb117a6a..eb5625dfd1c2fadf0a09f349f2c1410bc8303e3a 100644 --- a/Core/HardParticle/FormFactorPrism6.cpp +++ b/Core/HardParticle/FormFactorPrism6.cpp @@ -18,11 +18,11 @@ //! @param base_edge: length of the hexagonal base in nanometers //! @param height: height in nanometers FormFactorPrism6::FormFactorPrism6(const std::vector<double> P) - : FormFactorPolygonalPrism({"Prism6", - "class_tooltip", - {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}}}, - P), + : IFormFactorPrism({"Prism6", + "class_tooltip", + {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}}}, + P), m_base_edge(m_P[0]), m_height(m_P[1]) { onChange(); @@ -38,7 +38,7 @@ IFormFactor* FormFactorPrism6::sliceFormFactor(ZLimits limits, const IRotation& { auto effects = computeSlicingEffects(limits, translation, m_height); FormFactorPrism6 slicedff(m_base_edge, m_height - effects.dz_bottom - effects.dz_top); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorPrism6::onChange() diff --git a/Core/HardParticle/FormFactorPrism6.h b/Core/HardParticle/FormFactorPrism6.h index 414669bf6d954f5d395cd1ef01efd4e2a13cbe8a..3262fef68c7f2e7b2bdde99684afd7e8e68517dd 100644 --- a/Core/HardParticle/FormFactorPrism6.h +++ b/Core/HardParticle/FormFactorPrism6.h @@ -14,12 +14,13 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPRISM6_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPRISM6_H -#include "Core/HardParticle/FormFactorPolyhedron.h" + +#include "Core/HardParticle/IFormFactorPrism.h" //! A prism based on a regular hexagonal. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorPrism6 : public FormFactorPolygonalPrism +class BA_CORE_API_ FormFactorPrism6 : public IFormFactorPrism { public: FormFactorPrism6(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorPyramid.cpp b/Core/HardParticle/FormFactorPyramid.cpp index b678a90dc2dd43d9c9b8ff7d725813c1b3257e72..5c3f107a2e1736e60f486c1fdea14180faa2fdab 100644 --- a/Core/HardParticle/FormFactorPyramid.cpp +++ b/Core/HardParticle/FormFactorPyramid.cpp @@ -32,12 +32,12 @@ const PolyhedralTopology FormFactorPyramid::topology = {{ //! @param height: height of the pyramid in nanometers //! @param alpha: dihedral angle between the base and a side face in radians FormFactorPyramid::FormFactorPyramid(const std::vector<double> P) - : FormFactorPolyhedron({"Pyramid", - "class_tooltip", - {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}, - {"Alpha", "rad", "para_tooltip", 0., M_PI, 0}}}, - P), + : IFormFactorPolyhedron({"Pyramid", + "class_tooltip", + {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}, + {"Alpha", "rad", "para_tooltip", 0., M_PI, 0}}}, + P), m_base_edge(m_P[0]), m_height(m_P[1]), m_alpha(m_P[2]) { onChange(); @@ -55,7 +55,7 @@ IFormFactor* FormFactorPyramid::sliceFormFactor(ZLimits limits, const IRotation& double dbase_edge = 2 * effects.dz_bottom * MathFunctions::cot(m_alpha); FormFactorPyramid slicedff(m_base_edge - dbase_edge, m_height - effects.dz_bottom - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorPyramid::onChange() diff --git a/Core/HardParticle/FormFactorPyramid.h b/Core/HardParticle/FormFactorPyramid.h index d0d86aed0ce9957dc3c33da52d9c3a7433a79d0c..3c8e5ae1fd844f01386653432fb1026f563b0ed1 100644 --- a/Core/HardParticle/FormFactorPyramid.h +++ b/Core/HardParticle/FormFactorPyramid.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPYRAMID_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORPYRAMID_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A frustum with a quadratic base. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorPyramid : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorPyramid : public IFormFactorPolyhedron { public: FormFactorPyramid(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorTetrahedron.cpp b/Core/HardParticle/FormFactorTetrahedron.cpp index 7ab8ac407f7b4f352d650e1a2e87c4f613a56371..86573f2e6ea3cb10be0c634c6ee14d03167a21b4 100644 --- a/Core/HardParticle/FormFactorTetrahedron.cpp +++ b/Core/HardParticle/FormFactorTetrahedron.cpp @@ -29,12 +29,12 @@ const PolyhedralTopology FormFactorTetrahedron::topology = {{{{2, 1, 0}, false}, //! @param height: height of the tetrahedron in nanometers //! @param alpha: dihedral angle in radians between base and facet FormFactorTetrahedron::FormFactorTetrahedron(const std::vector<double> P) - : FormFactorPolyhedron({"Tetrahedron", - "class_tooltip", - {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, - {"Height", "nm", "para_tooltip", 0, +INF, 0}, - {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, - P), + : IFormFactorPolyhedron({"Tetrahedron", + "class_tooltip", + {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}, + {"Height", "nm", "para_tooltip", 0, +INF, 0}, + {"Alpha", "rad", "para_tooltip", 0., M_PI_2, 0}}}, + P), m_base_edge(m_P[0]), m_height(m_P[1]), m_alpha(m_P[2]) { onChange(); @@ -52,7 +52,7 @@ IFormFactor* FormFactorTetrahedron::sliceFormFactor(ZLimits limits, const IRotat double dbase_edge = 2 * sqrt(3) * effects.dz_bottom * MathFunctions::cot(m_alpha); FormFactorTetrahedron slicedff(m_base_edge - dbase_edge, m_height - effects.dz_bottom - effects.dz_top, m_alpha); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorTetrahedron::onChange() diff --git a/Core/HardParticle/FormFactorTetrahedron.h b/Core/HardParticle/FormFactorTetrahedron.h index 22efd2876294c3ac3221f5e8fb51518ff82dc488..8ebf0999c591fd7f9a3853555e7e93fcb8c030ed 100644 --- a/Core/HardParticle/FormFactorTetrahedron.h +++ b/Core/HardParticle/FormFactorTetrahedron.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTETRAHEDRON_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTETRAHEDRON_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A frustum with equilateral trigonal base. //! @ingroup hardParticle -class BA_CORE_API_ FormFactorTetrahedron : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorTetrahedron : public IFormFactorPolyhedron { public: FormFactorTetrahedron(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorTriangle.cpp b/Core/HardParticle/FormFactorTriangle.cpp deleted file mode 100644 index 4d7f40b2f8c6683b1c6e78e65ceff3c25ae432b6..0000000000000000000000000000000000000000 --- a/Core/HardParticle/FormFactorTriangle.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Core/HardParticle/FormFactorTriangle.cpp -//! @brief Implements class FormFactorTriangle. -//! -//! @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 "Core/HardParticle/FormFactorTriangle.h" -#include "Fit/Tools/RealLimits.h" - -FormFactorTriangle::FormFactorTriangle(const std::vector<double> P) - : FormFactorPolygonalSurface( - {"Triangle", "class_tooltip", {{"BaseEdge", "nm", "para_tooltip", 0, +INF, 0}}}, P), - m_base_edge(m_P[0]) -{ - onChange(); -} - -FormFactorTriangle::FormFactorTriangle(double base_edge) - : FormFactorTriangle(std::vector<double>{base_edge}) -{ -} - -void FormFactorTriangle::onChange() -{ - double a = m_base_edge; - double as = a / 2; - double ac = a / sqrt(3) / 2; - double ah = a / sqrt(3); - kvector_t V[3] = {{-ac, as, 0.}, {-ac, -as, 0.}, {ah, 0., 0.}}; - m_base = std::unique_ptr<PolyhedralFace>(new PolyhedralFace({V[0], V[1], V[2]}, false)); -} diff --git a/Core/HardParticle/FormFactorTriangle.h b/Core/HardParticle/FormFactorTriangle.h deleted file mode 100644 index 57aad06b3f7a7ca5c3307522bac85837443eaec1..0000000000000000000000000000000000000000 --- a/Core/HardParticle/FormFactorTriangle.h +++ /dev/null @@ -1,39 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Core/HardParticle/FormFactorTriangle.h -//! @brief Defines class FormFactorTriangle. -//! -//! @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 BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTRIANGLE_H -#define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTRIANGLE_H -#include "Core/HardParticle/FormFactorPolyhedron.h" - -//! A planar equilateral triangle, for testing form factor computations. - -class BA_CORE_API_ FormFactorTriangle : public FormFactorPolygonalSurface -{ -public: - FormFactorTriangle(const std::vector<double> P); - FormFactorTriangle(double base_edge); - - FormFactorTriangle* clone() const override final { return new FormFactorTriangle(m_base_edge); } - void accept(INodeVisitor* visitor) const override final { visitor->visit(this); } - - double getBaseEdge() const { return m_base_edge; } - -protected: - void onChange() override final; - -private: - const double& m_base_edge; -}; - -#endif // BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTRIANGLE_H diff --git a/Core/HardParticle/FormFactorTruncatedCube.cpp b/Core/HardParticle/FormFactorTruncatedCube.cpp index a5a9be8fdbfdb4b32cc89dfc8c3ec5ec122daec2..1888018c6317fad6577a4ea661f1409c7f3be2a5 100644 --- a/Core/HardParticle/FormFactorTruncatedCube.cpp +++ b/Core/HardParticle/FormFactorTruncatedCube.cpp @@ -36,11 +36,11 @@ const PolyhedralTopology FormFactorTruncatedCube::topology = { //! @param length: length of the full cube's edge in nanometers //! @param removed_length: removed length from each edge of the cube in nanometers FormFactorTruncatedCube::FormFactorTruncatedCube(const std::vector<double> P) - : FormFactorPolyhedron({"TruncatedCube", - "class_tooltip", - {{"Length", "nm", "para_tooltip", 0, +INF, 0}, - {"RemovedLength", "nm", "para_tooltip", 0, +INF, 0}}}, - P), + : IFormFactorPolyhedron({"TruncatedCube", + "class_tooltip", + {{"Length", "nm", "para_tooltip", 0, +INF, 0}, + {"RemovedLength", "nm", "para_tooltip", 0, +INF, 0}}}, + P), m_length(m_P[0]), m_removed_length(m_P[1]) { onChange(); diff --git a/Core/HardParticle/FormFactorTruncatedCube.h b/Core/HardParticle/FormFactorTruncatedCube.h index 8dc943c11b135d70ae0f6c1ee7c6a4b0b8515147..0e5433efcb225ee01c22a941a056ed053c7a27e8 100644 --- a/Core/HardParticle/FormFactorTruncatedCube.h +++ b/Core/HardParticle/FormFactorTruncatedCube.h @@ -15,12 +15,12 @@ #ifndef BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTRUNCATEDCUBE_H #define BORNAGAIN_CORE_HARDPARTICLE_FORMFACTORTRUNCATEDCUBE_H -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" //! A cube, with tetrahedral truncation of all corners //! @ingroup hardParticle -class BA_CORE_API_ FormFactorTruncatedCube : public FormFactorPolyhedron +class BA_CORE_API_ FormFactorTruncatedCube : public IFormFactorPolyhedron { public: FormFactorTruncatedCube(const std::vector<double> P); diff --git a/Core/HardParticle/FormFactorTruncatedSphere.cpp b/Core/HardParticle/FormFactorTruncatedSphere.cpp index 0bbec494e3501aa2a4e6a248d0aaa7612f7cdac1..9d6c62c8e448a3a6bdcde883a90ba662787ff50e 100644 --- a/Core/HardParticle/FormFactorTruncatedSphere.cpp +++ b/Core/HardParticle/FormFactorTruncatedSphere.cpp @@ -89,7 +89,7 @@ IFormFactor* FormFactorTruncatedSphere::sliceFormFactor(ZLimits limits, const IR auto effects = computeSlicingEffects(limits, translation, height); FormFactorTruncatedSphere slicedff(m_radius, m_height - effects.dz_bottom, effects.dz_top + m_dh); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorTruncatedSphere::onChange() diff --git a/Core/HardParticle/FormFactorTruncatedSpheroid.cpp b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp index 0b828f39555d812437f2b4930fb99ef28a529fd4..dcaaabfdb59596de08a197fdcb52d54e2a7af264 100644 --- a/Core/HardParticle/FormFactorTruncatedSpheroid.cpp +++ b/Core/HardParticle/FormFactorTruncatedSpheroid.cpp @@ -95,7 +95,7 @@ IFormFactor* FormFactorTruncatedSpheroid::sliceFormFactor(ZLimits limits, const auto effects = computeSlicingEffects(limits, translation, height); FormFactorTruncatedSpheroid slicedff(m_radius, height - effects.dz_bottom, m_height_flattening, effects.dz_top + m_dh); - return CreateTransformedFormFactor(slicedff, rot, effects.position); + return createTransformedFormFactor(slicedff, rot, effects.position); } void FormFactorTruncatedSpheroid::onChange() diff --git a/Core/HardParticle/IFormFactorPolyhedron.cpp b/Core/HardParticle/IFormFactorPolyhedron.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ab9f954fff6e623c22a0863f61f7bda094f49d02 --- /dev/null +++ b/Core/HardParticle/IFormFactorPolyhedron.cpp @@ -0,0 +1,80 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/IFormFactorPolyhedron.cpp +//! @brief Implements class IFormFactorPolyhedron. +//! +//! @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) +// +// ************************************************************************** // + +//! The mathematics implemented here is described in full detail in a paper +//! by Joachim Wuttke, entitled +//! "Form factor (Fourier shape transform) of polygon and polyhedron." + +#include "Core/HardParticle/IFormFactorPolyhedron.h" +#include "Core/HardParticle/Polyhedron.h" + +#ifdef POLYHEDRAL_DIAGNOSTIC // TODO restore +void IFormFactorPolyhedron::setLimits(double _q, int _n) +{ + q_limit_series = _q; + n_limit_series = _n; +} +#endif + +IFormFactorPolyhedron::IFormFactorPolyhedron(const NodeMeta& meta, + const std::vector<double>& PValues) + : IFormFactorBorn(meta, PValues) +{ +} + +IFormFactorPolyhedron::~IFormFactorPolyhedron() = default; + +//! Called by child classes to set faces and other internal variables. + +void IFormFactorPolyhedron::setPolyhedron(const PolyhedralTopology& topology, double z_bottom, + const std::vector<kvector_t>& vertices) +{ + pimpl = std::make_unique<Polyhedron>(topology, z_bottom, vertices); +} + +double IFormFactorPolyhedron::bottomZ(const IRotation& rotation) const +{ + return BottomZ(pimpl->vertices(), rotation); +} + +double IFormFactorPolyhedron::topZ(const IRotation& rotation) const +{ + return TopZ(pimpl->vertices(), rotation); +} + +complex_t IFormFactorPolyhedron::evaluate_for_q(cvector_t q) const +{ + return pimpl->evaluate_for_q(q); +} + +complex_t IFormFactorPolyhedron::evaluate_centered(cvector_t q) const +{ + return pimpl->evaluate_centered(q); +} + +double IFormFactorPolyhedron::volume() const +{ + return pimpl->volume(); +} +double IFormFactorPolyhedron::radialExtension() const +{ + return pimpl->radius(); +} + +//! Assertions for Platonic solid. + +void IFormFactorPolyhedron::assert_platonic() const +{ + pimpl->assert_platonic(); +} diff --git a/Core/HardParticle/IFormFactorPolyhedron.h b/Core/HardParticle/IFormFactorPolyhedron.h new file mode 100644 index 0000000000000000000000000000000000000000..6adb96cf4a10bd1196889a3b25337be2b906145d --- /dev/null +++ b/Core/HardParticle/IFormFactorPolyhedron.h @@ -0,0 +1,55 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/IFormFactorPolyhedron.h +//! @brief Defines class IFormFactorPolyhedron. +//! +//! @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 BORNAGAIN_CORE_HARDPARTICLE_IFORMFACTORPOLYHEDRON_H +#define BORNAGAIN_CORE_HARDPARTICLE_IFORMFACTORPOLYHEDRON_H + +#include "Core/Scattering/IFormFactorBorn.h" +#include "Core/HardParticle/PolyhedralTopology.h" +#include <memory> + +class Polyhedron; + +//! A polyhedron, for form factor computation. + +class BA_CORE_API_ IFormFactorPolyhedron : public IFormFactorBorn +{ +public: +#ifdef POLYHEDRAL_DIAGNOSTIC + static void setLimits(double _q, int _n); +#endif + + IFormFactorPolyhedron() = delete; + IFormFactorPolyhedron(const NodeMeta& meta, const std::vector<double>& PValues); + ~IFormFactorPolyhedron(); + + double bottomZ(const IRotation& rotation) const override final; + double topZ(const IRotation& rotation) const override final; + + complex_t evaluate_for_q(cvector_t q) const override final; + complex_t evaluate_centered(cvector_t q) const; + + double volume() const override final; + double radialExtension() const override final; + void assert_platonic() const; + +protected: + void setPolyhedron(const PolyhedralTopology& topology, double z_bottom, + const std::vector<kvector_t>& vertices); + +private: + std::unique_ptr<Polyhedron> pimpl; +}; + +#endif // BORNAGAIN_CORE_HARDPARTICLE_IFORMFACTORPOLYHEDRON_H diff --git a/Core/HardParticle/IFormFactorPrism.cpp b/Core/HardParticle/IFormFactorPrism.cpp new file mode 100644 index 0000000000000000000000000000000000000000..050a1b10438f0fa7719217981771bc0ac7bb1a4b --- /dev/null +++ b/Core/HardParticle/IFormFactorPrism.cpp @@ -0,0 +1,54 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/IFormFactorPrism.cpp +//! @brief Implements class IFormFactorPrism. +//! +//! @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 "Core/HardParticle/IFormFactorPrism.h" +#include "Core/HardParticle/Prism.h" + +IFormFactorPrism::IFormFactorPrism(const NodeMeta& meta, const std::vector<double>& PValues) + : IFormFactorBorn(meta, PValues) +{ +} + +IFormFactorPrism::~IFormFactorPrism() = default; + +void IFormFactorPrism::setPrism(bool symmetry_Ci, const std::vector<kvector_t>& vertices) +{ + pimpl = std::make_unique<Prism>(symmetry_Ci, height(), vertices); +} + +double IFormFactorPrism::bottomZ(const IRotation& rotation) const +{ + return BottomZ(pimpl->vertices(), rotation); +} + +double IFormFactorPrism::topZ(const IRotation& rotation) const +{ + return TopZ(pimpl->vertices(), rotation); +} + +//! Returns the volume of this prism. +double IFormFactorPrism::volume() const +{ + return height() * pimpl->area(); +} + +double IFormFactorPrism::getHeight() const { return height(); } +double IFormFactorPrism::radialExtension() const { return std::sqrt(pimpl->area()); } + +//! Returns the form factor F(q) of this polyhedron, respecting the offset height/2. + +complex_t IFormFactorPrism::evaluate_for_q(cvector_t q) const +{ + return pimpl->evaluate_for_q(q); +} diff --git a/Core/HardParticle/IFormFactorPrism.h b/Core/HardParticle/IFormFactorPrism.h new file mode 100644 index 0000000000000000000000000000000000000000..3ebc35a9c540376617c45021ad0c3e27cc0d4150 --- /dev/null +++ b/Core/HardParticle/IFormFactorPrism.h @@ -0,0 +1,47 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/IFormFactorPrism.h +//! @brief Defines class IFormFactorPrism. +//! +//! @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 BORNAGAIN_CORE_HARDPARTICLE_IFORMFACTORPRISM_H +#define BORNAGAIN_CORE_HARDPARTICLE_IFORMFACTORPRISM_H + +#include "Core/Scattering/IFormFactorBorn.h" +#include <memory> + +class Prism; + +//! A prism with a polygonal base, for form factor computation. + +class BA_CORE_API_ IFormFactorPrism : public IFormFactorBorn +{ +public: + IFormFactorPrism(const NodeMeta& meta, const std::vector<double>& PValues); + ~IFormFactorPrism(); + + double bottomZ(const IRotation& rotation) const override final; + double topZ(const IRotation& rotation) const override final; + + complex_t evaluate_for_q(cvector_t q) const override; + double volume() const override; + double radialExtension() const override; + double getHeight() const; + +protected: + void setPrism(bool symmetry_Ci, const std::vector<kvector_t>& vertices); + virtual double height() const = 0; // TODO mv parameter m_height back from children to this + +private: + std::unique_ptr<Prism> pimpl; +}; + +#endif // BORNAGAIN_CORE_HARDPARTICLE_IFORMFACTORPRISM_H diff --git a/Core/HardParticle/FormFactorPolyhedron.cpp b/Core/HardParticle/PolyhedralComponents.cpp similarity index 54% rename from Core/HardParticle/FormFactorPolyhedron.cpp rename to Core/HardParticle/PolyhedralComponents.cpp index e222907fbe58c813f36b538c4a7a65521d4e2fbf..d4f14e3b6073ba94f8152fc1a39136fe228d8ff7 100644 --- a/Core/HardParticle/FormFactorPolyhedron.cpp +++ b/Core/HardParticle/PolyhedralComponents.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Core/HardParticle/FormFactorPolyhedron.cpp -//! @brief Implements class FormFactorPolyhedron, FormFactorPrism, and auxiliary classes. +//! @file Core/HardParticle/PolyhedralComponents.cpp +//! @brief Implements classes PolyhedralEdge, PolyhedralFace //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,13 +12,7 @@ // // ************************************************************************** // -//! The mathematics implemented here is described in full detail in a paper -//! by Joachim Wuttke, entitled -//! "Form factor (Fourier shape transform) of polygon and polyhedron." - -#include "Core/HardParticle/FormFactorPolyhedron.h" -#include "Core/Parametrization/RealParameter.h" -#include "Core/Scattering/Rotations.h" +#include "Core/HardParticle/PolyhedralComponents.h" #include "Core/Tools/MathFunctions.h" #include "Core/Tools/Precomputed.h" #include <iomanip> @@ -30,12 +24,6 @@ const double eps = 2e-16; constexpr auto ReciprocalFactorialArray = Precomputed::GenerateReciprocalFactorialArray<171>(); } // namespace -double PolyhedralFace::qpa_limit_series = 3e-2; -int PolyhedralFace::n_limit_series = 20; - -double FormFactorPolyhedron::q_limit_series = 1e-2; -int FormFactorPolyhedron::n_limit_series = 20; - //************************************************************************************************** // PolyhedralEdge implementation //************************************************************************************************** @@ -102,6 +90,9 @@ complex_t PolyhedralEdge::contrib(int M, cvector_t qpa, complex_t qrperp) const // PolyhedralFace implementation //************************************************************************************************** +double PolyhedralFace::qpa_limit_series = 3e-2; +int PolyhedralFace::n_limit_series = 20; + //! Static method, returns diameter of circle that contains all vertices. double PolyhedralFace::diameter(const std::vector<kvector_t>& V) @@ -406,297 +397,3 @@ void PolyhedralFace::assert_Ci(const PolyhedralFace& other) const if ((m_normal + other.m_normal).mag() > 1e-14) throw std::logic_error("Faces do not have opposite orientation, violating symmetry Ci"); } - -//************************************************************************************************** -// FormFactorPolyhedron implementation -//************************************************************************************************** - -#ifdef POLYHEDRAL_DIAGNOSTIC -void FormFactorPolyhedron::setLimits(double _q, int _n) -{ - q_limit_series = _q; - n_limit_series = _n; -} -#endif - -FormFactorPolyhedron::FormFactorPolyhedron(const NodeMeta& meta, const std::vector<double>& PValues) - : IFormFactorBorn(meta, PValues) -{ -} - -//! Called by child classes to set faces and other internal variables. - -void FormFactorPolyhedron::setPolyhedron(const PolyhedralTopology& topology, double z_bottom, - const std::vector<kvector_t>& vertices) -{ - m_vertices.clear(); - for (const kvector_t& vertex : vertices) - m_vertices.push_back(vertex - kvector_t{0, 0, z_bottom}); - - try { - m_z_bottom = z_bottom; - m_sym_Ci = topology.symmetry_Ci; - - double diameter = 0; - for (size_t j = 0; j < vertices.size(); ++j) - for (size_t jj = j + 1; jj < vertices.size(); ++jj) - diameter = std::max(diameter, (vertices[j] - vertices[jj]).mag()); - - m_faces.clear(); - for (const PolygonalTopology& tf : topology.faces) { - std::vector<kvector_t> corners; // of one face - for (int i : tf.vertexIndices) - corners.push_back(vertices[i]); - if (PolyhedralFace::diameter(corners) <= 1e-14 * diameter) - continue; // skip ridiculously small face - m_faces.push_back(PolyhedralFace(corners, tf.symmetry_S2)); - } - if (m_faces.size() < 4) - throw std::logic_error("Less than four non-vanishing faces"); - - m_radius = 0; - m_volume = 0; - for (const PolyhedralFace& Gk : m_faces) { - m_radius = std::max(m_radius, Gk.radius3d()); - m_volume += Gk.pyramidalVolume(); - } - if (m_sym_Ci) { - if (m_faces.size() & 1) - throw std::logic_error("Odd #faces violates symmetry Ci"); - size_t N = m_faces.size() / 2; - // for this tests, m_faces must be in a specific order - for (size_t k = 0; k < N; ++k) - m_faces[k].assert_Ci(m_faces[2 * N - 1 - k]); - // keep only half of the faces - m_faces.erase(m_faces.begin() + N, m_faces.end()); - } - } catch (std::invalid_argument& e) { - throw std::invalid_argument("Invalid parameterization of " + getName() + ": " + e.what()); - } catch (std::logic_error& e) { - throw std::logic_error("Bug in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::exception& e) { - throw std::runtime_error("Unexpected exception in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } -} - -double FormFactorPolyhedron::bottomZ(const IRotation& rotation) const -{ - return BottomZ(m_vertices, rotation); -} - -double FormFactorPolyhedron::topZ(const IRotation& rotation) const -{ - return TopZ(m_vertices, rotation); -} - -//! Returns the form factor F(q) of this polyhedron, respecting the offset z_bottom. - -complex_t FormFactorPolyhedron::evaluate_for_q(cvector_t q) const -{ - try { - return exp_I(-m_z_bottom * q.z()) * evaluate_centered(q); - } catch (std::logic_error& e) { - throw std::logic_error("Bug in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::runtime_error& e) { - throw std::runtime_error("Numeric computation failed in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::exception& e) { - throw std::runtime_error("Unexpected exception in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } -} - -//! Returns the form factor F(q) of this polyhedron, with origin at z=0. - -complex_t FormFactorPolyhedron::evaluate_centered(cvector_t q) const -{ - double q_red = m_radius * q.mag(); -#ifdef POLYHEDRAL_DIAGNOSTIC - diagnosis.maxOrder = 0; - diagnosis.nExpandedFaces = 0; -#endif - if (q_red == 0) { - return m_volume; - } else if (q_red < q_limit_series) { - // summation of power series - complex_t sum = 0; - complex_t n_fac = (m_sym_Ci ? -2 : -1) / q.mag2(); - int count_return_condition = 0; - for (int n = 2; n < n_limit_series; ++n) { - if (m_sym_Ci && n & 1) - continue; -#ifdef POLYHEDRAL_DIAGNOSTIC - diagnosis.maxOrder = std::max(diagnosis.maxOrder, n); -#endif - complex_t term = 0; - for (const PolyhedralFace& Gk : m_faces) { - complex_t tmp = Gk.ff_n(n + 1, q); - term += tmp; -#ifdef POLYHEDRAL_DIAGNOSTIC - if (diagnosis.debmsg >= 2) - std::cout << "Gkffn sum=" << term << " incr=" << tmp << "\n"; -#endif - } - term *= n_fac; -#ifdef POLYHEDRAL_DIAGNOSTIC - if (diagnosis.debmsg >= 1) - std::cout << std::scientific << std::showpos << std::setprecision(16) - << " SUM=" << m_volume + sum << " +TERM=" << term << "\n"; -#endif - sum += term; - if (std::abs(term) <= eps * std::abs(sum) || std::abs(sum) < eps * m_volume) - ++count_return_condition; - else - count_return_condition = 0; - if (count_return_condition > 2) - return m_volume + sum; // regular exit - n_fac = m_sym_Ci ? -n_fac : mul_I(n_fac); - } -#ifdef POLYHEDRAL_DIAGNOSTIC - if (!diagnosis.request_convergence) { - std::cout << "series F(q) not converged\n"; - return m_volume + sum; - } -#endif - throw std::runtime_error("Series F(q) not converged"); - } else { - // direct evaluation of analytic formula (coefficients may involve series) - complex_t sum = 0; - for (const PolyhedralFace& Gk : m_faces) { - complex_t qn = Gk.normalProjectionConj(q); // conj(q)*normal - if (std::abs(qn) < eps * q.mag()) - continue; - complex_t ff = Gk.ff(q, m_sym_Ci); - sum += qn * ff; -#ifdef POLYHEDRAL_DIAGNOSTIC - if (diagnosis.debmsg >= 1) - std::cout << std::scientific << std::showpos << std::setprecision(16) - << " SUM=" << sum << " TERM=" << qn * ff << " qn=" << qn.real() - << " ff=" << ff << "\n"; -#endif - } - return sum / (I * q.mag2()); - } -} - -//! Assertions for Platonic solid. - -void FormFactorPolyhedron::assert_platonic() const -{ - // just one test; one could do much more ... - double pyramidal_volume = 0; - for (const auto& Gk : m_faces) - pyramidal_volume += Gk.pyramidalVolume(); - pyramidal_volume /= m_faces.size(); - for (const auto& Gk : m_faces) - if (std::abs(Gk.pyramidalVolume() - pyramidal_volume) > 160 * eps * pyramidal_volume) { - std::cerr << std::setprecision(16) - << "Bug: pyr_volume(this face)=" << Gk.pyramidalVolume() - << " vs pyr_volume(avge)=" << pyramidal_volume << "\n"; - throw std::runtime_error("Deviant pyramidal volume in " + getName()); - } -} - -//************************************************************************************************** -// FormFactorPolygonalPrism implementation -//************************************************************************************************** - -FormFactorPolygonalPrism::FormFactorPolygonalPrism(const NodeMeta& meta, - const std::vector<double>& PValues) - : IFormFactorBorn(meta, PValues) -{ -} - -void FormFactorPolygonalPrism::setPrism(bool symmetry_Ci, const std::vector<kvector_t>& vertices) -{ - m_vertices.clear(); - for (const kvector_t& vertex : vertices) { - m_vertices.push_back(vertex); - m_vertices.push_back(vertex + kvector_t{0, 0, height()}); - } - - try { - m_base = std::unique_ptr<PolyhedralFace>(new PolyhedralFace(vertices, symmetry_Ci)); - } catch (std::invalid_argument& e) { - throw std::invalid_argument("Invalid parameterization of " + getName() + ": " + e.what()); - } catch (std::logic_error& e) { - throw std::logic_error("Bug in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::exception& e) { - throw std::runtime_error("Unexpected exception in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } -} - -double FormFactorPolygonalPrism::bottomZ(const IRotation& rotation) const -{ - return BottomZ(m_vertices, rotation); -} - -double FormFactorPolygonalPrism::topZ(const IRotation& rotation) const -{ - return TopZ(m_vertices, rotation); -} - -//! Returns the volume of this prism. -double FormFactorPolygonalPrism::volume() const -{ - return height() * m_base->area(); -} - -//! Returns the form factor F(q) of this polyhedron, respecting the offset height/2. - -complex_t FormFactorPolygonalPrism::evaluate_for_q(cvector_t q) const -{ - try { -#ifdef POLYHEDRAL_DIAGNOSTIC - diagnosis.maxOrder = 0; - diagnosis.nExpandedFaces = 0; -#endif - cvector_t qxy(q.x(), q.y(), 0.); - return height() * exp_I(height() / 2 * q.z()) * MathFunctions::sinc(height() / 2 * q.z()) - * m_base->ff_2D(qxy); - } catch (std::logic_error& e) { - throw std::logic_error("Bug in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::runtime_error& e) { - throw std::runtime_error("Numeric computation failed in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::exception& e) { - throw std::runtime_error("Unexpected exception in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } -} - -//************************************************************************************************** -// FormFactorPolygonalSurface implementation -//************************************************************************************************** - -FormFactorPolygonalSurface::FormFactorPolygonalSurface(const NodeMeta& meta, - const std::vector<double>& PValues) - : IFormFactorBorn(meta, PValues) -{ -} - -complex_t FormFactorPolygonalSurface::evaluate_for_q(cvector_t q) const -{ - try { -#ifdef POLYHEDRAL_DIAGNOSTIC - diagnosis.maxOrder = 0; - diagnosis.nExpandedFaces = 0; -#endif - return m_base->ff(q, false); - } catch (std::logic_error& e) { - throw std::logic_error("Bug in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::runtime_error& e) { - throw std::runtime_error("Numeric computation failed in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } catch (std::exception& e) { - throw std::runtime_error("Unexpected exception in " + getName() + ": " + e.what() - + " [please report to the maintainers]"); - } -} diff --git a/Core/HardParticle/PolyhedralComponents.h b/Core/HardParticle/PolyhedralComponents.h new file mode 100644 index 0000000000000000000000000000000000000000..b7bb8b9f5906e807de2c5dcf2116477858cd441b --- /dev/null +++ b/Core/HardParticle/PolyhedralComponents.h @@ -0,0 +1,83 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/PolyhedralComponents.h +//! @brief Defines classes PolyhedralEdge, PolyhedralFace +//! +//! @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 BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALCOMPONENTS_H +#define BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALCOMPONENTS_H + +#include "Core/Basics/Complex.h" +#include "Core/Vector/Vectors3D.h" +#include <vector> + +//! One edge of a polygon, for form factor computation. + +class PolyhedralEdge +{ +public: + PolyhedralEdge(const kvector_t _Vlow, const kvector_t _Vhig); + + kvector_t E() const { return m_E; } + kvector_t R() const { return m_R; } + complex_t qE(cvector_t q) const { return m_E.dot(q); } + complex_t qR(cvector_t q) const { return m_R.dot(q); } + + complex_t contrib(int m, cvector_t qpa, complex_t qrperp) const; + +private: + kvector_t m_E; //!< vector pointing from mid of edge to upper vertex + kvector_t m_R; //!< position vector of edge midpoint +}; + +//! A polygon, for form factor computation. + +class PolyhedralFace +{ +public: + static double diameter(const std::vector<kvector_t>& V); +#ifdef POLYHEDRAL_DIAGNOSTIC + static void setLimits(double _qpa, int _n); +#endif // BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALCOMPONENTS_H + + PolyhedralFace(const std::vector<kvector_t>& _V = std::vector<kvector_t>(), + bool _sym_S2 = false); + + double area() const { return m_area; } + double pyramidalVolume() const { return m_rperp * m_area / 3; } + double radius3d() const { return m_radius_3d; } + //! Returns conj(q)*normal [BasicVector3D::dot is antilinear in 'this' argument] + complex_t normalProjectionConj(cvector_t q) const { return q.dot(m_normal); } + complex_t ff_n(int m, cvector_t q) const; + complex_t ff(cvector_t q, bool sym_Ci) const; + complex_t ff_2D(cvector_t qpa) const; + void assert_Ci(const PolyhedralFace& other) const; + +private: + static double qpa_limit_series; //!< determines when use power series + static int n_limit_series; + + bool sym_S2; //!< if true, then edges obtainable by inversion are not provided + std::vector<PolyhedralEdge> edges; + double m_area; + kvector_t m_normal; //!< normal vector of this polygon's plane + double m_rperp; //!< distance of this polygon's plane from the origin, along 'm_normal' + double m_radius_2d; //!< radius of enclosing cylinder + double m_radius_3d; //!< radius of enclosing sphere + + void decompose_q(cvector_t q, complex_t& qperp, cvector_t& qpa) const; + complex_t ff_n_core(int m, cvector_t qpa, complex_t qperp) const; + complex_t edge_sum_ff(cvector_t q, cvector_t qpa, bool sym_Ci) const; + complex_t expansion(complex_t fac_even, complex_t fac_odd, cvector_t qpa, + double abslevel) const; +}; + +#endif // BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALCOMPONENTS_H diff --git a/Core/HardParticle/PolyhedralTopology.h b/Core/HardParticle/PolyhedralTopology.h new file mode 100644 index 0000000000000000000000000000000000000000..6ba110882cfacf070b998a7c6df31207e9f7bbb0 --- /dev/null +++ b/Core/HardParticle/PolyhedralTopology.h @@ -0,0 +1,36 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/PolyhedralTopology.h +//! @brief Defines classes PolygonalTopology, PolyhedralTopology +//! +//! @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 BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALTOPOLOGY_H +#define BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALTOPOLOGY_H + +#include <vector> + +//! For internal use in PolyhedralFace. +class PolygonalTopology +{ +public: + std::vector<int> vertexIndices; + bool symmetry_S2; +}; + +//! For internal use in IFormFactorPolyhedron. +class PolyhedralTopology +{ +public: + std::vector<PolygonalTopology> faces; + bool symmetry_Ci; +}; + +#endif // BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRALTOPOLOGY_H diff --git a/Core/HardParticle/Polyhedron.cpp b/Core/HardParticle/Polyhedron.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d873fd729fcd991a8e76bd007015ebc845056645 --- /dev/null +++ b/Core/HardParticle/Polyhedron.cpp @@ -0,0 +1,210 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/Polyhedron.cpp +//! @brief Implements class Polyhedron. +//! +//! @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) +// +// ************************************************************************** // + +//! The mathematics implemented here is described in full detail in a paper +//! by Joachim Wuttke, entitled +//! "Form factor (Fourier shape transform) of polygon and polyhedron." + +#include "Core/HardParticle/Polyhedron.h" +#include "Core/Tools/MathFunctions.h" +#include <iomanip> +#include <iostream> +#include <stdexcept> // need overlooked by g++ 5.4 + +namespace +{ +const double eps = 2e-16; +const double q_limit_series = 1e-2; +const int n_limit_series = 20; +} // namespace + +Polyhedron::Polyhedron(const PolyhedralTopology& topology, double z_bottom, + const std::vector<kvector_t>& vertices) +{ + + m_vertices.clear(); + for (const kvector_t& vertex : vertices) + m_vertices.push_back(vertex - kvector_t{0, 0, z_bottom}); + + try { + m_z_bottom = z_bottom; + m_sym_Ci = topology.symmetry_Ci; + + double diameter = 0; + for (size_t j = 0; j < vertices.size(); ++j) + for (size_t jj = j + 1; jj < vertices.size(); ++jj) + diameter = std::max(diameter, (vertices[j] - vertices[jj]).mag()); + + m_faces.clear(); + for (const PolygonalTopology& tf : topology.faces) { + std::vector<kvector_t> corners; // of one face + for (int i : tf.vertexIndices) + corners.push_back(vertices[i]); + if (PolyhedralFace::diameter(corners) <= 1e-14 * diameter) + continue; // skip ridiculously small face + m_faces.push_back(PolyhedralFace(corners, tf.symmetry_S2)); + } + if (m_faces.size() < 4) + throw std::logic_error("Less than four non-vanishing faces"); + + m_radius = 0; + m_volume = 0; + for (const PolyhedralFace& Gk : m_faces) { + m_radius = std::max(m_radius, Gk.radius3d()); + m_volume += Gk.pyramidalVolume(); + } + if (m_sym_Ci) { + if (m_faces.size() & 1) + throw std::logic_error("Odd #faces violates symmetry Ci"); + size_t N = m_faces.size() / 2; + // for this tests, m_faces must be in a specific order + for (size_t k = 0; k < N; ++k) + m_faces[k].assert_Ci(m_faces[2 * N - 1 - k]); + // keep only half of the faces + m_faces.erase(m_faces.begin() + N, m_faces.end()); + } + } catch (std::invalid_argument& e) { + throw std::invalid_argument(std::string("Invalid parameterization of Polyhedron: ") + + e.what()); + } catch (std::logic_error& e) { + throw std::logic_error(std::string("Bug in Polyhedron: ") + e.what() + + " [please report to the maintainers]"); + } catch (std::exception& e) { + throw std::runtime_error(std::string("Unexpected exception in Polyhedron: ") + e.what() + + " [please report to the maintainers]"); + } +} + +Polyhedron::~Polyhedron() = default; + +void Polyhedron::assert_platonic() const +{ + // just one test; one could do much more ... + double pyramidal_volume = 0; + for (const auto& Gk : m_faces) + pyramidal_volume += Gk.pyramidalVolume(); + pyramidal_volume /= m_faces.size(); + for (const auto& Gk : m_faces) + if (std::abs(Gk.pyramidalVolume() - pyramidal_volume) > 160 * eps * pyramidal_volume) { + std::cerr << std::setprecision(16) + << "Bug: pyr_volume(this face)=" << Gk.pyramidalVolume() + << " vs pyr_volume(avge)=" << pyramidal_volume << "\n"; + throw std::runtime_error("Deviant pyramidal volume in Platonic Polyhedron"); + } +} + +double Polyhedron::volume() const +{ + return m_volume; +} +double Polyhedron::radius() const +{ + return m_radius; +} + +const std::vector<kvector_t>& Polyhedron::vertices() +{ + return m_vertices; +} + +//! Returns the form factor F(q) of this polyhedron, respecting the offset z_bottom. + +complex_t Polyhedron::evaluate_for_q(const cvector_t& q) const +{ + try { + return exp_I(-m_z_bottom * q.z()) * evaluate_centered(q); + } catch (std::logic_error& e) { + throw std::logic_error(std::string("Bug in Polyhedron: ") + e.what() + + " [please report to the maintainers]"); + } catch (std::runtime_error& e) { + throw std::runtime_error(std::string("Numeric computation failed in Polyhedron: ") + + e.what() + " [please report to the maintainers]"); + } catch (std::exception& e) { + throw std::runtime_error(std::string("Unexpected exception in Polyhedron: ") + e.what() + + " [please report to the maintainers]"); + } +} + +//! Returns the form factor F(q) of this polyhedron, with origin at z=0. + +complex_t Polyhedron::evaluate_centered(const cvector_t& q) const +{ + double q_red = m_radius * q.mag(); +#ifdef POLYHEDRAL_DIAGNOSTIC + diagnosis.maxOrder = 0; + diagnosis.nExpandedFaces = 0; +#endif + if (q_red == 0) { + return m_volume; + } else if (q_red < q_limit_series) { + // summation of power series + complex_t sum = 0; + complex_t n_fac = (m_sym_Ci ? -2 : -1) / q.mag2(); + int count_return_condition = 0; + for (int n = 2; n < n_limit_series; ++n) { + if (m_sym_Ci && n & 1) + continue; +#ifdef POLYHEDRAL_DIAGNOSTIC + diagnosis.maxOrder = std::max(diagnosis.maxOrder, n); +#endif + complex_t term = 0; + for (const PolyhedralFace& Gk : m_faces) { + complex_t tmp = Gk.ff_n(n + 1, q); + term += tmp; +#ifdef POLYHEDRAL_DIAGNOSTIC + if (diagnosis.debmsg >= 2) + std::cout << "Gkffn sum=" << term << " incr=" << tmp << "\n"; +#endif + } + term *= n_fac; +#ifdef POLYHEDRAL_DIAGNOSTIC + if (diagnosis.debmsg >= 1) + std::cout << std::scientific << std::showpos << std::setprecision(16) + << " SUM=" << m_volume + sum << " +TERM=" << term << "\n"; +#endif + sum += term; + if (std::abs(term) <= eps * std::abs(sum) || std::abs(sum) < eps * m_volume) + ++count_return_condition; + else + count_return_condition = 0; + if (count_return_condition > 2) + return m_volume + sum; // regular exit + n_fac = m_sym_Ci ? -n_fac : mul_I(n_fac); + } +#ifdef POLYHEDRAL_DIAGNOSTIC + if (!diagnosis.request_convergence) { + std::cout << "series F(q) not converged\n"; + return m_volume + sum; + } +#endif + throw std::runtime_error("Series F(q) not converged"); + } else { + // direct evaluation of analytic formula (coefficients may involve series) + complex_t sum = 0; + for (const PolyhedralFace& Gk : m_faces) { + complex_t qn = Gk.normalProjectionConj(q); // conj(q)*normal + if (std::abs(qn) < eps * q.mag()) + continue; + complex_t ff = Gk.ff(q, m_sym_Ci); + sum += qn * ff; +#ifdef POLYHEDRAL_DIAGNOSTIC + if (diagnosis.debmsg >= 1) + std::cout << std::scientific << std::showpos << std::setprecision(16) + << " SUM=" << sum << " TERM=" << qn * ff << " qn=" << qn.real() + << " ff=" << ff << "\n"; +#endif + } + return sum / (I * q.mag2()); + } +} diff --git a/Core/HardParticle/Polyhedron.h b/Core/HardParticle/Polyhedron.h new file mode 100644 index 0000000000000000000000000000000000000000..39c333b4ab0378073bb747d28ac94df9a41688d2 --- /dev/null +++ b/Core/HardParticle/Polyhedron.h @@ -0,0 +1,49 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/Polyhedron.h +//! @brief Defines class Polyhedron. +//! +//! @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 BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRON_H +#define BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRON_H + +#include "Core/HardParticle/PolyhedralComponents.h" +#include "Core/HardParticle/PolyhedralTopology.h" +#include <memory> + +//! A polyhedron, implementation class for use in IFormFactorPolyhedron + +class BA_CORE_API_ Polyhedron +{ +public: + Polyhedron() = delete; + Polyhedron(const Polyhedron&) = delete; + Polyhedron(const PolyhedralTopology& topology, double z_bottom, + const std::vector<kvector_t>& vertices); + ~Polyhedron(); + void assert_platonic() const; + double volume() const; + double radius() const; + const std::vector<kvector_t>& vertices(); //! needed for topZ, bottomZ computation + complex_t evaluate_for_q(const cvector_t& q) const; + complex_t evaluate_centered(const cvector_t& q) const; + +private: + double m_z_bottom; + bool m_sym_Ci; //!< if true, then faces obtainable by inversion are not provided + + std::vector<PolyhedralFace> m_faces; + double m_radius; + double m_volume; + std::vector<kvector_t> m_vertices; //! for topZ, bottomZ computation only +}; + +#endif // BORNAGAIN_CORE_HARDPARTICLE_POLYHEDRON_H diff --git a/Core/HardParticle/Prism.cpp b/Core/HardParticle/Prism.cpp new file mode 100644 index 0000000000000000000000000000000000000000..eb72f5aa3f98209c37029236b41991412e13ef4d --- /dev/null +++ b/Core/HardParticle/Prism.cpp @@ -0,0 +1,79 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/Prism.cpp +//! @brief Implements class Prism. +//! +//! @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) +// +// ************************************************************************** // + +//! The mathematics implemented here is described in full detail in a paper +//! by Joachim Wuttke, entitled +//! "Form factor (Fourier shape transform) of polygon and polyhedron." + +#include "Core/HardParticle/Prism.h" +#include "Core/Tools/MathFunctions.h" +#include <stdexcept> // need overlooked by g++ 5.4 + +namespace +{ +const double eps = 2e-16; +} // namespace + +Prism::Prism(bool symmetry_Ci, double height, const std::vector<kvector_t>& vertices) +{ + m_height = height; + m_vertices.clear(); + for (const kvector_t& vertex : vertices) { + m_vertices.push_back(vertex); + m_vertices.push_back(vertex + kvector_t{0, 0, m_height}); + } + + try { + m_base = std::unique_ptr<PolyhedralFace>(new PolyhedralFace(vertices, symmetry_Ci)); + } catch (std::invalid_argument& e) { + throw std::invalid_argument(std::string("Invalid parameterization of Prism: ") + + e.what()); + } catch (std::logic_error& e) { + throw std::logic_error(std::string("Bug in Prism: ") + e.what() + + " [please report to the maintainers]"); + } catch (std::exception& e) { + throw std::runtime_error(std::string("Unexpected exception in Prism: ") + e.what() + + " [please report to the maintainers]"); + } +} + +double Prism::area() const { return m_base->area(); } + +const std::vector<kvector_t>& Prism::vertices() +{ + return m_vertices; +} + + +complex_t Prism::evaluate_for_q(const cvector_t& q) const +{ + try { +#ifdef POLYHEDRAL_DIAGNOSTIC + diagnosis.maxOrder = 0; + diagnosis.nExpandedFaces = 0; +#endif + cvector_t qxy(q.x(), q.y(), 0.); + return m_height * exp_I(m_height / 2 * q.z()) * MathFunctions::sinc(m_height / 2 * q.z()) + * m_base->ff_2D(qxy); + } catch (std::logic_error& e) { + throw std::logic_error(std::string("Bug in Prism: ") + e.what() + + " [please report to the maintainers]"); + } catch (std::runtime_error& e) { + throw std::runtime_error(std::string("Numeric computation failed in Prism: ") + e.what() + + " [please report to the maintainers]"); + } catch (std::exception& e) { + throw std::runtime_error(std::string("Unexpected exception in Prism: ") + e.what() + + " [please report to the maintainers]"); + } +} diff --git a/Core/HardParticle/Prism.h b/Core/HardParticle/Prism.h new file mode 100644 index 0000000000000000000000000000000000000000..607888a67d660e2dd9bf4b3db9ff50fb18b522c6 --- /dev/null +++ b/Core/HardParticle/Prism.h @@ -0,0 +1,38 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/HardParticle/Prism.h +//! @brief Defines class Prism. +//! +//! @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 BORNAGAIN_CORE_HARDPARTICLE_PRISM_H +#define BORNAGAIN_CORE_HARDPARTICLE_PRISM_H + +#include "Core/HardParticle/PolyhedralComponents.h" +#include "Core/HardParticle/PolyhedralTopology.h" +#include <memory> + +class BA_CORE_API_ Prism +{ +public: + Prism() = delete; + Prism(const Prism&) = delete; + Prism(bool symmetry_Ci, double height, const std::vector<kvector_t>& vertices); + double area() const; + const std::vector<kvector_t>& vertices(); //! needed for topZ, bottomZ computation + complex_t evaluate_for_q(const cvector_t& q) const; + // complex_t evaluate_centered(const cvector_t& q) const; +private: + std::unique_ptr<PolyhedralFace> m_base; + double m_height; + std::vector<kvector_t> m_vertices; //! for topZ, bottomZ computation only +}; + +#endif // BORNAGAIN_CORE_HARDPARTICLE_PRISM_H diff --git a/Core/InputOutput/DataFormatUtils.cpp b/Core/InputOutput/DataFormatUtils.cpp index 3efdf10ff570de486ba26df06f7aa5400b56f6be..dea1f1f7dffd98c963f992b592cf053d8a288303 100644 --- a/Core/InputOutput/DataFormatUtils.cpp +++ b/Core/InputOutput/DataFormatUtils.cpp @@ -164,7 +164,7 @@ std::istringstream getAxisStringRepresentation(std::istream& input_stream) return std::istringstream(line); } -//! Create one of FixedBinAxis from string representation +//! Creates one of FixedBinAxis from string representation //! FixedBinAxis("axis0", 10, -1, 1) //! ConstKBinAxis("axis0", 10, -1, 1) //! CustomBinAxis("axis0", 10, -1, 1) @@ -186,7 +186,7 @@ template <class Axis> std::unique_ptr<IAxis> createFixedBinLikeAxis(std::istring return std::make_unique<Axis>(name, nbins, boundaries[0], boundaries[1]); } -//! Create VariableBinAxis from string representation +//! Creates VariableBinAxis from string representation //! VariableBinAxis("axis0", 4, [-1, -0.5, 0.5, 1, 2]) std::unique_ptr<IAxis> createVariableBinAxis(std::istringstream iss) { @@ -205,7 +205,7 @@ std::unique_ptr<IAxis> createVariableBinAxis(std::istringstream iss) return std::make_unique<VariableBinAxis>(name, nbins, boundaries); } -//! Create createPointwiseAxis from string representation +//! Creates createPointwiseAxis from string representation //! PointwiseAxis("axis0", [-0.5, 0.5, 1, 2]) std::unique_ptr<IAxis> createPointwiseAxis(std::istringstream iss) { diff --git a/Core/Intensity/Histogram1D.h b/Core/Intensity/Histogram1D.h index fd8780e94532ddc6673766fa119f721dcf2ffb3a..2b1a65da7825f2123430eacffa956c6c4e800668 100644 --- a/Core/Intensity/Histogram1D.h +++ b/Core/Intensity/Histogram1D.h @@ -65,7 +65,7 @@ public: PyObject* getBinErrorsNumpy() const; #endif - //! Create new histogram by applying crop on axis. + //! Creates new histogram by applying crop on axis. Histogram1D* crop(double xmin, double xmax); }; diff --git a/Core/Intensity/Histogram2D.h b/Core/Intensity/Histogram2D.h index 17eb5290680152f44eb4fe5496c3dc62af991c8d..c29369c6bb0c16a3860f6bab5a0354cd8b6a6ddd 100644 --- a/Core/Intensity/Histogram2D.h +++ b/Core/Intensity/Histogram2D.h @@ -91,7 +91,7 @@ public: //! @param xup upper edje on x-axis Histogram1D* projectionY(double xlow, double xup); - //! Create new histogram by applying rectangular clip. + //! Creates new histogram by applying rectangular clip. Histogram2D* crop(double xmin, double ymin, double xmax, double ymax); //! Sets the values in histograms channels from numpy array, diff --git a/Core/Lattice/Lattice.h b/Core/Lattice/Lattice.h index 9c4ee65275dc5aef8c8bd3750da0973093d8fb66..a84d178efb5590e9dd075110752b6363030d23c4 100644 --- a/Core/Lattice/Lattice.h +++ b/Core/Lattice/Lattice.h @@ -35,7 +35,7 @@ public: void accept(INodeVisitor* visitor) const override { visitor->visit(this); } - //! Create transformed lattice + //! Creates transformed lattice Lattice createTransformedLattice(const Transform3D& transform) const; //! Initializes cached data diff --git a/Core/Lattice/LatticeUtils.cpp b/Core/Lattice/LatticeUtils.cpp index 6b8670513db75c03a2e7f1e19d9799fed3112ef4..6915bf20a9c64c00e9140f612467877d147e1399 100644 --- a/Core/Lattice/LatticeUtils.cpp +++ b/Core/Lattice/LatticeUtils.cpp @@ -15,7 +15,7 @@ #include "Core/Lattice/LatticeUtils.h" #include "Core/Lattice/ILatticeOrientation.h" -Lattice LatticeUtils::CreateFCCLattice(double lattice_constant, +Lattice LatticeUtils::createFCCLattice(double lattice_constant, const ILatticeOrientation& orientation) { Lattice prim_cubic = Lattice::createCubicLattice(1.0); @@ -26,7 +26,7 @@ Lattice LatticeUtils::CreateFCCLattice(double lattice_constant, return fcc.createTransformedLattice(rotation); } -Lattice LatticeUtils::CreateHCPLattice(double a, double c, const ILatticeOrientation& orientation) +Lattice LatticeUtils::createHCPLattice(double a, double c, const ILatticeOrientation& orientation) { Lattice prim_hexagonal = Lattice::createHexagonalLattice(1.0, c / a); std::unique_ptr<ILatticeOrientation> P_orientation(orientation.clone()); @@ -36,7 +36,7 @@ Lattice LatticeUtils::CreateHCPLattice(double a, double c, const ILatticeOrienta return hcp.createTransformedLattice(rotation); } -Lattice LatticeUtils::CreateBCTLattice(double a, double c, const ILatticeOrientation& orientation) +Lattice LatticeUtils::createBCTLattice(double a, double c, const ILatticeOrientation& orientation) { Lattice prim_tetragonal = Lattice::createTetragonalLattice(1.0, c / a); std::unique_ptr<ILatticeOrientation> P_orientation(orientation.clone()); diff --git a/Core/Lattice/LatticeUtils.h b/Core/Lattice/LatticeUtils.h index c4a3736c46f8c65454b1c900b4cb2ec674c90171..2394aca06c4fdeb5b3b414c386f290de055c287e 100644 --- a/Core/Lattice/LatticeUtils.h +++ b/Core/Lattice/LatticeUtils.h @@ -22,10 +22,10 @@ class ILatticeOrientation; namespace LatticeUtils { -BA_CORE_API_ Lattice CreateFCCLattice(double lattice_constant, +BA_CORE_API_ Lattice createFCCLattice(double lattice_constant, const ILatticeOrientation& orientation); -BA_CORE_API_ Lattice CreateHCPLattice(double a, double c, const ILatticeOrientation& orientation); -BA_CORE_API_ Lattice CreateBCTLattice(double a, double c, const ILatticeOrientation& orientation); +BA_CORE_API_ Lattice createHCPLattice(double a, double c, const ILatticeOrientation& orientation); +BA_CORE_API_ Lattice createBCTLattice(double a, double c, const ILatticeOrientation& orientation); } // namespace LatticeUtils #endif // BORNAGAIN_CORE_LATTICE_LATTICEUTILS_H diff --git a/Core/Multilayer/SlicedFormFactorList.cpp b/Core/Multilayer/SlicedFormFactorList.cpp index 04769377dada75a214e3b0e072592e71809f81ae..892c07f9ab6683e00ac0209e4c757027109b86c6 100644 --- a/Core/Multilayer/SlicedFormFactorList.cpp +++ b/Core/Multilayer/SlicedFormFactorList.cpp @@ -29,7 +29,7 @@ ZLimits SlicesZLimits(const std::vector<Slice>& slices, size_t slice_index); void ScaleRegions(std::vector<HomogeneousRegion>& regions, double factor); } // namespace -SlicedFormFactorList SlicedFormFactorList::CreateSlicedFormFactors(const IParticle& particle, +SlicedFormFactorList SlicedFormFactorList::createSlicedFormFactors(const IParticle& particle, const std::vector<Slice>& slices, double z_ref) { diff --git a/Core/Multilayer/SlicedFormFactorList.h b/Core/Multilayer/SlicedFormFactorList.h index e303b2a2ea5a1297fe44afc731e789dbd604e334..89cbe5fc7669d1060bf22d86934154aed55cb77a 100644 --- a/Core/Multilayer/SlicedFormFactorList.h +++ b/Core/Multilayer/SlicedFormFactorList.h @@ -36,7 +36,7 @@ public: SlicedFormFactorList& operator=(SlicedFormFactorList&& other) = default; ~SlicedFormFactorList() = default; - static SlicedFormFactorList CreateSlicedFormFactors(const IParticle& particle, + static SlicedFormFactorList createSlicedFormFactors(const IParticle& particle, const std::vector<Slice>& slices, double z_ref); diff --git a/Core/Particle/HomogeneousRegion.cpp b/Core/Particle/HomogeneousRegion.cpp index 9ccd816e261e9f898bc3089565b82f93d8c913d3..254e58a2136c2bc176dcf8b98832a1a4a6bceb82 100644 --- a/Core/Particle/HomogeneousRegion.cpp +++ b/Core/Particle/HomogeneousRegion.cpp @@ -3,7 +3,7 @@ // BornAgain: simulate and fit scattering at grazing incidence // //! @file Core/Particle/HomogeneousRegion.cpp -//! @brief Implements fct CreateAveragedMaterial +//! @brief Implements fct createAveragedMaterial //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -35,7 +35,7 @@ T averageData(const Material& layer_mat, const std::vector<HomogeneousRegion>& r } // namespace -Material CreateAveragedMaterial(const Material& layer_mat, +Material createAveragedMaterial(const Material& layer_mat, const std::vector<HomogeneousRegion>& regions) { // determine the type of returned material diff --git a/Core/Particle/HomogeneousRegion.h b/Core/Particle/HomogeneousRegion.h index 4f3b7221504b7cdb32671f75731aca77cbad5872..49f6974e950ae13449e2900bd30fe2b170b345ed 100644 --- a/Core/Particle/HomogeneousRegion.h +++ b/Core/Particle/HomogeneousRegion.h @@ -3,7 +3,7 @@ // BornAgain: simulate and fit scattering at grazing incidence // //! @file Core/Particle/HomogeneousRegion.h -//! @brief Defines struct HomogeneousRegion, and declares fct CreateAveragedMaterial +//! @brief Defines struct HomogeneousRegion, and declares fct createAveragedMaterial //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -35,7 +35,7 @@ struct HomogeneousRegion { //! Creates averaged material. Square refractive index of returned material is arithmetic mean over //! _regions_ and _layer_mat_. Magnetization (if present) is averaged linearly. -BA_CORE_API_ Material CreateAveragedMaterial(const Material& layer_mat, +BA_CORE_API_ Material createAveragedMaterial(const Material& layer_mat, const std::vector<HomogeneousRegion>& regions); #endif // SWIG diff --git a/Core/Particle/IParticle.h b/Core/Particle/IParticle.h index ade5a4788f947e95ac8e6173950625adaa7924b4..748843cbd8c832f20106501528d9dd1e0e0f3fd8 100644 --- a/Core/Particle/IParticle.h +++ b/Core/Particle/IParticle.h @@ -34,10 +34,10 @@ public: ~IParticle() {} IParticle* clone() const override = 0; - //! Create a form factor for this particle + //! Creates a form factor for this particle virtual IFormFactor* createFormFactor() const; - //! Create a sliced form factor for this particle + //! Creates a sliced form factor for this particle virtual SlicedParticle createSlicedParticle(ZLimits limits) const; //! Returns particle position. diff --git a/Core/Scattering/IFormFactor.cpp b/Core/Scattering/IFormFactor.cpp index 2c7f1fb584d75ecb5102147f10aa837ee25f56be..4a3d42d2d99119245103bfae0119493332dba9a1 100644 --- a/Core/Scattering/IFormFactor.cpp +++ b/Core/Scattering/IFormFactor.cpp @@ -39,7 +39,7 @@ IFormFactor* IFormFactor::createSlicedFormFactor(ZLimits limits, const IRotation kvector_t translation) const { if (ShapeIsContainedInLimits(*this, limits, rot, translation)) - return CreateTransformedFormFactor(*this, rot, translation); + return createTransformedFormFactor(*this, rot, translation); if (ShapeOutsideLimits(*this, limits, rot, translation)) return nullptr; if (canSliceAnalytically(rot)) @@ -77,7 +77,7 @@ IFormFactor* IFormFactor::sliceFormFactor(ZLimits, const IRotation&, kvector_t) throw std::runtime_error(getName() + "::sliceFormFactor error: not implemented!"); } -IFormFactor* CreateTransformedFormFactor(const IFormFactor& formfactor, const IRotation& rot, +IFormFactor* createTransformedFormFactor(const IFormFactor& formfactor, const IRotation& rot, kvector_t translation) { std::unique_ptr<IFormFactor> P_fftemp, P_result; diff --git a/Core/Scattering/IFormFactor.h b/Core/Scattering/IFormFactor.h index 1107a95ca37813c394268e1cb9f73bb52a365325..75c31e8b850af42a9eeb9f82aa178db64cc61865 100644 --- a/Core/Scattering/IFormFactor.h +++ b/Core/Scattering/IFormFactor.h @@ -89,7 +89,7 @@ protected: kvector_t translation) const; }; -IFormFactor* CreateTransformedFormFactor(const IFormFactor& formfactor, const IRotation& rot, +IFormFactor* createTransformedFormFactor(const IFormFactor& formfactor, const IRotation& rot, kvector_t translation); #endif // BORNAGAIN_CORE_SCATTERING_IFORMFACTOR_H diff --git a/Core/Scattering/IFormFactorBorn.h b/Core/Scattering/IFormFactorBorn.h index fa2555168156b4afac7ec18c38ed4fe82d9aba82..2f62695ccaadeab845332cbce04075c6f2e95d3a 100644 --- a/Core/Scattering/IFormFactorBorn.h +++ b/Core/Scattering/IFormFactorBorn.h @@ -19,7 +19,7 @@ #include "Core/Shapes/IShape.h" #include "Core/Vector/Vectors3D.h" -struct SlicingEffects; +struct SlicingEffects; // defined below //! Pure virtual base class for Born form factors. //! diff --git a/Core/StandardSamples/FeNiBiLayerBuilder.h b/Core/StandardSamples/FeNiBiLayerBuilder.h index 9e40d5fc50740f9ef93fe52d6f67600bc96ed6f6..38e67c1e08617aa084921a1261dfca8765818101 100644 --- a/Core/StandardSamples/FeNiBiLayerBuilder.h +++ b/Core/StandardSamples/FeNiBiLayerBuilder.h @@ -13,8 +13,8 @@ // // ************************************************************************** // -#ifndef BORNAGAIN_CORE_STANDARDSAMPLES_FENIBILAYERBUILER_H -#define BORNAGAIN_CORE_STANDARDSAMPLES_FENIBILAYERBUILER_H +#ifndef BORNAGAIN_CORE_STANDARDSAMPLES_FENIBILAYERBUILDER_H +#define BORNAGAIN_CORE_STANDARDSAMPLES_FENIBILAYERBUILDER_H #include "Core/Multilayer/IMultiLayerBuilder.h" #include "Core/Multilayer/MultiLayer.h" @@ -134,4 +134,4 @@ public: MultiLayer* buildSample() const; }; -#endif // BORNAGAIN_CORE_STANDARDSAMPLES_FENIBILAYERBUILER_H +#endif // BORNAGAIN_CORE_STANDARDSAMPLES_FENIBILAYERBUILDER_H diff --git a/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp b/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp index 61f5e944ff08752d69efa483a6af115ea5506af7..aabf0803a815dfd67f6e3d15a9f051427b358869 100644 --- a/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp +++ b/GUI/coregui/Views/InfoWidgets/ComboSelectorDialog.cpp @@ -87,7 +87,7 @@ QBoxLayout* ComboSelectorDialog::createLogoLayout() return result; } -//! Create right layout with text and QComboBox selection. +//! Creates right layout with text and QComboBox selection. QBoxLayout* ComboSelectorDialog::createInfoLayout() { diff --git a/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp b/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp index 25f283e3eaefc5e3e543f4fcd1aad800ef487823..d7f5fde837e6ee65f8970ce873cc3bfc5aed5fe7 100644 --- a/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp +++ b/GUI/coregui/Views/InfoWidgets/DetailedMessageBox.cpp @@ -89,7 +89,7 @@ QBoxLayout* DetailedMessageBox::createLogoLayout() return result; } -//! Create right layout with text and QComboBox selection. +//! Creates right layout with text and QComboBox selection. QBoxLayout* DetailedMessageBox::createInfoLayout() { diff --git a/Tests/UnitTests/Core/Other/MaterialTest.cpp b/Tests/UnitTests/Core/Other/MaterialTest.cpp index a8e261d6484bcf88a00bab564fc43e7d7e4dcc2e..942824968e6ea2276a2b3b773428b7b08fe1344d 100644 --- a/Tests/UnitTests/Core/Other/MaterialTest.cpp +++ b/Tests/UnitTests/Core/Other/MaterialTest.cpp @@ -146,14 +146,14 @@ TEST_F(MaterialTest, AveragedMaterialTest) const std::vector<HomogeneousRegion> regions = {HomogeneousRegion{0.25, material}, HomogeneousRegion{0.25, material}}; - const Material material_avr = CreateAveragedMaterial(material, regions); + const Material material_avr = createAveragedMaterial(material, regions); EXPECT_EQ(material_avr.magnetization(), magnetization); EXPECT_DOUBLE_EQ(material_avr.materialData().real(), 0.5); EXPECT_DOUBLE_EQ(material_avr.materialData().imag(), 0.5); EXPECT_TRUE(material_avr.typeID() == MATERIAL_TYPES::RefractiveMaterial); const Material material2 = MaterialBySLD(); - const Material material_avr2 = CreateAveragedMaterial(material2, regions); + const Material material_avr2 = createAveragedMaterial(material2, regions); const complex_t expected_res = std::conj(1.0 - std::sqrt(complex_t(0.5, 0.25))); EXPECT_DOUBLE_EQ(material_avr2.materialData().real(), expected_res.real()); EXPECT_DOUBLE_EQ(material_avr2.materialData().imag(), expected_res.imag()); @@ -161,12 +161,12 @@ TEST_F(MaterialTest, AveragedMaterialTest) EXPECT_TRUE(material_avr2.typeID() == MATERIAL_TYPES::RefractiveMaterial); const Material material3 = MaterialBySLD("Material3", 0.5, 0.5, magnetization); - EXPECT_THROW(CreateAveragedMaterial(material3, regions), std::runtime_error); + EXPECT_THROW(createAveragedMaterial(material3, regions), std::runtime_error); const Material material4 = HomogeneousMaterial(); const std::vector<HomogeneousRegion> regions2 = {HomogeneousRegion{0.25, material3}, HomogeneousRegion{0.25, material3}}; - const Material material_avr3 = CreateAveragedMaterial(material4, regions2); + const Material material_avr3 = createAveragedMaterial(material4, regions2); EXPECT_DOUBLE_EQ(material_avr3.materialData().real(), 0.25); EXPECT_DOUBLE_EQ(material_avr3.materialData().imag(), 0.25); EXPECT_EQ(material_avr3.magnetization(), kvector_t(0.5, 0.0, 0.0)); diff --git a/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp b/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp index 894d2bcb02152d5641297382e94ab0b3889435fa..933f57f76af098ff254b484768dda67b8b3364b3 100644 --- a/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp +++ b/Tests/UnitTests/Core/Sample/LatticeUtilsTest.cpp @@ -11,7 +11,7 @@ TEST_F(LatticeUtilsTest, cubeAlignedFCCTest) { MillerIndexOrientation q_aligned(MillerIndexOrientation::QZ, {0, 0, 1}, MillerIndexOrientation::QY, {0, 1, 0}); - auto lattice = LatticeUtils::CreateFCCLattice(2.0, q_aligned); + auto lattice = LatticeUtils::createFCCLattice(2.0, q_aligned); auto a1 = lattice.getBasisVectorA(); auto a2 = lattice.getBasisVectorB(); auto a3 = lattice.getBasisVectorC(); @@ -30,7 +30,7 @@ TEST_F(LatticeUtilsTest, diagonalAlignedFCCTest) { MillerIndexOrientation diagonal_aligned(MillerIndexOrientation::QZ, {1, 1, 1}, MillerIndexOrientation::QX, {1, 1, 0}); - auto lattice = LatticeUtils::CreateFCCLattice(2.0, diagonal_aligned); + auto lattice = LatticeUtils::createFCCLattice(2.0, diagonal_aligned); auto a1 = lattice.getBasisVectorA(); auto a2 = lattice.getBasisVectorB(); auto a3 = lattice.getBasisVectorC(); @@ -46,7 +46,7 @@ TEST_F(LatticeUtilsTest, trivialAlignedHCPTest) { MillerIndexOrientation trivial_aligned(MillerIndexOrientation::QZ, {0, 0, 1}, MillerIndexOrientation::QX, {2, -1, 0}); - auto lattice = LatticeUtils::CreateHCPLattice(2.0, 4.0, trivial_aligned); + auto lattice = LatticeUtils::createHCPLattice(2.0, 4.0, trivial_aligned); auto a1 = lattice.getBasisVectorA(); auto a2 = lattice.getBasisVectorB(); auto a3 = lattice.getBasisVectorC(); @@ -65,7 +65,7 @@ TEST_F(LatticeUtilsTest, tetraAlignedFCCTest) { MillerIndexOrientation q_aligned(MillerIndexOrientation::QZ, {0, 0, 1}, MillerIndexOrientation::QY, {0, 1, 0}); - auto lattice = LatticeUtils::CreateBCTLattice(2.0, 2.0, q_aligned); + auto lattice = LatticeUtils::createBCTLattice(2.0, 2.0, q_aligned); auto a1 = lattice.getBasisVectorA(); auto a2 = lattice.getBasisVectorB(); auto a3 = lattice.getBasisVectorC(); @@ -84,7 +84,7 @@ TEST_F(LatticeUtilsTest, diagonalAlignedBCTTest) { MillerIndexOrientation diagonal_aligned(MillerIndexOrientation::QZ, {1, 1, 1}, MillerIndexOrientation::QX, {1, 1, 0}); - auto lattice = LatticeUtils::CreateBCTLattice(2.0, 2.0, diagonal_aligned); + auto lattice = LatticeUtils::createBCTLattice(2.0, 2.0, diagonal_aligned); auto a1 = lattice.getBasisVectorA(); auto a2 = lattice.getBasisVectorB(); auto a3 = lattice.getBasisVectorC(); diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i index e8c24f657e3137bdb5c19a31ed45f5153b7285fe..df87faa32cedb26122e8bafddac74f881e165c2a 100644 --- a/Wrap/swig/libBornAgainCore.i +++ b/Wrap/swig/libBornAgainCore.i @@ -140,8 +140,8 @@ #include "Core/HardParticle/FormFactorIcosahedron.h" #include "Core/HardParticle/FormFactorLongBoxGauss.h" #include "Core/HardParticle/FormFactorLongBoxLorentz.h" -#include "Core/HardParticle/FormFactorPolyhedron.h" -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPrism.h" #include "Core/HardParticle/FormFactorPrism3.h" #include "Core/HardParticle/FormFactorPrism6.h" #include "Core/HardParticle/FormFactorPyramid.h" @@ -402,8 +402,8 @@ %rename(RoughnessModel) RoughnessModelWrap; %include "Core/Multilayer/RoughnessModels.h" -%include "Core/HardParticle/FormFactorPolyhedron.h" -%include "Core/HardParticle/FormFactorPolyhedron.h" +%include "Core/HardParticle/IFormFactorPolyhedron.h" +%include "Core/HardParticle/IFormFactorPrism.h" %include "Core/HardParticle/IProfileRipple.h" %include "Core/HardParticle/FormFactorAnisoPyramid.h" diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i index e8933bafd252bf8092b441097f53d40de39f1f1e..a26c470a434959481a16daa6f8b7791ce71e93f4 100644 --- a/auto/Wrap/doxygen_core.i +++ b/auto/Wrap/doxygen_core.i @@ -2266,6 +2266,84 @@ Returns true if area defined by two bins is inside or on border of ellipse; more "; +// File: classFeNiBiLayer.xml +%feature("docstring") FeNiBiLayer " + +Creates the sample demonstrating an Fe-Ni Bilayer with and without roughness + +C++ includes: FeNiBiLayerBuilder.h +"; + +%feature("docstring") FeNiBiLayer::FeNiBiLayer "FeNiBiLayer::FeNiBiLayer() +"; + +%feature("docstring") FeNiBiLayer::FeNiBiLayer "FeNiBiLayer::FeNiBiLayer(Options opt) +"; + +%feature("docstring") FeNiBiLayer::release "MultiLayer* FeNiBiLayer::release() +"; + + +// File: classFeNiBiLayerBuilder.xml +%feature("docstring") FeNiBiLayerBuilder ""; + +%feature("docstring") FeNiBiLayerBuilder::FeNiBiLayerBuilder "FeNiBiLayerBuilder::FeNiBiLayerBuilder() +"; + +%feature("docstring") FeNiBiLayerBuilder::buildSample "MultiLayer * FeNiBiLayerBuilder::buildSample() const +"; + + +// File: classFeNiBiLayerNCBuilder.xml +%feature("docstring") FeNiBiLayerNCBuilder ""; + +%feature("docstring") FeNiBiLayerNCBuilder::FeNiBiLayerNCBuilder "FeNiBiLayerNCBuilder::FeNiBiLayerNCBuilder() +"; + +%feature("docstring") FeNiBiLayerNCBuilder::buildSample "MultiLayer * FeNiBiLayerNCBuilder::buildSample() const +"; + + +// File: classFeNiBiLayerSpinFlipBuilder.xml +%feature("docstring") FeNiBiLayerSpinFlipBuilder ""; + +%feature("docstring") FeNiBiLayerSpinFlipBuilder::FeNiBiLayerSpinFlipBuilder "FeNiBiLayerSpinFlipBuilder::FeNiBiLayerSpinFlipBuilder() +"; + +%feature("docstring") FeNiBiLayerSpinFlipBuilder::buildSample "MultiLayer * FeNiBiLayerSpinFlipBuilder::buildSample() const +"; + + +// File: classFeNiBiLayerSpinFlipNCBuilder.xml +%feature("docstring") FeNiBiLayerSpinFlipNCBuilder ""; + +%feature("docstring") FeNiBiLayerSpinFlipNCBuilder::FeNiBiLayerSpinFlipNCBuilder "FeNiBiLayerSpinFlipNCBuilder::FeNiBiLayerSpinFlipNCBuilder() +"; + +%feature("docstring") FeNiBiLayerSpinFlipNCBuilder::buildSample "MultiLayer * FeNiBiLayerSpinFlipNCBuilder::buildSample() const +"; + + +// File: classFeNiBiLayerSpinFlipTanhBuilder.xml +%feature("docstring") FeNiBiLayerSpinFlipTanhBuilder ""; + +%feature("docstring") FeNiBiLayerSpinFlipTanhBuilder::FeNiBiLayerSpinFlipTanhBuilder "FeNiBiLayerSpinFlipTanhBuilder::FeNiBiLayerSpinFlipTanhBuilder() +"; + +%feature("docstring") FeNiBiLayerSpinFlipTanhBuilder::buildSample "MultiLayer * FeNiBiLayerSpinFlipTanhBuilder::buildSample() const +"; + + +// File: classFeNiBiLayerTanhBuilder.xml +%feature("docstring") FeNiBiLayerTanhBuilder ""; + +%feature("docstring") FeNiBiLayerTanhBuilder::FeNiBiLayerTanhBuilder "FeNiBiLayerTanhBuilder::FeNiBiLayerTanhBuilder() +"; + +%feature("docstring") FeNiBiLayerTanhBuilder::buildSample "MultiLayer * FeNiBiLayerTanhBuilder::buildSample() const +"; + + // File: classExceptions_1_1FileIsBadException.xml %feature("docstring") Exceptions::FileIsBadException ""; @@ -2971,7 +3049,7 @@ Calls the INodeVisitor's visit method. %feature("docstring") FormFactorBox::volume "double FormFactorBox::volume() const override final -Returns the volume of this prism. +Returns the total volume of the particle of this form factor's shape. "; %feature("docstring") FormFactorBox::radialExtension "double FormFactorBox::radialExtension() const override final @@ -2981,7 +3059,7 @@ Returns the (approximate in some cases) radial size of the particle of this form %feature("docstring") FormFactorBox::evaluate_for_q "complex_t FormFactorBox::evaluate_for_q(cvector_t q) const override final -Returns the form factor F(q) of this polyhedron, respecting the offset height/2. +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. "; @@ -4314,79 +4392,6 @@ Returns scattering amplitude for complex scattering wavevector q=k_i-k_f. This m "; -// File: classFormFactorPolygonalPrism.xml -%feature("docstring") FormFactorPolygonalPrism " - -A prism with a polygonal base, for form factor computation. - -C++ includes: FormFactorPolyhedron.h -"; - -%feature("docstring") FormFactorPolygonalPrism::FormFactorPolygonalPrism "FormFactorPolygonalPrism::FormFactorPolygonalPrism()=default -"; - -%feature("docstring") FormFactorPolygonalPrism::FormFactorPolygonalPrism "FormFactorPolygonalPrism::FormFactorPolygonalPrism(const NodeMeta &meta, const std::vector< double > &PValues) -"; - -%feature("docstring") FormFactorPolygonalPrism::bottomZ "double FormFactorPolygonalPrism::bottomZ(const IRotation &rotation) const override final - -Returns the z-coordinate of the lowest point in this shape after a given rotation. -"; - -%feature("docstring") FormFactorPolygonalPrism::topZ "double FormFactorPolygonalPrism::topZ(const IRotation &rotation) const override final - -Returns the z-coordinate of the lowest point in this shape after a given rotation. -"; - -%feature("docstring") FormFactorPolygonalPrism::evaluate_for_q "complex_t FormFactorPolygonalPrism::evaluate_for_q(cvector_t q) const override - -Returns the form factor F(q) of this polyhedron, respecting the offset height/2. -"; - -%feature("docstring") FormFactorPolygonalPrism::volume "double FormFactorPolygonalPrism::volume() const override - -Returns the volume of this prism. -"; - -%feature("docstring") FormFactorPolygonalPrism::getHeight "double FormFactorPolygonalPrism::getHeight() const -"; - -%feature("docstring") FormFactorPolygonalPrism::radialExtension "virtual double FormFactorPolygonalPrism::radialExtension() const override - -Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations -"; - - -// File: classFormFactorPolygonalSurface.xml -%feature("docstring") FormFactorPolygonalSurface " - -A polygonal surface, for testing form factor computations. - -C++ includes: FormFactorPolyhedron.h -"; - -%feature("docstring") FormFactorPolygonalSurface::FormFactorPolygonalSurface "FormFactorPolygonalSurface::FormFactorPolygonalSurface()=default -"; - -%feature("docstring") FormFactorPolygonalSurface::FormFactorPolygonalSurface "FormFactorPolygonalSurface::FormFactorPolygonalSurface(const NodeMeta &meta, const std::vector< double > &PValues) -"; - -%feature("docstring") FormFactorPolygonalSurface::evaluate_for_q "complex_t FormFactorPolygonalSurface::evaluate_for_q(cvector_t q) const override final - -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") FormFactorPolygonalSurface::volume "double FormFactorPolygonalSurface::volume() const override - -Returns the total volume of the particle of this form factor's shape. -"; - -%feature("docstring") FormFactorPolygonalSurface::radialExtension "double FormFactorPolygonalSurface::radialExtension() const override final - -Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations -"; - - // File: classFormFactorPolyhedron.xml %feature("docstring") FormFactorPolyhedron " @@ -4413,12 +4418,10 @@ Returns the z-coordinate of the lowest point in this shape after a given rotatio %feature("docstring") FormFactorPolyhedron::evaluate_for_q "complex_t FormFactorPolyhedron::evaluate_for_q(cvector_t q) const override final -Returns the form factor F(q) of this polyhedron, respecting the offset z_bottom. +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") FormFactorPolyhedron::evaluate_centered "complex_t FormFactorPolyhedron::evaluate_centered(cvector_t q) const - -Returns the form factor F(q) of this polyhedron, with origin at z=0. "; %feature("docstring") FormFactorPolyhedron::volume "double FormFactorPolyhedron::volume() const override final @@ -4432,8 +4435,6 @@ Returns the (approximate in some cases) radial size of the particle of this form "; %feature("docstring") FormFactorPolyhedron::assert_platonic "void FormFactorPolyhedron::assert_platonic() const - -Assertions for Platonic solid. "; @@ -4756,34 +4757,6 @@ Calls the INodeVisitor's visit method. "; -// File: classFormFactorTriangle.xml -%feature("docstring") FormFactorTriangle " - -A planar equilateral triangle, for testing form factor computations. - -C++ includes: FormFactorTriangle.h -"; - -%feature("docstring") FormFactorTriangle::FormFactorTriangle "FormFactorTriangle::FormFactorTriangle(const std::vector< double > P) -"; - -%feature("docstring") FormFactorTriangle::FormFactorTriangle "FormFactorTriangle::FormFactorTriangle(double base_edge) -"; - -%feature("docstring") FormFactorTriangle::clone "FormFactorTriangle* FormFactorTriangle::clone() const override final - -Returns a clone of this ISample object. -"; - -%feature("docstring") FormFactorTriangle::accept "void FormFactorTriangle::accept(INodeVisitor *visitor) const override final - -Calls the INodeVisitor's visit method. -"; - -%feature("docstring") FormFactorTriangle::getBaseEdge "double FormFactorTriangle::getBaseEdge() const -"; - - // File: classFormFactorTruncatedCube.xml %feature("docstring") FormFactorTruncatedCube " @@ -7016,6 +6989,105 @@ Returns the z-coordinate of the lowest point in this shape after a given rotatio "; +// File: classIFormFactorPolyhedron.xml +%feature("docstring") IFormFactorPolyhedron " + +A polyhedron, for form factor computation. + +C++ includes: IFormFactorPolyhedron.h +"; + +%feature("docstring") IFormFactorPolyhedron::IFormFactorPolyhedron "IFormFactorPolyhedron::IFormFactorPolyhedron()=delete +"; + +%feature("docstring") IFormFactorPolyhedron::IFormFactorPolyhedron "IFormFactorPolyhedron::IFormFactorPolyhedron(const NodeMeta &meta, const std::vector< double > &PValues) + +The mathematics implemented here is described in full detail in a paper by Joachim Wuttke, entitled \"Form factor (Fourier shape transform) of polygon and polyhedron.\" +"; + +%feature("docstring") IFormFactorPolyhedron::~IFormFactorPolyhedron "IFormFactorPolyhedron::~IFormFactorPolyhedron() +"; + +%feature("docstring") IFormFactorPolyhedron::bottomZ "double IFormFactorPolyhedron::bottomZ(const IRotation &rotation) const override final + +Returns the z-coordinate of the lowest point in this shape after a given rotation. +"; + +%feature("docstring") IFormFactorPolyhedron::topZ "double IFormFactorPolyhedron::topZ(const IRotation &rotation) const override final + +Returns the z-coordinate of the lowest point in this shape after a given rotation. +"; + +%feature("docstring") IFormFactorPolyhedron::evaluate_for_q "complex_t IFormFactorPolyhedron::evaluate_for_q(cvector_t q) const override final + +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(cvector_t q) const +"; + +%feature("docstring") IFormFactorPolyhedron::volume "double IFormFactorPolyhedron::volume() const override final + +Returns the total volume of the particle of this form factor's shape. +"; + +%feature("docstring") IFormFactorPolyhedron::radialExtension "double IFormFactorPolyhedron::radialExtension() const override final + +Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations +"; + +%feature("docstring") IFormFactorPolyhedron::assert_platonic "void IFormFactorPolyhedron::assert_platonic() const + +Assertions for Platonic solid. +"; + + +// File: classIFormFactorPrism.xml +%feature("docstring") IFormFactorPrism " + +A prism with a polygonal base, for form factor computation. + +C++ includes: IFormFactorPrism.h +"; + +%feature("docstring") IFormFactorPrism::IFormFactorPrism "IFormFactorPrism::IFormFactorPrism()=default +"; + +%feature("docstring") IFormFactorPrism::IFormFactorPrism "IFormFactorPrism::IFormFactorPrism(const NodeMeta &meta, const std::vector< double > &PValues) +"; + +%feature("docstring") IFormFactorPrism::~IFormFactorPrism "IFormFactorPrism::~IFormFactorPrism() +"; + +%feature("docstring") IFormFactorPrism::bottomZ "double IFormFactorPrism::bottomZ(const IRotation &rotation) const override final + +Returns the z-coordinate of the lowest point in this shape after a given rotation. +"; + +%feature("docstring") IFormFactorPrism::topZ "double IFormFactorPrism::topZ(const IRotation &rotation) const override final + +Returns the z-coordinate of the lowest point in this shape after a given rotation. +"; + +%feature("docstring") IFormFactorPrism::evaluate_for_q "complex_t IFormFactorPrism::evaluate_for_q(cvector_t q) const override + +Returns the form factor F(q) of this polyhedron, respecting the offset height/2. +"; + +%feature("docstring") IFormFactorPrism::volume "double IFormFactorPrism::volume() const override + +Returns the volume of this prism. +"; + +%feature("docstring") IFormFactorPrism::radialExtension "double IFormFactorPrism::radialExtension() const override + +Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations +"; + +%feature("docstring") IFormFactorPrism::getHeight "double IFormFactorPrism::getHeight() const +"; + + // File: classIFresnelMap.xml %feature("docstring") IFresnelMap " @@ -9856,7 +9928,7 @@ Print scan definition in python format. Interface for the Fresnel computations, both in the scalar and magnetic case -Inherited by SpecularScalarStrategy, SpecularMagneticOldStrategy, SpecularMagneticStrategy, SpecularMagneticNewStrategy +Inherited by SpecularScalarStrategy, SpecularMagneticOldStrategy, SpecularMagneticStrategy, SpecularMagneticNewStrategy C++ includes: ISpecularStrategy.h "; @@ -11115,6 +11187,73 @@ Returns z-part of the two wavevector eigenmodes. "; +// File: classMatrixRTCoefficients__v3.xml +%feature("docstring") MatrixRTCoefficients_v3 " + +Specular reflection and transmission coefficients in a layer in case of magnetic interactions between the scattered particle and the layer. + +C++ includes: MatrixRTCoefficients_v3.h +"; + +%feature("docstring") MatrixRTCoefficients_v3::MatrixRTCoefficients_v3 "MatrixRTCoefficients_v3::MatrixRTCoefficients_v3(double kz_sign, Eigen::Vector2cd eigenvalues, kvector_t b, double magnetic_SLD) +"; + +%feature("docstring") MatrixRTCoefficients_v3::MatrixRTCoefficients_v3 "MatrixRTCoefficients_v3::MatrixRTCoefficients_v3(const MatrixRTCoefficients_v3 &other) +"; + +%feature("docstring") MatrixRTCoefficients_v3::~MatrixRTCoefficients_v3 "MatrixRTCoefficients_v3::~MatrixRTCoefficients_v3() override +"; + +%feature("docstring") MatrixRTCoefficients_v3::clone "MatrixRTCoefficients_v3 * MatrixRTCoefficients_v3::clone() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::T1plus "Eigen::Vector2cd MatrixRTCoefficients_v3::T1plus() const override + +The following functions return the transmitted and reflected amplitudes for different incoming beam polarizations and eigenmodes +"; + +%feature("docstring") MatrixRTCoefficients_v3::R1plus "Eigen::Vector2cd MatrixRTCoefficients_v3::R1plus() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::T2plus "Eigen::Vector2cd MatrixRTCoefficients_v3::T2plus() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::R2plus "Eigen::Vector2cd MatrixRTCoefficients_v3::R2plus() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::T1min "Eigen::Vector2cd MatrixRTCoefficients_v3::T1min() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::R1min "Eigen::Vector2cd MatrixRTCoefficients_v3::R1min() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::T2min "Eigen::Vector2cd MatrixRTCoefficients_v3::T2min() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::R2min "Eigen::Vector2cd MatrixRTCoefficients_v3::R2min() const override +"; + +%feature("docstring") MatrixRTCoefficients_v3::getKz "Eigen::Vector2cd MatrixRTCoefficients_v3::getKz() const override + +Returns z-part of the two wavevector eigenmodes. +"; + +%feature("docstring") MatrixRTCoefficients_v3::magneticSLD "double MatrixRTCoefficients_v3::magneticSLD() const +"; + +%feature("docstring") MatrixRTCoefficients_v3::computeP "Eigen::Matrix2cd MatrixRTCoefficients_v3::computeP() const +"; + +%feature("docstring") MatrixRTCoefficients_v3::computeInverseP "Eigen::Matrix2cd MatrixRTCoefficients_v3::computeInverseP() const +"; + +%feature("docstring") MatrixRTCoefficients_v3::computeDeltaMatrix "Eigen::Matrix2cd MatrixRTCoefficients_v3::computeDeltaMatrix(double thickness) +"; + +%feature("docstring") MatrixRTCoefficients_v3::getReflectionMatrix "Eigen::Matrix2cd MatrixRTCoefficients_v3::getReflectionMatrix() const override +"; + + // File: classMesoCrystal.xml %feature("docstring") MesoCrystal " @@ -11643,15 +11782,46 @@ C++ includes: ZLimits.h "; -// File: classOrderedMap.xml -%feature("docstring") OrderedMap " +// File: classFeNiBiLayer_1_1Options.xml +%feature("docstring") FeNiBiLayer::Options ""; -Ordered map which saves the order of insertion. +%feature("docstring") FeNiBiLayer::Options::Options "FeNiBiLayer::Options::Options() +"; -C++ includes: OrderedMap.h +%feature("docstring") FeNiBiLayer::Options::NBiLayers "Options FeNiBiLayer::Options::NBiLayers(int n) "; -%feature("docstring") OrderedMap::OrderedMap "OrderedMap< Key, Object >::OrderedMap() +%feature("docstring") FeNiBiLayer::Options::angle "Options FeNiBiLayer::Options::angle(double angle) +"; + +%feature("docstring") FeNiBiLayer::Options::magnetizationMagnitude "Options FeNiBiLayer::Options::magnetizationMagnitude(double M) +"; + +%feature("docstring") FeNiBiLayer::Options::thicknessFe "Options FeNiBiLayer::Options::thicknessFe(double t) +"; + +%feature("docstring") FeNiBiLayer::Options::thicknessNi "Options FeNiBiLayer::Options::thicknessNi(double t) +"; + +%feature("docstring") FeNiBiLayer::Options::sigmaRoughness "Options FeNiBiLayer::Options::sigmaRoughness(double r) +"; + +%feature("docstring") FeNiBiLayer::Options::effectiveSLD "Options FeNiBiLayer::Options::effectiveSLD(int i) +"; + +%feature("docstring") FeNiBiLayer::Options::roughnessModel "Options FeNiBiLayer::Options::roughnessModel(RoughnessModel rm) +"; + + +// File: classOrderedMap.xml +%feature("docstring") OrderedMap " + +Ordered map which saves the order of insertion. + +C++ includes: OrderedMap.h +"; + +%feature("docstring") OrderedMap::OrderedMap "OrderedMap< Key, Object >::OrderedMap() "; %feature("docstring") OrderedMap::~OrderedMap "virtual OrderedMap< Key, Object >::~OrderedMap() @@ -13011,7 +13181,7 @@ Returns true if area defined by two bins is inside or on border of polygon (more For internal use in PolyhedralFace. -C++ includes: FormFactorPolyhedron.h +C++ includes: PolyhedralTopology.h "; @@ -13033,7 +13203,7 @@ The private data for polygons to hide boost dependency from the header. One edge of a polygon, for form factor computation. -C++ includes: FormFactorPolyhedron.h +C++ includes: PolyhedralComponents.h "; %feature("docstring") PolyhedralEdge::PolyhedralEdge "PolyhedralEdge::PolyhedralEdge(const kvector_t _Vlow, const kvector_t _Vhig) @@ -13062,7 +13232,7 @@ Returns sum_l=0^M/2 u^2l v^(M-2l) / (2l+1)!(M-2l)! - vperp^M/M! A polygon, for form factor computation. -C++ includes: FormFactorPolyhedron.h +C++ includes: PolyhedralComponents.h "; %feature("docstring") PolyhedralFace::PolyhedralFace "PolyhedralFace::PolyhedralFace(const std::vector< kvector_t > &_V=std::vector< kvector_t >(), bool _sym_S2=false) @@ -13117,9 +13287,54 @@ Throws if deviation from inversion symmetry is detected. Does not check vertices // File: classPolyhedralTopology.xml %feature("docstring") PolyhedralTopology " -For internal use in FormFactorPolyhedron. +For internal use in IFormFactorPolyhedron. -C++ includes: FormFactorPolyhedron.h +C++ includes: PolyhedralTopology.h +"; + + +// File: classPolyhedron.xml +%feature("docstring") Polyhedron " + +A polyhedron, implementation class for use in IFormFactorPolyhedron. + +C++ includes: Polyhedron.h +"; + +%feature("docstring") Polyhedron::Polyhedron "Polyhedron::Polyhedron()=delete +"; + +%feature("docstring") Polyhedron::Polyhedron "Polyhedron::Polyhedron(const Polyhedron &)=delete +"; + +%feature("docstring") Polyhedron::Polyhedron "Polyhedron::Polyhedron(const PolyhedralTopology &topology, double z_bottom, const std::vector< kvector_t > &vertices) +"; + +%feature("docstring") Polyhedron::~Polyhedron "Polyhedron::~Polyhedron() +"; + +%feature("docstring") Polyhedron::assert_platonic "void Polyhedron::assert_platonic() const +"; + +%feature("docstring") Polyhedron::volume "double Polyhedron::volume() const +"; + +%feature("docstring") Polyhedron::radius "double Polyhedron::radius() const +"; + +%feature("docstring") Polyhedron::vertices "const std::vector< kvector_t > & Polyhedron::vertices() +"; + +%feature("docstring") Polyhedron::evaluate_for_q "complex_t Polyhedron::evaluate_for_q(const cvector_t &q) const + +needed for topZ, bottomZ computation + +Returns the form factor F(q) of this polyhedron, respecting the offset z_bottom. +"; + +%feature("docstring") Polyhedron::evaluate_centered "complex_t Polyhedron::evaluate_centered(const cvector_t &q) const + +Returns the form factor F(q) of this polyhedron, with origin at z=0. "; @@ -13171,6 +13386,30 @@ C++ includes: IterationStrategy.h "; +// File: classPrism.xml +%feature("docstring") Prism ""; + +%feature("docstring") Prism::Prism "Prism::Prism()=delete +"; + +%feature("docstring") Prism::Prism "Prism::Prism(const Prism &)=delete +"; + +%feature("docstring") Prism::Prism "Prism::Prism(bool symmetry_Ci, double height, const std::vector< kvector_t > &vertices) +"; + +%feature("docstring") Prism::area "double Prism::area() const +"; + +%feature("docstring") Prism::vertices "const std::vector< kvector_t > & Prism::vertices() +"; + +%feature("docstring") Prism::evaluate_for_q "complex_t Prism::evaluate_for_q(const cvector_t &q) const + +needed for topZ, bottomZ computation +"; + + // File: classProcessedLayout.xml %feature("docstring") ProcessedLayout " @@ -15057,6 +15296,27 @@ C++ includes: MagneticLayersBuilder.h "; +// File: classSimpleMagneticRotationBuilder.xml +%feature("docstring") SimpleMagneticRotationBuilder " + +Builds sample: magnetic layer on a magnetic substrate with the fields rotated by 90° + +C++ includes: MagneticLayersBuilder.h +"; + +%feature("docstring") SimpleMagneticRotationBuilder::SimpleMagneticRotationBuilder "SimpleMagneticRotationBuilder::SimpleMagneticRotationBuilder() +"; + +%feature("docstring") SimpleMagneticRotationBuilder::buildSample "MultiLayer * SimpleMagneticRotationBuilder::buildSample() const override +"; + +%feature("docstring") SimpleMagneticRotationBuilder::createSample "MultiLayer * SimpleMagneticRotationBuilder::createSample(size_t index=0) override +"; + +%feature("docstring") SimpleMagneticRotationBuilder::size "size_t SimpleMagneticRotationBuilder::size() override +"; + + // File: classSimpleSelectionRule.xml %feature("docstring") SimpleSelectionRule " @@ -15921,6 +16181,49 @@ Return default axes units. "; +// File: classSpecularMagneticNewNCStrategy.xml +%feature("docstring") SpecularMagneticNewNCStrategy " + +Implements the magnetic Fresnel computation with Nevot-Croce roughness + +Implements the transfer matrix formalism for the calculation of wave amplitudes of the coherent wave solution in a multilayer with magnetization. For a description, see internal document \"Polarized Implementation of the Transfer Matrix Method\" + +C++ includes: SpecularMagneticNewNCStrategy.h +"; + + +// File: classSpecularMagneticNewStrategy.xml +%feature("docstring") SpecularMagneticNewStrategy " + +Implements the magnetic Fresnel computation with Nevot-Croce roughness + +Implements the transfer matrix formalism for the calculation of wave amplitudes of the coherent wave solution in a multilayer with magnetization. For a description, see internal document \"Polarized Implementation of the Transfer Matrix Method\" + +C++ includes: SpecularMagneticNewStrategy.h +"; + +%feature("docstring") SpecularMagneticNewStrategy::Execute "ISpecularStrategy::coeffs_t SpecularMagneticNewStrategy::Execute(const std::vector< Slice > &slices, const kvector_t &k) const + +Computes refraction angle reflection/transmission coefficients for given sliced multilayer and wavevector k +"; + +%feature("docstring") SpecularMagneticNewStrategy::Execute "ISpecularStrategy::coeffs_t SpecularMagneticNewStrategy::Execute(const std::vector< Slice > &slices, const std::vector< complex_t > &kz) const + +Computes refraction angle reflection/transmission coefficients for given sliced multilayer and a set of kz projections corresponding to each slice +"; + + +// File: classSpecularMagneticNewTanhStrategy.xml +%feature("docstring") SpecularMagneticNewTanhStrategy " + +Implements the magnetic Fresnel computation with the analytical Tanh roughness + +Implements the transfer matrix formalism for the calculation of wave amplitudes of the coherent wave solution in a multilayer with magnetization. For a description, see internal document \"Polarized Implementation of the Transfer Matrix Method\" + +C++ includes: SpecularMagneticNewTanhStrategy.h +"; + + // File: classSpecularMagneticOldStrategy.xml %feature("docstring") SpecularMagneticOldStrategy " @@ -16932,10 +17235,10 @@ C++ includes: WavevectorInfo.h "; -// File: classFourierTransform_1_1Workspace.xml +// File: classConvolve_1_1Workspace.xml -// File: classConvolve_1_1Workspace.xml +// File: classFourierTransform_1_1Workspace.xml // File: classZLimits.xml @@ -16965,172 +17268,7 @@ C++ includes: ZLimits.h "; -// File: namespace_0d106.xml - - -// File: namespace_0d112.xml - - -// File: namespace_0d116.xml - - -// File: namespace_0d147.xml - - -// File: namespace_0d159.xml - - -// File: namespace_0d16.xml - - -// File: namespace_0d167.xml - - -// File: namespace_0d172.xml - - -// File: namespace_0d181.xml - - -// File: namespace_0d183.xml - - -// File: namespace_0d187.xml - - -// File: namespace_0d2.xml - - -// File: namespace_0d227.xml - - -// File: namespace_0d24.xml - - -// File: namespace_0d256.xml - - -// File: namespace_0d260.xml - - -// File: namespace_0d264.xml - - -// File: namespace_0d270.xml - - -// File: namespace_0d274.xml - - -// File: namespace_0d288.xml - - -// File: namespace_0d312.xml - - -// File: namespace_0d319.xml - - -// File: namespace_0d321.xml - - -// File: namespace_0d323.xml - - -// File: namespace_0d343.xml - - -// File: namespace_0d347.xml - - -// File: namespace_0d351.xml - - -// File: namespace_0d365.xml - - -// File: namespace_0d376.xml - - -// File: namespace_0d380.xml - - -// File: namespace_0d390.xml - - -// File: namespace_0d392.xml - - -// File: namespace_0d394.xml - - -// File: namespace_0d4.xml - - -// File: namespace_0d402.xml - - -// File: namespace_0d404.xml - - -// File: namespace_0d406.xml - - -// File: namespace_0d410.xml - - -// File: namespace_0d412.xml - - -// File: namespace_0d422.xml - - -// File: namespace_0d435.xml - - -// File: namespace_0d444.xml - - -// File: namespace_0d446.xml - - -// File: namespace_0d462.xml - - -// File: namespace_0d483.xml - - -// File: namespace_0d490.xml - - -// File: namespace_0d499.xml - - -// File: namespace_0d522.xml - - -// File: namespace_0d530.xml - - -// File: namespace_0d536.xml - - -// File: namespace_0d538.xml - - -// File: namespace_0d611.xml - - -// File: namespace_0d86.xml - - -// File: namespace_0d88.xml - - -// File: namespace_0d90.xml - - -// File: namespace_0d94.xml +// File: namespace_0d0.xml // File: namespacealgo.xml @@ -18141,12 +18279,24 @@ GISAS simulation with an extra long wavelength. %feature("docstring") StandardSimulations::BasicSpecularMM "SpecularSimulation * StandardSimulations::BasicSpecularMM() "; +%feature("docstring") StandardSimulations::BasicSpecularPM "SpecularSimulation * StandardSimulations::BasicSpecularPM() +"; + +%feature("docstring") StandardSimulations::BasicSpecularMP "SpecularSimulation * StandardSimulations::BasicSpecularMP() +"; + %feature("docstring") StandardSimulations::BasicSpecularQPP "SpecularSimulation * StandardSimulations::BasicSpecularQPP() "; %feature("docstring") StandardSimulations::BasicSpecularQMM "SpecularSimulation * StandardSimulations::BasicSpecularQMM() "; +%feature("docstring") StandardSimulations::BasicSpecularQPM "SpecularSimulation * StandardSimulations::BasicSpecularQPM() +"; + +%feature("docstring") StandardSimulations::BasicSpecularQMP "SpecularSimulation * StandardSimulations::BasicSpecularQMP() +"; + %feature("docstring") StandardSimulations::MiniOffSpec "OffSpecSimulation * StandardSimulations::MiniOffSpec() "; @@ -18463,7 +18613,7 @@ global helper function for comparison of axes // File: MultiLayerFuncs_8cpp.xml %feature("docstring") MaterialProfile "std::vector<complex_t> MaterialProfile(const MultiLayer &multilayer, int n_points, double z_min, double z_max) -Calculate average material profile for given multilayer. +Calculate average material profile for given multilayer "; %feature("docstring") DefaultMaterialProfileLimits "std::pair<double, double> DefaultMaterialProfileLimits(const MultiLayer &multilayer) @@ -18480,7 +18630,7 @@ Generate z values (equidistant) for use in MaterialProfile. // File: MultiLayerFuncs_8h.xml %feature("docstring") MaterialProfile "BA_CORE_API_ std::vector<complex_t> MaterialProfile(const MultiLayer &multilayer, int n_points, double z_min, double z_max) -Calculate average material profile for given multilayer. +Calculate average material profile for given multilayer "; %feature("docstring") DefaultMaterialProfileLimits "BA_CORE_API_ std::pair<double, double> DefaultMaterialProfileLimits(const MultiLayer &multilayer) @@ -18929,9 +19079,6 @@ Generate z values (equidistant) for use in MaterialProfile. // File: FormFactorLongBoxLorentz_8h.xml -// File: FormFactorPolyhedron_8cpp.xml - - // File: FormFactorPolyhedron_8h.xml @@ -18965,12 +19112,6 @@ Generate z values (equidistant) for use in MaterialProfile. // File: FormFactorTetrahedron_8h.xml -// File: FormFactorTriangle_8cpp.xml - - -// File: FormFactorTriangle_8h.xml - - // File: FormFactorTruncatedCube_8cpp.xml @@ -18989,12 +19130,45 @@ Generate z values (equidistant) for use in MaterialProfile. // File: FormFactorTruncatedSpheroid_8h.xml +// File: IFormFactorPolyhedron_8cpp.xml + + +// File: IFormFactorPolyhedron_8h.xml + + +// File: IFormFactorPrism_8cpp.xml + + +// File: IFormFactorPrism_8h.xml + + // File: IProfileRipple_8cpp.xml // File: IProfileRipple_8h.xml +// File: PolyhedralComponents_8cpp.xml + + +// File: PolyhedralComponents_8h.xml + + +// File: PolyhedralTopology_8h.xml + + +// File: Polyhedron_8cpp.xml + + +// File: Polyhedron_8h.xml + + +// File: Prism_8cpp.xml + + +// File: Prism_8h.xml + + // File: Ripples_8cpp.xml @@ -19534,6 +19708,24 @@ magnetization (in A/m) // File: SlicedFormFactorList_8h.xml +// File: SpecularMagneticNewNCStrategy_8cpp.xml + + +// File: SpecularMagneticNewNCStrategy_8h.xml + + +// File: SpecularMagneticNewStrategy_8cpp.xml + + +// File: SpecularMagneticNewStrategy_8h.xml + + +// File: SpecularMagneticNewTanhStrategy_8cpp.xml + + +// File: SpecularMagneticNewTanhStrategy_8h.xml + + // File: SpecularMagneticOldStrategy_8cpp.xml @@ -19820,6 +20012,12 @@ Creates averaged material. Square refractive index of returned material is arith // File: MatrixRTCoefficients__v2_8h.xml +// File: MatrixRTCoefficients__v3_8cpp.xml + + +// File: MatrixRTCoefficients__v3_8h.xml + + // File: ScalarRTCoefficients_8h.xml @@ -20092,6 +20290,12 @@ Generate vertices of centered ellipse with given semi-axes at height z. // File: CylindersBuilder_8h.xml +// File: FeNiBiLayerBuilder_8cpp.xml + + +// File: FeNiBiLayerBuilder_8h.xml + + // File: HomogeneousMultilayerBuilder_8cpp.xml diff --git a/auto/Wrap/doxygen_fit.i b/auto/Wrap/doxygen_fit.i index 26ba7ec8e32252fa92dd7b41f59d33c3304e7617..3c1ed3628364ff2f5b8e3af475d1b7531eb2d023 100644 --- a/auto/Wrap/doxygen_fit.i +++ b/auto/Wrap/doxygen_fit.i @@ -1375,28 +1375,7 @@ Internal state of a WallclockTimer object. "; -// File: namespace_0d11.xml - - -// File: namespace_0d25.xml - - -// File: namespace_0d29.xml - - -// File: namespace_0d31.xml - - -// File: namespace_0d35.xml - - -// File: namespace_0d37.xml - - -// File: namespace_0d4.xml - - -// File: namespace_0d41.xml +// File: namespace_0d0.xml // File: namespaceFit.xml diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py index 111aa9b7c76e6adc2c36df68d63ec1e4ac5d45bc..537cbe73e2e89d387af79a2b8ccaa0eac92e8c2d 100644 --- a/auto/Wrap/libBornAgainCore.py +++ b/auto/Wrap/libBornAgainCore.py @@ -8166,13 +8166,9 @@ class IFormFactor(ISample): _libBornAgainCore.IFormFactor_swigregister(IFormFactor) -def CreateTransformedFormFactor(formfactor, rot, translation): - r""" - CreateTransformedFormFactor(IFormFactor formfactor, IRotation rot, kvector_t translation) -> IFormFactor - IFormFactor* CreateTransformedFormFactor(const IFormFactor &formfactor, const IRotation &rot, kvector_t translation) - - """ - return _libBornAgainCore.CreateTransformedFormFactor(formfactor, rot, translation) +def createTransformedFormFactor(formfactor, rot, translation): + r"""createTransformedFormFactor(IFormFactor formfactor, IRotation rot, kvector_t translation) -> IFormFactor""" + return _libBornAgainCore.createTransformedFormFactor(formfactor, rot, translation) class IFormFactorBorn(IFormFactor): r""" @@ -14552,261 +14548,13 @@ class RoughnessModel(object): # Register RoughnessModel in _libBornAgainCore: _libBornAgainCore.RoughnessModel_swigregister(RoughnessModel) -class PolygonalTopology(object): - r""" - - - For internal use in PolyhedralFace. - - C++ includes: FormFactorPolyhedron.h - - """ - - thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") - __repr__ = _swig_repr - vertexIndices = property(_libBornAgainCore.PolygonalTopology_vertexIndices_get, _libBornAgainCore.PolygonalTopology_vertexIndices_set, doc=r"""vertexIndices : std::vector<(int,std::allocator<(int)>)>""") - symmetry_S2 = property(_libBornAgainCore.PolygonalTopology_symmetry_S2_get, _libBornAgainCore.PolygonalTopology_symmetry_S2_set, doc=r"""symmetry_S2 : bool""") - - def __init__(self): - r""" - __init__(PolygonalTopology self) -> PolygonalTopology - - - For internal use in PolyhedralFace. - - C++ includes: FormFactorPolyhedron.h - - """ - _libBornAgainCore.PolygonalTopology_swiginit(self, _libBornAgainCore.new_PolygonalTopology()) - __swig_destroy__ = _libBornAgainCore.delete_PolygonalTopology - -# Register PolygonalTopology in _libBornAgainCore: -_libBornAgainCore.PolygonalTopology_swigregister(PolygonalTopology) - -class PolyhedralTopology(object): - r""" - - - For internal use in FormFactorPolyhedron. - - C++ includes: FormFactorPolyhedron.h - - """ - - thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") - __repr__ = _swig_repr - faces = property(_libBornAgainCore.PolyhedralTopology_faces_get, _libBornAgainCore.PolyhedralTopology_faces_set, doc=r"""faces : std::vector<(PolygonalTopology,std::allocator<(PolygonalTopology)>)>""") - symmetry_Ci = property(_libBornAgainCore.PolyhedralTopology_symmetry_Ci_get, _libBornAgainCore.PolyhedralTopology_symmetry_Ci_set, doc=r"""symmetry_Ci : bool""") - - def __init__(self): - r""" - __init__(PolyhedralTopology self) -> PolyhedralTopology - - - For internal use in FormFactorPolyhedron. - - C++ includes: FormFactorPolyhedron.h - - """ - _libBornAgainCore.PolyhedralTopology_swiginit(self, _libBornAgainCore.new_PolyhedralTopology()) - __swig_destroy__ = _libBornAgainCore.delete_PolyhedralTopology - -# Register PolyhedralTopology in _libBornAgainCore: -_libBornAgainCore.PolyhedralTopology_swigregister(PolyhedralTopology) - -class PolyhedralEdge(object): - r""" - - - One edge of a polygon, for form factor computation. - - C++ includes: FormFactorPolyhedron.h - - """ - - thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") - __repr__ = _swig_repr - - def __init__(self, _Vlow, _Vhig): - r""" - __init__(PolyhedralEdge self, kvector_t _Vlow, kvector_t _Vhig) -> PolyhedralEdge - PolyhedralEdge::PolyhedralEdge(const kvector_t _Vlow, const kvector_t _Vhig) - - """ - _libBornAgainCore.PolyhedralEdge_swiginit(self, _libBornAgainCore.new_PolyhedralEdge(_Vlow, _Vhig)) - - def E(self): - r""" - E(PolyhedralEdge self) -> kvector_t - kvector_t PolyhedralEdge::E() const - - """ - return _libBornAgainCore.PolyhedralEdge_E(self) - - def R(self): - r""" - R(PolyhedralEdge self) -> kvector_t - kvector_t PolyhedralEdge::R() const - - """ - return _libBornAgainCore.PolyhedralEdge_R(self) - - def qE(self, q): - r""" - qE(PolyhedralEdge self, cvector_t q) -> complex_t - complex_t PolyhedralEdge::qE(cvector_t q) const - - """ - return _libBornAgainCore.PolyhedralEdge_qE(self, q) - - def qR(self, q): - r""" - qR(PolyhedralEdge self, cvector_t q) -> complex_t - complex_t PolyhedralEdge::qR(cvector_t q) const - - """ - return _libBornAgainCore.PolyhedralEdge_qR(self, q) - - def contrib(self, m, qpa, qrperp): - r""" - contrib(PolyhedralEdge self, int m, cvector_t qpa, complex_t qrperp) -> complex_t - complex_t PolyhedralEdge::contrib(int m, cvector_t qpa, complex_t qrperp) const - - Returns sum_l=0^M/2 u^2l v^(M-2l) / (2l+1)!(M-2l)! - vperp^M/M! - - """ - return _libBornAgainCore.PolyhedralEdge_contrib(self, m, qpa, qrperp) - __swig_destroy__ = _libBornAgainCore.delete_PolyhedralEdge - -# Register PolyhedralEdge in _libBornAgainCore: -_libBornAgainCore.PolyhedralEdge_swigregister(PolyhedralEdge) - -class PolyhedralFace(object): - r""" - - - A polygon, for form factor computation. - - C++ includes: FormFactorPolyhedron.h - - """ - - thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") - __repr__ = _swig_repr - - @staticmethod - def diameter(V): - r"""diameter(vector_kvector_t V) -> double""" - return _libBornAgainCore.PolyhedralFace_diameter(V) - - def __init__(self, *args): - r""" - __init__(PolyhedralFace self, vector_kvector_t _V=std::vector< kvector_t >(), bool _sym_S2=False) -> PolyhedralFace - PolyhedralFace::PolyhedralFace(const std::vector< kvector_t > &_V=std::vector< kvector_t >(), bool _sym_S2=false) - - Sets internal variables for given vertex chain. - - Parameters: - ----------- - - V: - oriented vertex list - - _sym_S2: - true if face has a perpedicular two-fold symmetry axis - - """ - _libBornAgainCore.PolyhedralFace_swiginit(self, _libBornAgainCore.new_PolyhedralFace(*args)) - - def area(self): - r""" - area(PolyhedralFace self) -> double - double PolyhedralFace::area() const - - """ - return _libBornAgainCore.PolyhedralFace_area(self) - - def pyramidalVolume(self): - r""" - pyramidalVolume(PolyhedralFace self) -> double - double PolyhedralFace::pyramidalVolume() const - - """ - return _libBornAgainCore.PolyhedralFace_pyramidalVolume(self) - - def radius3d(self): - r""" - radius3d(PolyhedralFace self) -> double - double PolyhedralFace::radius3d() const - - """ - return _libBornAgainCore.PolyhedralFace_radius3d(self) - - def normalProjectionConj(self, q): - r""" - normalProjectionConj(PolyhedralFace self, cvector_t q) -> complex_t - complex_t PolyhedralFace::normalProjectionConj(cvector_t q) const - - Returns conj(q)*normal [ BasicVector3D::dot is antilinear in 'this' argument]. - - """ - return _libBornAgainCore.PolyhedralFace_normalProjectionConj(self, q) - - def ff_n(self, m, q): - r""" - ff_n(PolyhedralFace self, int m, cvector_t q) -> complex_t - complex_t PolyhedralFace::ff_n(int m, cvector_t q) const - - Returns contribution qn*f_n [of order q^(n+1)] from this face to the polyhedral form factor. - - """ - return _libBornAgainCore.PolyhedralFace_ff_n(self, m, q) - - def ff(self, q, sym_Ci): - r""" - ff(PolyhedralFace self, cvector_t q, bool sym_Ci) -> complex_t - complex_t PolyhedralFace::ff(cvector_t q, bool sym_Ci) const - - Returns the contribution ff(q) of this face to the polyhedral form factor. - - """ - return _libBornAgainCore.PolyhedralFace_ff(self, q, sym_Ci) - - def ff_2D(self, qpa): - r""" - ff_2D(PolyhedralFace self, cvector_t qpa) -> complex_t - complex_t PolyhedralFace::ff_2D(cvector_t qpa) const - - Returns the two-dimensional form factor of this face, for use in a prism. - - """ - return _libBornAgainCore.PolyhedralFace_ff_2D(self, qpa) - - def assert_Ci(self, other): - r""" - assert_Ci(PolyhedralFace self, PolyhedralFace other) - void PolyhedralFace::assert_Ci(const PolyhedralFace &other) const - - Throws if deviation from inversion symmetry is detected. Does not check vertices. - - """ - return _libBornAgainCore.PolyhedralFace_assert_Ci(self, other) - __swig_destroy__ = _libBornAgainCore.delete_PolyhedralFace - -# Register PolyhedralFace in _libBornAgainCore: -_libBornAgainCore.PolyhedralFace_swigregister(PolyhedralFace) - -def PolyhedralFace_diameter(V): - r"""PolyhedralFace_diameter(vector_kvector_t V) -> double""" - return _libBornAgainCore.PolyhedralFace_diameter(V) - -class FormFactorPolyhedron(IFormFactorBorn): +class IFormFactorPolyhedron(IFormFactorBorn): r""" A polyhedron, for form factor computation. - C++ includes: FormFactorPolyhedron.h + C++ includes: IFormFactorPolyhedron.h """ @@ -14815,88 +14563,86 @@ class FormFactorPolyhedron(IFormFactorBorn): def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract") __repr__ = _swig_repr + __swig_destroy__ = _libBornAgainCore.delete_IFormFactorPolyhedron def bottomZ(self, rotation): r""" - bottomZ(FormFactorPolyhedron self, IRotation rotation) -> double - double FormFactorPolyhedron::bottomZ(const IRotation &rotation) const override final + bottomZ(IFormFactorPolyhedron self, IRotation rotation) -> double + double IFormFactorPolyhedron::bottomZ(const IRotation &rotation) const override final Returns the z-coordinate of the lowest point in this shape after a given rotation. """ - return _libBornAgainCore.FormFactorPolyhedron_bottomZ(self, rotation) + return _libBornAgainCore.IFormFactorPolyhedron_bottomZ(self, rotation) def topZ(self, rotation): r""" - topZ(FormFactorPolyhedron self, IRotation rotation) -> double - double FormFactorPolyhedron::topZ(const IRotation &rotation) const override final + topZ(IFormFactorPolyhedron self, IRotation rotation) -> double + double IFormFactorPolyhedron::topZ(const IRotation &rotation) const override final Returns the z-coordinate of the lowest point in this shape after a given rotation. """ - return _libBornAgainCore.FormFactorPolyhedron_topZ(self, rotation) + return _libBornAgainCore.IFormFactorPolyhedron_topZ(self, rotation) def evaluate_for_q(self, q): r""" - evaluate_for_q(FormFactorPolyhedron self, cvector_t q) -> complex_t - complex_t FormFactorPolyhedron::evaluate_for_q(cvector_t q) const override final + evaluate_for_q(IFormFactorPolyhedron self, cvector_t q) -> complex_t + complex_t IFormFactorPolyhedron::evaluate_for_q(cvector_t q) const override final - Returns the form factor F(q) of this polyhedron, respecting the offset z_bottom. + 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. """ - return _libBornAgainCore.FormFactorPolyhedron_evaluate_for_q(self, q) + return _libBornAgainCore.IFormFactorPolyhedron_evaluate_for_q(self, q) def evaluate_centered(self, q): r""" - evaluate_centered(FormFactorPolyhedron self, cvector_t q) -> complex_t - complex_t FormFactorPolyhedron::evaluate_centered(cvector_t q) const - - Returns the form factor F(q) of this polyhedron, with origin at z=0. + evaluate_centered(IFormFactorPolyhedron self, cvector_t q) -> complex_t + complex_t IFormFactorPolyhedron::evaluate_centered(cvector_t q) const """ - return _libBornAgainCore.FormFactorPolyhedron_evaluate_centered(self, q) + return _libBornAgainCore.IFormFactorPolyhedron_evaluate_centered(self, q) def volume(self): r""" - volume(FormFactorPolyhedron self) -> double - double FormFactorPolyhedron::volume() const override final + volume(IFormFactorPolyhedron self) -> double + double IFormFactorPolyhedron::volume() const override final Returns the total volume of the particle of this form factor's shape. """ - return _libBornAgainCore.FormFactorPolyhedron_volume(self) + return _libBornAgainCore.IFormFactorPolyhedron_volume(self) def radialExtension(self): r""" - radialExtension(FormFactorPolyhedron self) -> double - double FormFactorPolyhedron::radialExtension() const override final + radialExtension(IFormFactorPolyhedron self) -> double + double IFormFactorPolyhedron::radialExtension() const override final Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations """ - return _libBornAgainCore.FormFactorPolyhedron_radialExtension(self) + return _libBornAgainCore.IFormFactorPolyhedron_radialExtension(self) def assert_platonic(self): r""" - assert_platonic(FormFactorPolyhedron self) - void FormFactorPolyhedron::assert_platonic() const + assert_platonic(IFormFactorPolyhedron self) + void IFormFactorPolyhedron::assert_platonic() const Assertions for Platonic solid. """ - return _libBornAgainCore.FormFactorPolyhedron_assert_platonic(self) - __swig_destroy__ = _libBornAgainCore.delete_FormFactorPolyhedron + return _libBornAgainCore.IFormFactorPolyhedron_assert_platonic(self) -# Register FormFactorPolyhedron in _libBornAgainCore: -_libBornAgainCore.FormFactorPolyhedron_swigregister(FormFactorPolyhedron) +# Register IFormFactorPolyhedron in _libBornAgainCore: +_libBornAgainCore.IFormFactorPolyhedron_swigregister(IFormFactorPolyhedron) -class FormFactorPolygonalPrism(IFormFactorBorn): +class IFormFactorPrism(IFormFactorBorn): r""" A prism with a polygonal base, for form factor computation. - C++ includes: FormFactorPolyhedron.h + C++ includes: IFormFactorPrism.h """ @@ -14905,118 +14651,68 @@ class FormFactorPolygonalPrism(IFormFactorBorn): def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract") __repr__ = _swig_repr + __swig_destroy__ = _libBornAgainCore.delete_IFormFactorPrism def bottomZ(self, rotation): r""" - bottomZ(FormFactorPolygonalPrism self, IRotation rotation) -> double - double FormFactorPolygonalPrism::bottomZ(const IRotation &rotation) const override final + bottomZ(IFormFactorPrism self, IRotation rotation) -> double + double IFormFactorPrism::bottomZ(const IRotation &rotation) const override final Returns the z-coordinate of the lowest point in this shape after a given rotation. """ - return _libBornAgainCore.FormFactorPolygonalPrism_bottomZ(self, rotation) + return _libBornAgainCore.IFormFactorPrism_bottomZ(self, rotation) def topZ(self, rotation): r""" - topZ(FormFactorPolygonalPrism self, IRotation rotation) -> double - double FormFactorPolygonalPrism::topZ(const IRotation &rotation) const override final + topZ(IFormFactorPrism self, IRotation rotation) -> double + double IFormFactorPrism::topZ(const IRotation &rotation) const override final Returns the z-coordinate of the lowest point in this shape after a given rotation. """ - return _libBornAgainCore.FormFactorPolygonalPrism_topZ(self, rotation) + return _libBornAgainCore.IFormFactorPrism_topZ(self, rotation) def evaluate_for_q(self, q): r""" - evaluate_for_q(FormFactorPolygonalPrism self, cvector_t q) -> complex_t - complex_t FormFactorPolygonalPrism::evaluate_for_q(cvector_t q) const override + evaluate_for_q(IFormFactorPrism self, cvector_t q) -> complex_t + complex_t IFormFactorPrism::evaluate_for_q(cvector_t q) const override Returns the form factor F(q) of this polyhedron, respecting the offset height/2. """ - return _libBornAgainCore.FormFactorPolygonalPrism_evaluate_for_q(self, q) + return _libBornAgainCore.IFormFactorPrism_evaluate_for_q(self, q) def volume(self): r""" - volume(FormFactorPolygonalPrism self) -> double - double FormFactorPolygonalPrism::volume() const override + volume(IFormFactorPrism self) -> double + double IFormFactorPrism::volume() const override Returns the volume of this prism. """ - return _libBornAgainCore.FormFactorPolygonalPrism_volume(self) - - def getHeight(self): - r""" - getHeight(FormFactorPolygonalPrism self) -> double - double FormFactorPolygonalPrism::getHeight() const - - """ - return _libBornAgainCore.FormFactorPolygonalPrism_getHeight(self) + return _libBornAgainCore.IFormFactorPrism_volume(self) def radialExtension(self): r""" - radialExtension(FormFactorPolygonalPrism self) -> double - virtual double FormFactorPolygonalPrism::radialExtension() const override + radialExtension(IFormFactorPrism self) -> double + double IFormFactorPrism::radialExtension() const override Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations """ - return _libBornAgainCore.FormFactorPolygonalPrism_radialExtension(self) - __swig_destroy__ = _libBornAgainCore.delete_FormFactorPolygonalPrism - -# Register FormFactorPolygonalPrism in _libBornAgainCore: -_libBornAgainCore.FormFactorPolygonalPrism_swigregister(FormFactorPolygonalPrism) - -class FormFactorPolygonalSurface(IFormFactorBorn): - r""" - - - A polygonal surface, for testing form factor computations. - - C++ includes: FormFactorPolyhedron.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 - - def evaluate_for_q(self, q): - r""" - evaluate_for_q(FormFactorPolygonalSurface self, cvector_t q) -> complex_t - complex_t FormFactorPolygonalSurface::evaluate_for_q(cvector_t q) const override final - - 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. - - """ - return _libBornAgainCore.FormFactorPolygonalSurface_evaluate_for_q(self, q) + return _libBornAgainCore.IFormFactorPrism_radialExtension(self) - def volume(self): - r""" - volume(FormFactorPolygonalSurface self) -> double - double FormFactorPolygonalSurface::volume() const override - - Returns the total volume of the particle of this form factor's shape. - - """ - return _libBornAgainCore.FormFactorPolygonalSurface_volume(self) - - def radialExtension(self): + def getHeight(self): r""" - radialExtension(FormFactorPolygonalSurface self) -> double - double FormFactorPolygonalSurface::radialExtension() const override final - - Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations + getHeight(IFormFactorPrism self) -> double + double IFormFactorPrism::getHeight() const """ - return _libBornAgainCore.FormFactorPolygonalSurface_radialExtension(self) - __swig_destroy__ = _libBornAgainCore.delete_FormFactorPolygonalSurface + return _libBornAgainCore.IFormFactorPrism_getHeight(self) -# Register FormFactorPolygonalSurface in _libBornAgainCore: -_libBornAgainCore.FormFactorPolygonalSurface_swigregister(FormFactorPolygonalSurface) +# Register IFormFactorPrism in _libBornAgainCore: +_libBornAgainCore.IFormFactorPrism_swigregister(IFormFactorPrism) class IProfileRipple(IFormFactorBorn): r""" @@ -15150,7 +14846,7 @@ class ISawtoothRipple(IProfileRipple): # Register ISawtoothRipple in _libBornAgainCore: _libBornAgainCore.ISawtoothRipple_swigregister(ISawtoothRipple) -class FormFactorAnisoPyramid(FormFactorPolyhedron): +class FormFactorAnisoPyramid(IFormFactorPolyhedron): r""" @@ -15228,7 +14924,7 @@ class FormFactorAnisoPyramid(FormFactorPolyhedron): # Register FormFactorAnisoPyramid in _libBornAgainCore: _libBornAgainCore.FormFactorAnisoPyramid_swigregister(FormFactorAnisoPyramid) -class FormFactorBox(FormFactorPolygonalPrism): +class FormFactorBox(IFormFactorPrism): r""" @@ -15291,7 +14987,7 @@ class FormFactorBox(FormFactorPolygonalPrism): volume(FormFactorBox self) -> double double FormFactorBox::volume() const override final - Returns the volume of this prism. + Returns the total volume of the particle of this form factor's shape. """ return _libBornAgainCore.FormFactorBox_volume(self) @@ -15311,7 +15007,7 @@ class FormFactorBox(FormFactorPolygonalPrism): evaluate_for_q(FormFactorBox self, cvector_t q) -> complex_t complex_t FormFactorBox::evaluate_for_q(cvector_t q) const override final - Returns the form factor F(q) of this polyhedron, respecting the offset height/2. + 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. """ return _libBornAgainCore.FormFactorBox_evaluate_for_q(self, q) @@ -15320,7 +15016,7 @@ class FormFactorBox(FormFactorPolygonalPrism): # Register FormFactorBox in _libBornAgainCore: _libBornAgainCore.FormFactorBox_swigregister(FormFactorBox) -class FormFactorCantellatedCube(FormFactorPolyhedron): +class FormFactorCantellatedCube(IFormFactorPolyhedron): r""" @@ -15472,7 +15168,7 @@ class FormFactorCone(IFormFactorBorn): # Register FormFactorCone in _libBornAgainCore: _libBornAgainCore.FormFactorCone_swigregister(FormFactorCone) -class FormFactorCone6(FormFactorPolyhedron): +class FormFactorCone6(IFormFactorPolyhedron): r""" @@ -15680,7 +15376,7 @@ class FormFactorCosineRippleLorentz(ICosineRipple): # Register FormFactorCosineRippleLorentz in _libBornAgainCore: _libBornAgainCore.FormFactorCosineRippleLorentz_swigregister(FormFactorCosineRippleLorentz) -class FormFactorCuboctahedron(FormFactorPolyhedron): +class FormFactorCuboctahedron(IFormFactorPolyhedron): r""" @@ -15840,7 +15536,7 @@ class FormFactorCylinder(IFormFactorBorn): # Register FormFactorCylinder in _libBornAgainCore: _libBornAgainCore.FormFactorCylinder_swigregister(FormFactorCylinder) -class FormFactorDodecahedron(FormFactorPolyhedron): +class FormFactorDodecahedron(IFormFactorPolyhedron): r""" @@ -16410,7 +16106,7 @@ class FormFactorHollowSphere(IFormFactorBorn): # Register FormFactorHollowSphere in _libBornAgainCore: _libBornAgainCore.FormFactorHollowSphere_swigregister(FormFactorHollowSphere) -class FormFactorIcosahedron(FormFactorPolyhedron): +class FormFactorIcosahedron(IFormFactorPolyhedron): r""" @@ -16644,7 +16340,7 @@ class FormFactorLongBoxLorentz(IFormFactorBorn): # Register FormFactorLongBoxLorentz in _libBornAgainCore: _libBornAgainCore.FormFactorLongBoxLorentz_swigregister(FormFactorLongBoxLorentz) -class FormFactorPrism3(FormFactorPolygonalPrism): +class FormFactorPrism3(IFormFactorPrism): r""" @@ -16698,7 +16394,7 @@ class FormFactorPrism3(FormFactorPolygonalPrism): # Register FormFactorPrism3 in _libBornAgainCore: _libBornAgainCore.FormFactorPrism3_swigregister(FormFactorPrism3) -class FormFactorPrism6(FormFactorPolygonalPrism): +class FormFactorPrism6(IFormFactorPrism): r""" @@ -16752,7 +16448,7 @@ class FormFactorPrism6(FormFactorPolygonalPrism): # Register FormFactorPrism6 in _libBornAgainCore: _libBornAgainCore.FormFactorPrism6_swigregister(FormFactorPrism6) -class FormFactorPyramid(FormFactorPolyhedron): +class FormFactorPyramid(IFormFactorPolyhedron): r""" @@ -16960,7 +16656,7 @@ class FormFactorSawtoothRippleLorentz(ISawtoothRipple): # Register FormFactorSawtoothRippleLorentz in _libBornAgainCore: _libBornAgainCore.FormFactorSawtoothRippleLorentz_swigregister(FormFactorSawtoothRippleLorentz) -class FormFactorTetrahedron(FormFactorPolyhedron): +class FormFactorTetrahedron(IFormFactorPolyhedron): r""" @@ -17030,7 +16726,7 @@ class FormFactorTetrahedron(FormFactorPolyhedron): # Register FormFactorTetrahedron in _libBornAgainCore: _libBornAgainCore.FormFactorTetrahedron_swigregister(FormFactorTetrahedron) -class FormFactorTruncatedCube(FormFactorPolyhedron): +class FormFactorTruncatedCube(IFormFactorPolyhedron): r""" @@ -18434,7 +18130,7 @@ def MaterialProfile_cpp(multilayer, n_points, z_min, z_max): MaterialProfile_cpp(MultiLayer multilayer, int n_points, double z_min, double z_max) -> vector_complex_t BA_CORE_API_ std::vector<complex_t> MaterialProfile(const MultiLayer &multilayer, int n_points, double z_min, double z_max) - Calculate average material profile for given multilayer. + Calculate average material profile for given multilayer """ return _libBornAgainCore.MaterialProfile_cpp(multilayer, n_points, z_min, z_max) @@ -22158,29 +21854,17 @@ class HexagonalLattice(Lattice2D): _libBornAgainCore.HexagonalLattice_swigregister(HexagonalLattice) -def CreateFCCLattice(lattice_constant, orientation): - r""" - CreateFCCLattice(double lattice_constant, ILatticeOrientation orientation) -> Lattice - Lattice LatticeUtils::CreateFCCLattice(double lattice_constant, const ILatticeOrientation &orientation) - - """ - return _libBornAgainCore.CreateFCCLattice(lattice_constant, orientation) +def createFCCLattice(lattice_constant, orientation): + r"""createFCCLattice(double lattice_constant, ILatticeOrientation orientation) -> Lattice""" + return _libBornAgainCore.createFCCLattice(lattice_constant, orientation) -def CreateHCPLattice(a, c, orientation): - r""" - CreateHCPLattice(double a, double c, ILatticeOrientation orientation) -> Lattice - Lattice LatticeUtils::CreateHCPLattice(double a, double c, const ILatticeOrientation &orientation) +def createHCPLattice(a, c, orientation): + r"""createHCPLattice(double a, double c, ILatticeOrientation orientation) -> Lattice""" + return _libBornAgainCore.createHCPLattice(a, c, orientation) - """ - return _libBornAgainCore.CreateHCPLattice(a, c, orientation) - -def CreateBCTLattice(a, c, orientation): - r""" - CreateBCTLattice(double a, double c, ILatticeOrientation orientation) -> Lattice - Lattice LatticeUtils::CreateBCTLattice(double a, double c, const ILatticeOrientation &orientation) - - """ - return _libBornAgainCore.CreateBCTLattice(a, c, orientation) +def createBCTLattice(a, c, orientation): + r"""createBCTLattice(double a, double c, ILatticeOrientation orientation) -> Lattice""" + return _libBornAgainCore.createBCTLattice(a, c, orientation) class Material(object): r""" diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp index da416eb43f72921b3ca28adc4b5ae1e8641d02be..3c24727a700532d4d51bfdf3bad496b9243b81e7 100644 --- a/auto/Wrap/libBornAgainCore_wrap.cpp +++ b/auto/Wrap/libBornAgainCore_wrap.cpp @@ -3184,260 +3184,254 @@ namespace Swig { #define SWIGTYPE_p_FormFactorIcosahedron swig_types[84] #define SWIGTYPE_p_FormFactorLongBoxGauss swig_types[85] #define SWIGTYPE_p_FormFactorLongBoxLorentz swig_types[86] -#define SWIGTYPE_p_FormFactorPolygonalPrism swig_types[87] -#define SWIGTYPE_p_FormFactorPolygonalSurface swig_types[88] -#define SWIGTYPE_p_FormFactorPolyhedron swig_types[89] -#define SWIGTYPE_p_FormFactorPrism3 swig_types[90] -#define SWIGTYPE_p_FormFactorPrism6 swig_types[91] -#define SWIGTYPE_p_FormFactorPyramid swig_types[92] -#define SWIGTYPE_p_FormFactorSawtoothRippleBox swig_types[93] -#define SWIGTYPE_p_FormFactorSawtoothRippleGauss swig_types[94] -#define SWIGTYPE_p_FormFactorSawtoothRippleLorentz swig_types[95] -#define SWIGTYPE_p_FormFactorSphereGaussianRadius swig_types[96] -#define SWIGTYPE_p_FormFactorSphereLogNormalRadius swig_types[97] -#define SWIGTYPE_p_FormFactorTetrahedron swig_types[98] -#define SWIGTYPE_p_FormFactorTruncatedCube swig_types[99] -#define SWIGTYPE_p_FormFactorTruncatedSphere swig_types[100] -#define SWIGTYPE_p_FormFactorTruncatedSpheroid swig_types[101] -#define SWIGTYPE_p_FormFactorWeighted swig_types[102] -#define SWIGTYPE_p_GISASSimulation swig_types[103] -#define SWIGTYPE_p_GaussFisherPeakShape swig_types[104] -#define SWIGTYPE_p_HexagonalLattice swig_types[105] -#define SWIGTYPE_p_Histogram1D swig_types[106] -#define SWIGTYPE_p_Histogram2D swig_types[107] -#define SWIGTYPE_p_HorizontalLine swig_types[108] -#define SWIGTYPE_p_IAbstractParticle swig_types[109] -#define SWIGTYPE_p_IAxis swig_types[110] -#define SWIGTYPE_p_IBackground swig_types[111] -#define SWIGTYPE_p_IChiSquaredModule swig_types[112] -#define SWIGTYPE_p_ICloneable swig_types[113] -#define SWIGTYPE_p_IClusteredParticles swig_types[114] -#define SWIGTYPE_p_ICosineRipple swig_types[115] -#define SWIGTYPE_p_IDetector swig_types[116] -#define SWIGTYPE_p_IDetector2D swig_types[117] -#define SWIGTYPE_p_IDetectorResolution swig_types[118] -#define SWIGTYPE_p_IDistribution1D swig_types[119] -#define SWIGTYPE_p_IFTDecayFunction1D swig_types[120] -#define SWIGTYPE_p_IFTDecayFunction2D swig_types[121] -#define SWIGTYPE_p_IFTDistribution1D swig_types[122] -#define SWIGTYPE_p_IFTDistribution2D swig_types[123] -#define SWIGTYPE_p_IFactoryT_std__string_IMultiLayerBuilder_t swig_types[124] -#define SWIGTYPE_p_IFactoryT_std__string_Simulation_t swig_types[125] -#define SWIGTYPE_p_IFootprintFactor swig_types[126] -#define SWIGTYPE_p_IFormFactor swig_types[127] -#define SWIGTYPE_p_IFormFactorBorn swig_types[128] -#define SWIGTYPE_p_IFormFactorDecorator swig_types[129] -#define SWIGTYPE_p_IHistogram swig_types[130] -#define SWIGTYPE_p_IIntensityFunction swig_types[131] -#define SWIGTYPE_p_IInterferenceFunction swig_types[132] -#define SWIGTYPE_p_ILatticeOrientation swig_types[133] -#define SWIGTYPE_p_ILayout swig_types[134] -#define SWIGTYPE_p_IMultiLayerBuilder swig_types[135] -#define SWIGTYPE_p_INode swig_types[136] -#define SWIGTYPE_p_INodeVisitor swig_types[137] -#define SWIGTYPE_p_IObservable swig_types[138] -#define SWIGTYPE_p_IObserver swig_types[139] -#define SWIGTYPE_p_IParameterT_double_t swig_types[140] -#define SWIGTYPE_p_IParameterized swig_types[141] -#define SWIGTYPE_p_IParticle swig_types[142] -#define SWIGTYPE_p_IPeakShape swig_types[143] -#define SWIGTYPE_p_IPixel swig_types[144] -#define SWIGTYPE_p_IProfileRectangularRipple swig_types[145] -#define SWIGTYPE_p_IProfileRipple swig_types[146] -#define SWIGTYPE_p_IResolutionFunction2D swig_types[147] -#define SWIGTYPE_p_IRotation swig_types[148] -#define SWIGTYPE_p_ISample swig_types[149] -#define SWIGTYPE_p_ISawtoothRipple swig_types[150] -#define SWIGTYPE_p_ISelectionRule swig_types[151] -#define SWIGTYPE_p_IShape2D swig_types[152] -#define SWIGTYPE_p_ISpecularScan swig_types[153] -#define SWIGTYPE_p_IUnitConverter swig_types[154] -#define SWIGTYPE_p_IVarianceFunction swig_types[155] -#define SWIGTYPE_p_IdentityRotation swig_types[156] -#define SWIGTYPE_p_Instrument swig_types[157] -#define SWIGTYPE_p_IntensityDataIOFactory swig_types[158] -#define SWIGTYPE_p_IntensityFunctionLog swig_types[159] -#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[160] -#define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[161] -#define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[162] -#define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[163] -#define SWIGTYPE_p_InterferenceFunction2DSuperLattice swig_types[164] -#define SWIGTYPE_p_InterferenceFunction3DLattice swig_types[165] -#define SWIGTYPE_p_InterferenceFunctionFinite2DLattice swig_types[166] -#define SWIGTYPE_p_InterferenceFunctionFinite3DLattice swig_types[167] -#define SWIGTYPE_p_InterferenceFunctionHardDisk swig_types[168] -#define SWIGTYPE_p_InterferenceFunctionNone swig_types[169] -#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[170] -#define SWIGTYPE_p_InterferenceFunctionTwin swig_types[171] -#define SWIGTYPE_p_IsGISAXSDetector swig_types[172] -#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[173] -#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[174] -#define SWIGTYPE_p_IterationInfo swig_types[175] -#define SWIGTYPE_p_Lattice swig_types[176] -#define SWIGTYPE_p_Lattice2D swig_types[177] -#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[178] -#define SWIGTYPE_p_Layer swig_types[179] -#define SWIGTYPE_p_LayerInterface swig_types[180] -#define SWIGTYPE_p_LayerRoughness swig_types[181] -#define SWIGTYPE_p_Line swig_types[182] -#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[183] -#define SWIGTYPE_p_Material swig_types[184] -#define SWIGTYPE_p_MesoCrystal swig_types[185] -#define SWIGTYPE_p_MillerIndex swig_types[186] -#define SWIGTYPE_p_MillerIndexOrientation swig_types[187] -#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[188] -#define SWIGTYPE_p_MisesGaussPeakShape swig_types[189] -#define SWIGTYPE_p_MultiLayer swig_types[190] -#define SWIGTYPE_p_NodeMeta swig_types[191] -#define SWIGTYPE_p_OffSpecSimulation swig_types[192] -#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[193] -#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[194] -#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[195] -#define SWIGTYPE_p_OutputDataT_bool_t swig_types[196] -#define SWIGTYPE_p_OutputDataT_double_t swig_types[197] -#define SWIGTYPE_p_ParaMeta swig_types[198] -#define SWIGTYPE_p_ParameterDistribution swig_types[199] -#define SWIGTYPE_p_ParameterPool swig_types[200] -#define SWIGTYPE_p_ParameterSample swig_types[201] -#define SWIGTYPE_p_Particle swig_types[202] -#define SWIGTYPE_p_ParticleComposition swig_types[203] -#define SWIGTYPE_p_ParticleCoreShell swig_types[204] -#define SWIGTYPE_p_ParticleDistribution swig_types[205] -#define SWIGTYPE_p_ParticleLayout swig_types[206] -#define SWIGTYPE_p_ParticleLimits swig_types[207] -#define SWIGTYPE_p_PoissonNoiseBackground swig_types[208] -#define SWIGTYPE_p_Polygon swig_types[209] -#define SWIGTYPE_p_PolygonPrivate swig_types[210] -#define SWIGTYPE_p_PolygonalTopology swig_types[211] -#define SWIGTYPE_p_PolyhedralEdge swig_types[212] -#define SWIGTYPE_p_PolyhedralFace swig_types[213] -#define SWIGTYPE_p_PolyhedralTopology swig_types[214] -#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[215] -#define SWIGTYPE_p_PyBuilderCallback swig_types[216] -#define SWIGTYPE_p_PyObserverCallback swig_types[217] -#define SWIGTYPE_p_QSpecScan swig_types[218] -#define SWIGTYPE_p_RangedDistribution swig_types[219] -#define SWIGTYPE_p_RangedDistributionCosine swig_types[220] -#define SWIGTYPE_p_RangedDistributionGate swig_types[221] -#define SWIGTYPE_p_RangedDistributionGaussian swig_types[222] -#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[223] -#define SWIGTYPE_p_RangedDistributionLorentz swig_types[224] -#define SWIGTYPE_p_RealLimits swig_types[225] -#define SWIGTYPE_p_RealParameter swig_types[226] -#define SWIGTYPE_p_Rectangle swig_types[227] -#define SWIGTYPE_p_RectangularDetector swig_types[228] -#define SWIGTYPE_p_RectangularPixel swig_types[229] -#define SWIGTYPE_p_RegionOfInterest swig_types[230] -#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[231] -#define SWIGTYPE_p_RotationEuler swig_types[232] -#define SWIGTYPE_p_RotationX swig_types[233] -#define SWIGTYPE_p_RotationY swig_types[234] -#define SWIGTYPE_p_RotationZ swig_types[235] -#define SWIGTYPE_p_RoughnessModelWrap swig_types[236] -#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[237] -#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[238] -#define SWIGTYPE_p_SampleBuilderFactory swig_types[239] -#define SWIGTYPE_p_ScanResolution swig_types[240] -#define SWIGTYPE_p_SimpleSelectionRule swig_types[241] -#define SWIGTYPE_p_Simulation swig_types[242] -#define SWIGTYPE_p_Simulation2D swig_types[243] -#define SWIGTYPE_p_SimulationFactory swig_types[244] -#define SWIGTYPE_p_SimulationOptions swig_types[245] -#define SWIGTYPE_p_SimulationResult swig_types[246] -#define SWIGTYPE_p_SlicedParticle swig_types[247] -#define SWIGTYPE_p_SlicingEffects swig_types[248] -#define SWIGTYPE_p_SpecularDetector1D swig_types[249] -#define SWIGTYPE_p_SpecularSimulation swig_types[250] -#define SWIGTYPE_p_SphericalDetector swig_types[251] -#define SWIGTYPE_p_SquareLattice swig_types[252] -#define SWIGTYPE_p_ThreadInfo swig_types[253] -#define SWIGTYPE_p_Transform3D swig_types[254] -#define SWIGTYPE_p_VariableBinAxis swig_types[255] -#define SWIGTYPE_p_VarianceConstantFunction swig_types[256] -#define SWIGTYPE_p_VarianceSimFunction swig_types[257] -#define SWIGTYPE_p_VerticalLine swig_types[258] -#define SWIGTYPE_p_WavevectorInfo swig_types[259] -#define SWIGTYPE_p_ZLimits swig_types[260] -#define SWIGTYPE_p_allocator_type swig_types[261] -#define SWIGTYPE_p_bool swig_types[262] -#define SWIGTYPE_p_char swig_types[263] -#define SWIGTYPE_p_const_iterator swig_types[264] -#define SWIGTYPE_p_corr_matrix_t swig_types[265] -#define SWIGTYPE_p_difference_type swig_types[266] -#define SWIGTYPE_p_double swig_types[267] -#define SWIGTYPE_p_first_type swig_types[268] -#define SWIGTYPE_p_int swig_types[269] -#define SWIGTYPE_p_iterator swig_types[270] -#define SWIGTYPE_p_key_type swig_types[271] -#define SWIGTYPE_p_long_long swig_types[272] -#define SWIGTYPE_p_mapped_type swig_types[273] -#define SWIGTYPE_p_observer_t swig_types[274] -#define SWIGTYPE_p_p_PyObject swig_types[275] -#define SWIGTYPE_p_parameters_t swig_types[276] -#define SWIGTYPE_p_second_type swig_types[277] -#define SWIGTYPE_p_short swig_types[278] -#define SWIGTYPE_p_signed_char swig_types[279] -#define SWIGTYPE_p_size_type swig_types[280] -#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[281] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[282] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[283] -#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[284] -#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[285] -#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[286] -#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[287] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[288] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[289] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[290] -#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[291] -#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[292] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[293] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[294] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[295] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[296] -#define SWIGTYPE_p_std__complexT_double_t swig_types[297] -#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[298] -#define SWIGTYPE_p_std__functionT_Simulation_pfF_t swig_types[299] -#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[300] -#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[301] -#define SWIGTYPE_p_std__invalid_argument swig_types[302] -#define SWIGTYPE_p_std__lessT_std__string_t swig_types[303] -#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[304] -#define SWIGTYPE_p_std__pairT_double_double_t swig_types[305] -#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[306] -#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[307] -#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[308] -#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[309] -#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[310] -#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[311] -#define SWIGTYPE_p_std__vectorT_HomogeneousRegion_std__allocatorT_HomogeneousRegion_t_t swig_types[312] -#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[313] -#define SWIGTYPE_p_std__vectorT_ILayout_const_p_std__allocatorT_ILayout_const_p_t_t swig_types[314] -#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[315] -#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[316] -#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[317] -#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[318] -#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[319] -#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[320] -#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[321] -#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t swig_types[322] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[323] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[324] -#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[325] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[326] -#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[327] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[328] -#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[329] -#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[330] -#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[331] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[332] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[333] -#define SWIGTYPE_p_unsigned_char swig_types[334] -#define SWIGTYPE_p_unsigned_int swig_types[335] -#define SWIGTYPE_p_unsigned_long_long swig_types[336] -#define SWIGTYPE_p_unsigned_short swig_types[337] -#define SWIGTYPE_p_value_type swig_types[338] -static swig_type_info *swig_types[340]; -static swig_module_info swig_module = {swig_types, 339, 0, 0, 0, 0}; +#define SWIGTYPE_p_FormFactorPrism3 swig_types[87] +#define SWIGTYPE_p_FormFactorPrism6 swig_types[88] +#define SWIGTYPE_p_FormFactorPyramid swig_types[89] +#define SWIGTYPE_p_FormFactorSawtoothRippleBox swig_types[90] +#define SWIGTYPE_p_FormFactorSawtoothRippleGauss swig_types[91] +#define SWIGTYPE_p_FormFactorSawtoothRippleLorentz swig_types[92] +#define SWIGTYPE_p_FormFactorSphereGaussianRadius swig_types[93] +#define SWIGTYPE_p_FormFactorSphereLogNormalRadius swig_types[94] +#define SWIGTYPE_p_FormFactorTetrahedron swig_types[95] +#define SWIGTYPE_p_FormFactorTruncatedCube swig_types[96] +#define SWIGTYPE_p_FormFactorTruncatedSphere swig_types[97] +#define SWIGTYPE_p_FormFactorTruncatedSpheroid swig_types[98] +#define SWIGTYPE_p_FormFactorWeighted swig_types[99] +#define SWIGTYPE_p_GISASSimulation swig_types[100] +#define SWIGTYPE_p_GaussFisherPeakShape swig_types[101] +#define SWIGTYPE_p_HexagonalLattice swig_types[102] +#define SWIGTYPE_p_Histogram1D swig_types[103] +#define SWIGTYPE_p_Histogram2D swig_types[104] +#define SWIGTYPE_p_HorizontalLine swig_types[105] +#define SWIGTYPE_p_IAbstractParticle swig_types[106] +#define SWIGTYPE_p_IAxis swig_types[107] +#define SWIGTYPE_p_IBackground swig_types[108] +#define SWIGTYPE_p_IChiSquaredModule swig_types[109] +#define SWIGTYPE_p_ICloneable swig_types[110] +#define SWIGTYPE_p_IClusteredParticles swig_types[111] +#define SWIGTYPE_p_ICosineRipple swig_types[112] +#define SWIGTYPE_p_IDetector swig_types[113] +#define SWIGTYPE_p_IDetector2D swig_types[114] +#define SWIGTYPE_p_IDetectorResolution swig_types[115] +#define SWIGTYPE_p_IDistribution1D swig_types[116] +#define SWIGTYPE_p_IFTDecayFunction1D swig_types[117] +#define SWIGTYPE_p_IFTDecayFunction2D swig_types[118] +#define SWIGTYPE_p_IFTDistribution1D swig_types[119] +#define SWIGTYPE_p_IFTDistribution2D swig_types[120] +#define SWIGTYPE_p_IFactoryT_std__string_IMultiLayerBuilder_t swig_types[121] +#define SWIGTYPE_p_IFactoryT_std__string_Simulation_t swig_types[122] +#define SWIGTYPE_p_IFootprintFactor swig_types[123] +#define SWIGTYPE_p_IFormFactor swig_types[124] +#define SWIGTYPE_p_IFormFactorBorn swig_types[125] +#define SWIGTYPE_p_IFormFactorDecorator swig_types[126] +#define SWIGTYPE_p_IFormFactorPolyhedron swig_types[127] +#define SWIGTYPE_p_IFormFactorPrism swig_types[128] +#define SWIGTYPE_p_IHistogram swig_types[129] +#define SWIGTYPE_p_IIntensityFunction swig_types[130] +#define SWIGTYPE_p_IInterferenceFunction swig_types[131] +#define SWIGTYPE_p_ILatticeOrientation swig_types[132] +#define SWIGTYPE_p_ILayout swig_types[133] +#define SWIGTYPE_p_IMultiLayerBuilder swig_types[134] +#define SWIGTYPE_p_INode swig_types[135] +#define SWIGTYPE_p_INodeVisitor swig_types[136] +#define SWIGTYPE_p_IObservable swig_types[137] +#define SWIGTYPE_p_IObserver swig_types[138] +#define SWIGTYPE_p_IParameterT_double_t swig_types[139] +#define SWIGTYPE_p_IParameterized swig_types[140] +#define SWIGTYPE_p_IParticle swig_types[141] +#define SWIGTYPE_p_IPeakShape swig_types[142] +#define SWIGTYPE_p_IPixel swig_types[143] +#define SWIGTYPE_p_IProfileRectangularRipple swig_types[144] +#define SWIGTYPE_p_IProfileRipple swig_types[145] +#define SWIGTYPE_p_IResolutionFunction2D swig_types[146] +#define SWIGTYPE_p_IRotation swig_types[147] +#define SWIGTYPE_p_ISample swig_types[148] +#define SWIGTYPE_p_ISawtoothRipple swig_types[149] +#define SWIGTYPE_p_ISelectionRule swig_types[150] +#define SWIGTYPE_p_IShape2D swig_types[151] +#define SWIGTYPE_p_ISpecularScan swig_types[152] +#define SWIGTYPE_p_IUnitConverter swig_types[153] +#define SWIGTYPE_p_IVarianceFunction swig_types[154] +#define SWIGTYPE_p_IdentityRotation swig_types[155] +#define SWIGTYPE_p_Instrument swig_types[156] +#define SWIGTYPE_p_IntensityDataIOFactory swig_types[157] +#define SWIGTYPE_p_IntensityFunctionLog swig_types[158] +#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[159] +#define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[160] +#define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[161] +#define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[162] +#define SWIGTYPE_p_InterferenceFunction2DSuperLattice swig_types[163] +#define SWIGTYPE_p_InterferenceFunction3DLattice swig_types[164] +#define SWIGTYPE_p_InterferenceFunctionFinite2DLattice swig_types[165] +#define SWIGTYPE_p_InterferenceFunctionFinite3DLattice swig_types[166] +#define SWIGTYPE_p_InterferenceFunctionHardDisk swig_types[167] +#define SWIGTYPE_p_InterferenceFunctionNone swig_types[168] +#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[169] +#define SWIGTYPE_p_InterferenceFunctionTwin swig_types[170] +#define SWIGTYPE_p_IsGISAXSDetector swig_types[171] +#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[172] +#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[173] +#define SWIGTYPE_p_IterationInfo swig_types[174] +#define SWIGTYPE_p_Lattice swig_types[175] +#define SWIGTYPE_p_Lattice2D swig_types[176] +#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[177] +#define SWIGTYPE_p_Layer swig_types[178] +#define SWIGTYPE_p_LayerInterface swig_types[179] +#define SWIGTYPE_p_LayerRoughness swig_types[180] +#define SWIGTYPE_p_Line swig_types[181] +#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[182] +#define SWIGTYPE_p_Material swig_types[183] +#define SWIGTYPE_p_MesoCrystal swig_types[184] +#define SWIGTYPE_p_MillerIndex swig_types[185] +#define SWIGTYPE_p_MillerIndexOrientation swig_types[186] +#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[187] +#define SWIGTYPE_p_MisesGaussPeakShape swig_types[188] +#define SWIGTYPE_p_MultiLayer swig_types[189] +#define SWIGTYPE_p_NodeMeta swig_types[190] +#define SWIGTYPE_p_OffSpecSimulation swig_types[191] +#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[192] +#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[193] +#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[194] +#define SWIGTYPE_p_OutputDataT_bool_t swig_types[195] +#define SWIGTYPE_p_OutputDataT_double_t swig_types[196] +#define SWIGTYPE_p_ParaMeta swig_types[197] +#define SWIGTYPE_p_ParameterDistribution swig_types[198] +#define SWIGTYPE_p_ParameterPool swig_types[199] +#define SWIGTYPE_p_ParameterSample swig_types[200] +#define SWIGTYPE_p_Particle swig_types[201] +#define SWIGTYPE_p_ParticleComposition swig_types[202] +#define SWIGTYPE_p_ParticleCoreShell swig_types[203] +#define SWIGTYPE_p_ParticleDistribution swig_types[204] +#define SWIGTYPE_p_ParticleLayout swig_types[205] +#define SWIGTYPE_p_ParticleLimits swig_types[206] +#define SWIGTYPE_p_PoissonNoiseBackground swig_types[207] +#define SWIGTYPE_p_Polygon swig_types[208] +#define SWIGTYPE_p_PolygonPrivate swig_types[209] +#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[210] +#define SWIGTYPE_p_PyBuilderCallback swig_types[211] +#define SWIGTYPE_p_PyObserverCallback swig_types[212] +#define SWIGTYPE_p_QSpecScan swig_types[213] +#define SWIGTYPE_p_RangedDistribution swig_types[214] +#define SWIGTYPE_p_RangedDistributionCosine swig_types[215] +#define SWIGTYPE_p_RangedDistributionGate swig_types[216] +#define SWIGTYPE_p_RangedDistributionGaussian swig_types[217] +#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[218] +#define SWIGTYPE_p_RangedDistributionLorentz swig_types[219] +#define SWIGTYPE_p_RealLimits swig_types[220] +#define SWIGTYPE_p_RealParameter swig_types[221] +#define SWIGTYPE_p_Rectangle swig_types[222] +#define SWIGTYPE_p_RectangularDetector swig_types[223] +#define SWIGTYPE_p_RectangularPixel swig_types[224] +#define SWIGTYPE_p_RegionOfInterest swig_types[225] +#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[226] +#define SWIGTYPE_p_RotationEuler swig_types[227] +#define SWIGTYPE_p_RotationX swig_types[228] +#define SWIGTYPE_p_RotationY swig_types[229] +#define SWIGTYPE_p_RotationZ swig_types[230] +#define SWIGTYPE_p_RoughnessModelWrap swig_types[231] +#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[232] +#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[233] +#define SWIGTYPE_p_SampleBuilderFactory swig_types[234] +#define SWIGTYPE_p_ScanResolution swig_types[235] +#define SWIGTYPE_p_SimpleSelectionRule swig_types[236] +#define SWIGTYPE_p_Simulation swig_types[237] +#define SWIGTYPE_p_Simulation2D swig_types[238] +#define SWIGTYPE_p_SimulationFactory swig_types[239] +#define SWIGTYPE_p_SimulationOptions swig_types[240] +#define SWIGTYPE_p_SimulationResult swig_types[241] +#define SWIGTYPE_p_SlicedParticle swig_types[242] +#define SWIGTYPE_p_SlicingEffects swig_types[243] +#define SWIGTYPE_p_SpecularDetector1D swig_types[244] +#define SWIGTYPE_p_SpecularSimulation swig_types[245] +#define SWIGTYPE_p_SphericalDetector swig_types[246] +#define SWIGTYPE_p_SquareLattice swig_types[247] +#define SWIGTYPE_p_ThreadInfo swig_types[248] +#define SWIGTYPE_p_Transform3D swig_types[249] +#define SWIGTYPE_p_VariableBinAxis swig_types[250] +#define SWIGTYPE_p_VarianceConstantFunction swig_types[251] +#define SWIGTYPE_p_VarianceSimFunction swig_types[252] +#define SWIGTYPE_p_VerticalLine swig_types[253] +#define SWIGTYPE_p_WavevectorInfo swig_types[254] +#define SWIGTYPE_p_ZLimits swig_types[255] +#define SWIGTYPE_p_allocator_type swig_types[256] +#define SWIGTYPE_p_bool swig_types[257] +#define SWIGTYPE_p_char swig_types[258] +#define SWIGTYPE_p_const_iterator swig_types[259] +#define SWIGTYPE_p_corr_matrix_t swig_types[260] +#define SWIGTYPE_p_difference_type swig_types[261] +#define SWIGTYPE_p_double swig_types[262] +#define SWIGTYPE_p_first_type swig_types[263] +#define SWIGTYPE_p_int swig_types[264] +#define SWIGTYPE_p_iterator swig_types[265] +#define SWIGTYPE_p_key_type swig_types[266] +#define SWIGTYPE_p_long_long swig_types[267] +#define SWIGTYPE_p_mapped_type swig_types[268] +#define SWIGTYPE_p_observer_t swig_types[269] +#define SWIGTYPE_p_p_PyObject swig_types[270] +#define SWIGTYPE_p_parameters_t swig_types[271] +#define SWIGTYPE_p_second_type swig_types[272] +#define SWIGTYPE_p_short swig_types[273] +#define SWIGTYPE_p_signed_char swig_types[274] +#define SWIGTYPE_p_size_type swig_types[275] +#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[276] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[277] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[278] +#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[279] +#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[280] +#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[281] +#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[282] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[283] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[284] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[285] +#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[286] +#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[287] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[288] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[289] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[290] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[291] +#define SWIGTYPE_p_std__complexT_double_t swig_types[292] +#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[293] +#define SWIGTYPE_p_std__functionT_Simulation_pfF_t swig_types[294] +#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[295] +#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[296] +#define SWIGTYPE_p_std__invalid_argument swig_types[297] +#define SWIGTYPE_p_std__lessT_std__string_t swig_types[298] +#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[299] +#define SWIGTYPE_p_std__pairT_double_double_t swig_types[300] +#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[301] +#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[302] +#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[303] +#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[304] +#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[305] +#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[306] +#define SWIGTYPE_p_std__vectorT_HomogeneousRegion_std__allocatorT_HomogeneousRegion_t_t swig_types[307] +#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[308] +#define SWIGTYPE_p_std__vectorT_ILayout_const_p_std__allocatorT_ILayout_const_p_t_t swig_types[309] +#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[310] +#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[311] +#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[312] +#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[313] +#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[314] +#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[315] +#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t swig_types[316] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[317] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[318] +#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[319] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[320] +#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[321] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[322] +#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[323] +#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[324] +#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[325] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[326] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[327] +#define SWIGTYPE_p_unsigned_char swig_types[328] +#define SWIGTYPE_p_unsigned_int swig_types[329] +#define SWIGTYPE_p_unsigned_long_long swig_types[330] +#define SWIGTYPE_p_unsigned_short swig_types[331] +#define SWIGTYPE_p_value_type swig_types[332] +static swig_type_info *swig_types[334]; +static swig_module_info swig_module = {swig_types, 333, 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) @@ -6997,8 +6991,8 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_ #include "Core/HardParticle/FormFactorIcosahedron.h" #include "Core/HardParticle/FormFactorLongBoxGauss.h" #include "Core/HardParticle/FormFactorLongBoxLorentz.h" -#include "Core/HardParticle/FormFactorPolyhedron.h" -#include "Core/HardParticle/FormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPolyhedron.h" +#include "Core/HardParticle/IFormFactorPrism.h" #include "Core/HardParticle/FormFactorPrism3.h" #include "Core/HardParticle/FormFactorPrism6.h" #include "Core/HardParticle/FormFactorPyramid.h" @@ -69005,7 +68999,7 @@ SWIGINTERN PyObject *IFormFactor_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObje return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_CreateTransformedFormFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_createTransformedFormFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IFormFactor *arg1 = 0 ; IRotation *arg2 = 0 ; @@ -69019,37 +69013,37 @@ SWIGINTERN PyObject *_wrap_CreateTransformedFormFactor(PyObject *SWIGUNUSEDPARM( PyObject *swig_obj[3] ; IFormFactor *result = 0 ; - if (!SWIG_Python_UnpackTuple(args, "CreateTransformedFormFactor", 3, 3, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "createTransformedFormFactor", 3, 3, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_IFormFactor, 0 | 0); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CreateTransformedFormFactor" "', argument " "1"" of type '" "IFormFactor const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "createTransformedFormFactor" "', argument " "1"" of type '" "IFormFactor const &""'"); } if (!argp1) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CreateTransformedFormFactor" "', argument " "1"" of type '" "IFormFactor const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "createTransformedFormFactor" "', argument " "1"" of type '" "IFormFactor const &""'"); } arg1 = reinterpret_cast< IFormFactor * >(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 '" "CreateTransformedFormFactor" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "createTransformedFormFactor" "', argument " "2"" of type '" "IRotation const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CreateTransformedFormFactor" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "createTransformedFormFactor" "', argument " "2"" of type '" "IRotation const &""'"); } arg2 = reinterpret_cast< IRotation * >(argp2); { res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_BasicVector3DT_double_t, 0 | 0); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CreateTransformedFormFactor" "', argument " "3"" of type '" "kvector_t""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "createTransformedFormFactor" "', argument " "3"" of type '" "kvector_t""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CreateTransformedFormFactor" "', argument " "3"" of type '" "kvector_t""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "createTransformedFormFactor" "', argument " "3"" of type '" "kvector_t""'"); } else { kvector_t * temp = reinterpret_cast< kvector_t * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } - result = (IFormFactor *)CreateTransformedFormFactor((IFormFactor const &)*arg1,(IRotation const &)*arg2,arg3); + result = (IFormFactor *)createTransformedFormFactor((IFormFactor const &)*arg1,(IRotation const &)*arg2,arg3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, 0 | 0 ); return resultobj; fail: @@ -90835,995 +90829,20 @@ SWIGINTERN PyObject *RoughnessModel_swigregister(PyObject *SWIGUNUSEDPARM(self), return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_PolygonalTopology_vertexIndices_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_IFormFactorPolyhedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - PolygonalTopology *arg1 = (PolygonalTopology *) 0 ; - std::vector< int,std::allocator< int > > *arg2 = (std::vector< int,std::allocator< int > > *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "PolygonalTopology_vertexIndices_set", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolygonalTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolygonalTopology_vertexIndices_set" "', argument " "1"" of type '" "PolygonalTopology *""'"); - } - arg1 = reinterpret_cast< PolygonalTopology * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolygonalTopology_vertexIndices_set" "', argument " "2"" of type '" "std::vector< int,std::allocator< int > > *""'"); - } - arg2 = reinterpret_cast< std::vector< int,std::allocator< int > > * >(argp2); - if (arg1) (arg1)->vertexIndices = *arg2; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolygonalTopology_vertexIndices_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolygonalTopology *arg1 = (PolygonalTopology *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - std::vector< int,std::allocator< int > > *result = 0 ; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolygonalTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolygonalTopology_vertexIndices_get" "', argument " "1"" of type '" "PolygonalTopology *""'"); - } - arg1 = reinterpret_cast< PolygonalTopology * >(argp1); - result = (std::vector< int,std::allocator< int > > *)& ((arg1)->vertexIndices); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolygonalTopology_symmetry_S2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolygonalTopology *arg1 = (PolygonalTopology *) 0 ; - bool arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - bool val2 ; - int ecode2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "PolygonalTopology_symmetry_S2_set", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolygonalTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolygonalTopology_symmetry_S2_set" "', argument " "1"" of type '" "PolygonalTopology *""'"); - } - arg1 = reinterpret_cast< PolygonalTopology * >(argp1); - ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PolygonalTopology_symmetry_S2_set" "', argument " "2"" of type '" "bool""'"); - } - arg2 = static_cast< bool >(val2); - if (arg1) (arg1)->symmetry_S2 = arg2; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolygonalTopology_symmetry_S2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolygonalTopology *arg1 = (PolygonalTopology *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - bool result; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolygonalTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolygonalTopology_symmetry_S2_get" "', argument " "1"" of type '" "PolygonalTopology *""'"); - } - arg1 = reinterpret_cast< PolygonalTopology * >(argp1); - result = (bool) ((arg1)->symmetry_S2); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_PolygonalTopology(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolygonalTopology *result = 0 ; - - if (!SWIG_Python_UnpackTuple(args, "new_PolygonalTopology", 0, 0, 0)) SWIG_fail; - result = (PolygonalTopology *)new PolygonalTopology(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PolygonalTopology, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_PolygonalTopology(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolygonalTopology *arg1 = (PolygonalTopology *) 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_PolygonalTopology, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PolygonalTopology" "', argument " "1"" of type '" "PolygonalTopology *""'"); - } - arg1 = reinterpret_cast< PolygonalTopology * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *PolygonalTopology_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_PolygonalTopology, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *PolygonalTopology_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - return SWIG_Python_InitShadowInstance(args); -} - -SWIGINTERN PyObject *_wrap_PolyhedralTopology_faces_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralTopology *arg1 = (PolyhedralTopology *) 0 ; - std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *arg2 = (std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralTopology_faces_set", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralTopology_faces_set" "', argument " "1"" of type '" "PolyhedralTopology *""'"); - } - arg1 = reinterpret_cast< PolyhedralTopology * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralTopology_faces_set" "', argument " "2"" of type '" "std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *""'"); - } - arg2 = reinterpret_cast< std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > * >(argp2); - if (arg1) (arg1)->faces = *arg2; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralTopology_faces_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralTopology *arg1 = (PolyhedralTopology *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *result = 0 ; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralTopology_faces_get" "', argument " "1"" of type '" "PolyhedralTopology *""'"); - } - arg1 = reinterpret_cast< PolyhedralTopology * >(argp1); - result = (std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *)& ((arg1)->faces); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralTopology_symmetry_Ci_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralTopology *arg1 = (PolyhedralTopology *) 0 ; - bool arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - bool val2 ; - int ecode2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralTopology_symmetry_Ci_set", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralTopology_symmetry_Ci_set" "', argument " "1"" of type '" "PolyhedralTopology *""'"); - } - arg1 = reinterpret_cast< PolyhedralTopology * >(argp1); - ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PolyhedralTopology_symmetry_Ci_set" "', argument " "2"" of type '" "bool""'"); - } - arg2 = static_cast< bool >(val2); - if (arg1) (arg1)->symmetry_Ci = arg2; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralTopology_symmetry_Ci_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralTopology *arg1 = (PolyhedralTopology *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - bool result; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralTopology, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralTopology_symmetry_Ci_get" "', argument " "1"" of type '" "PolyhedralTopology *""'"); - } - arg1 = reinterpret_cast< PolyhedralTopology * >(argp1); - result = (bool) ((arg1)->symmetry_Ci); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_PolyhedralTopology(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralTopology *result = 0 ; - - if (!SWIG_Python_UnpackTuple(args, "new_PolyhedralTopology", 0, 0, 0)) SWIG_fail; - result = (PolyhedralTopology *)new PolyhedralTopology(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PolyhedralTopology, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_PolyhedralTopology(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralTopology *arg1 = (PolyhedralTopology *) 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_PolyhedralTopology, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PolyhedralTopology" "', argument " "1"" of type '" "PolyhedralTopology *""'"); - } - arg1 = reinterpret_cast< PolyhedralTopology * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *PolyhedralTopology_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_PolyhedralTopology, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *PolyhedralTopology_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - return SWIG_Python_InitShadowInstance(args); -} - -SWIGINTERN PyObject *_wrap_new_PolyhedralEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - kvector_t arg1 ; - kvector_t arg2 ; - void *argp1 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - PolyhedralEdge *result = 0 ; - - if (!SWIG_Python_UnpackTuple(args, "new_PolyhedralEdge", 2, 2, swig_obj)) SWIG_fail; - { - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_BasicVector3DT_double_t, 0 | 0); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PolyhedralEdge" "', argument " "1"" of type '" "kvector_t const""'"); - } - if (!argp1) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_PolyhedralEdge" "', argument " "1"" of type '" "kvector_t const""'"); - } else { - kvector_t * temp = reinterpret_cast< kvector_t * >(argp1); - arg1 = *temp; - if (SWIG_IsNewObj(res1)) delete temp; - } - } - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_double_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_PolyhedralEdge" "', argument " "2"" of type '" "kvector_t const""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_PolyhedralEdge" "', argument " "2"" of type '" "kvector_t const""'"); - } else { - kvector_t * temp = reinterpret_cast< kvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = (PolyhedralEdge *)new PolyhedralEdge(arg1,arg2); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PolyhedralEdge, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralEdge_E(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralEdge *arg1 = (PolyhedralEdge *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - kvector_t result; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralEdge, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralEdge_E" "', argument " "1"" of type '" "PolyhedralEdge const *""'"); - } - arg1 = reinterpret_cast< PolyhedralEdge * >(argp1); - result = ((PolyhedralEdge const *)arg1)->E(); - resultobj = SWIG_NewPointerObj((new kvector_t(static_cast< const kvector_t& >(result))), SWIGTYPE_p_BasicVector3DT_double_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralEdge_R(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralEdge *arg1 = (PolyhedralEdge *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - kvector_t result; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralEdge, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralEdge_R" "', argument " "1"" of type '" "PolyhedralEdge const *""'"); - } - arg1 = reinterpret_cast< PolyhedralEdge * >(argp1); - result = ((PolyhedralEdge const *)arg1)->R(); - resultobj = SWIG_NewPointerObj((new kvector_t(static_cast< const kvector_t& >(result))), SWIGTYPE_p_BasicVector3DT_double_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralEdge_qE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralEdge *arg1 = (PolyhedralEdge *) 0 ; - cvector_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralEdge_qE", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralEdge, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralEdge_qE" "', argument " "1"" of type '" "PolyhedralEdge const *""'"); - } - arg1 = reinterpret_cast< PolyhedralEdge * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralEdge_qE" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralEdge_qE" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = ((PolyhedralEdge const *)arg1)->qE(arg2); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralEdge_qR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralEdge *arg1 = (PolyhedralEdge *) 0 ; - cvector_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralEdge_qR", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralEdge, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralEdge_qR" "', argument " "1"" of type '" "PolyhedralEdge const *""'"); - } - arg1 = reinterpret_cast< PolyhedralEdge * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralEdge_qR" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralEdge_qR" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = ((PolyhedralEdge const *)arg1)->qR(arg2); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralEdge_contrib(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralEdge *arg1 = (PolyhedralEdge *) 0 ; - int arg2 ; - cvector_t arg3 ; - complex_t arg4 ; - void *argp1 = 0 ; - int res1 = 0 ; - int val2 ; - int ecode2 = 0 ; - void *argp3 ; - int res3 = 0 ; - std::complex< double > val4 ; - int ecode4 = 0 ; - PyObject *swig_obj[4] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralEdge_contrib", 4, 4, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralEdge, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralEdge_contrib" "', argument " "1"" of type '" "PolyhedralEdge const *""'"); - } - arg1 = reinterpret_cast< PolyhedralEdge * >(argp1); - ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PolyhedralEdge_contrib" "', argument " "2"" of type '" "int""'"); - } - arg2 = static_cast< int >(val2); - { - res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PolyhedralEdge_contrib" "', argument " "3"" of type '" "cvector_t""'"); - } - if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralEdge_contrib" "', argument " "3"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp3); - arg3 = *temp; - if (SWIG_IsNewObj(res3)) delete temp; - } - } - ecode4 = SWIG_AsVal_std_complex_Sl_double_Sg_(swig_obj[3], &val4); - if (!SWIG_IsOK(ecode4)) { - SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "PolyhedralEdge_contrib" "', argument " "4"" of type '" "complex_t""'"); - } - arg4 = static_cast< complex_t >(val4); - result = ((PolyhedralEdge const *)arg1)->contrib(arg2,arg3,arg4); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_PolyhedralEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralEdge *arg1 = (PolyhedralEdge *) 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_PolyhedralEdge, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PolyhedralEdge" "', argument " "1"" of type '" "PolyhedralEdge *""'"); - } - arg1 = reinterpret_cast< PolyhedralEdge * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *PolyhedralEdge_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_PolyhedralEdge, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *PolyhedralEdge_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - return SWIG_Python_InitShadowInstance(args); -} - -SWIGINTERN PyObject *_wrap_PolyhedralFace_diameter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - std::vector< kvector_t,std::allocator< kvector_t > > *arg1 = 0 ; - int res1 = SWIG_OLDOBJ ; PyObject *swig_obj[1] ; - double result; if (!args) SWIG_fail; swig_obj[0] = args; - { - std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0; - res1 = swig::asptr(swig_obj[0], &ptr); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_diameter" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); - } - if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralFace_diameter" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); - } - arg1 = ptr; - } - result = (double)PolyhedralFace::diameter((std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &)*arg1); - resultobj = SWIG_From_double(static_cast< double >(result)); - if (SWIG_IsNewObj(res1)) delete arg1; - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) delete arg1; - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_PolyhedralFace__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { - PyObject *resultobj = 0; - std::vector< kvector_t,std::allocator< kvector_t > > *arg1 = 0 ; - bool arg2 ; - int res1 = SWIG_OLDOBJ ; - bool val2 ; - int ecode2 = 0 ; - PolyhedralFace *result = 0 ; - - if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; - { - std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0; - res1 = swig::asptr(swig_obj[0], &ptr); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PolyhedralFace" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); - } - if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_PolyhedralFace" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); - } - arg1 = ptr; - } - ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_PolyhedralFace" "', argument " "2"" of type '" "bool""'"); - } - arg2 = static_cast< bool >(val2); - result = (PolyhedralFace *)new PolyhedralFace((std::vector< kvector_t,std::allocator< kvector_t > > const &)*arg1,arg2); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PolyhedralFace, SWIG_POINTER_NEW | 0 ); - if (SWIG_IsNewObj(res1)) delete arg1; - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) delete arg1; - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_PolyhedralFace__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { - PyObject *resultobj = 0; - std::vector< kvector_t,std::allocator< kvector_t > > *arg1 = 0 ; - int res1 = SWIG_OLDOBJ ; - PolyhedralFace *result = 0 ; - - if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; - { - std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0; - res1 = swig::asptr(swig_obj[0], &ptr); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PolyhedralFace" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); - } - if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_PolyhedralFace" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); - } - arg1 = ptr; - } - result = (PolyhedralFace *)new PolyhedralFace((std::vector< kvector_t,std::allocator< kvector_t > > const &)*arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PolyhedralFace, SWIG_POINTER_NEW | 0 ); - if (SWIG_IsNewObj(res1)) delete arg1; - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) delete arg1; - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_PolyhedralFace__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { - PyObject *resultobj = 0; - PolyhedralFace *result = 0 ; - - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; - result = (PolyhedralFace *)new PolyhedralFace(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PolyhedralFace, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_PolyhedralFace(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - - if (!(argc = SWIG_Python_UnpackTuple(args, "new_PolyhedralFace", 0, 2, argv))) SWIG_fail; - --argc; - if (argc == 0) { - return _wrap_new_PolyhedralFace__SWIG_2(self, argc, argv); - } - if (argc == 1) { - int _v; - int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0)); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_new_PolyhedralFace__SWIG_1(self, argc, argv); - } - } - if (argc == 2) { - int _v; - int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0)); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_bool(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_new_PolyhedralFace__SWIG_0(self, argc, argv); - } - } - } - -fail: - SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_PolyhedralFace'.\n" - " Possible C/C++ prototypes are:\n" - " PolyhedralFace::PolyhedralFace(std::vector< kvector_t,std::allocator< kvector_t > > const &,bool)\n" - " PolyhedralFace::PolyhedralFace(std::vector< kvector_t,std::allocator< kvector_t > > const &)\n" - " PolyhedralFace::PolyhedralFace()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 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_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_area" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - result = (double)((PolyhedralFace const *)arg1)->area(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_pyramidalVolume(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 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_PolyhedralFace, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_pyramidalVolume" "', argument " "1"" of type '" "PolyhedralFace const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IFormFactorPolyhedron" "', argument " "1"" of type '" "IFormFactorPolyhedron *""'"); } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - result = (double)((PolyhedralFace const *)arg1)->pyramidalVolume(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_radius3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 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_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_radius3d" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - result = (double)((PolyhedralFace const *)arg1)->radius3d(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_normalProjectionConj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 0 ; - cvector_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralFace_normalProjectionConj", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_normalProjectionConj" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralFace_normalProjectionConj" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralFace_normalProjectionConj" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = ((PolyhedralFace const *)arg1)->normalProjectionConj(arg2); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_ff_n(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 0 ; - int arg2 ; - cvector_t arg3 ; - void *argp1 = 0 ; - int res1 = 0 ; - int val2 ; - int ecode2 = 0 ; - void *argp3 ; - int res3 = 0 ; - PyObject *swig_obj[3] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralFace_ff_n", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_ff_n" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PolyhedralFace_ff_n" "', argument " "2"" of type '" "int""'"); - } - arg2 = static_cast< int >(val2); - { - res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PolyhedralFace_ff_n" "', argument " "3"" of type '" "cvector_t""'"); - } - if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralFace_ff_n" "', argument " "3"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp3); - arg3 = *temp; - if (SWIG_IsNewObj(res3)) delete temp; - } - } - result = ((PolyhedralFace const *)arg1)->ff_n(arg2,arg3); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_ff(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 0 ; - cvector_t arg2 ; - bool arg3 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - bool val3 ; - int ecode3 = 0 ; - PyObject *swig_obj[3] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralFace_ff", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_ff" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralFace_ff" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralFace_ff" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - ecode3 = SWIG_AsVal_bool(swig_obj[2], &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "PolyhedralFace_ff" "', argument " "3"" of type '" "bool""'"); - } - arg3 = static_cast< bool >(val3); - result = ((PolyhedralFace const *)arg1)->ff(arg2,arg3); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_ff_2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 0 ; - cvector_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralFace_ff_2D", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_ff_2D" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralFace_ff_2D" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralFace_ff_2D" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = ((PolyhedralFace const *)arg1)->ff_2D(arg2); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_PolyhedralFace_assert_Ci(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 0 ; - PolyhedralFace *arg2 = 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - - if (!SWIG_Python_UnpackTuple(args, "PolyhedralFace_assert_Ci", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PolyhedralFace, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_assert_Ci" "', argument " "1"" of type '" "PolyhedralFace const *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_PolyhedralFace, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolyhedralFace_assert_Ci" "', argument " "2"" of type '" "PolyhedralFace const &""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolyhedralFace_assert_Ci" "', argument " "2"" of type '" "PolyhedralFace const &""'"); - } - arg2 = reinterpret_cast< PolyhedralFace * >(argp2); - ((PolyhedralFace const *)arg1)->assert_Ci((PolyhedralFace const &)*arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_PolyhedralFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - PolyhedralFace *arg1 = (PolyhedralFace *) 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_PolyhedralFace, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PolyhedralFace" "', argument " "1"" of type '" "PolyhedralFace *""'"); - } - arg1 = reinterpret_cast< PolyhedralFace * >(argp1); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; @@ -91832,20 +90851,9 @@ fail: } -SWIGINTERN PyObject *PolyhedralFace_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_PolyhedralFace, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *PolyhedralFace_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - return SWIG_Python_InitShadowInstance(args); -} - -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_bottomZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_bottomZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 0 ; IRotation *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; @@ -91854,21 +90862,21 @@ SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_bottomZ(PyObject *SWIGUNUSEDPARM PyObject *swig_obj[2] ; double result; - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolyhedron_bottomZ", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolyhedron, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPolyhedron_bottomZ", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_bottomZ" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_bottomZ" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(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 '" "FormFactorPolyhedron_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPolyhedron_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolyhedron_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPolyhedron_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); } arg2 = reinterpret_cast< IRotation * >(argp2); - result = (double)((FormFactorPolyhedron const *)arg1)->bottomZ((IRotation const &)*arg2); + result = (double)((IFormFactorPolyhedron const *)arg1)->bottomZ((IRotation const &)*arg2); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -91876,9 +90884,9 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_topZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_topZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 0 ; IRotation *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; @@ -91887,21 +90895,21 @@ SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_topZ(PyObject *SWIGUNUSEDPARM(se PyObject *swig_obj[2] ; double result; - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolyhedron_topZ", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolyhedron, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPolyhedron_topZ", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_topZ" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_topZ" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(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 '" "FormFactorPolyhedron_topZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPolyhedron_topZ" "', argument " "2"" of type '" "IRotation const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolyhedron_topZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPolyhedron_topZ" "', argument " "2"" of type '" "IRotation const &""'"); } arg2 = reinterpret_cast< IRotation * >(argp2); - result = (double)((FormFactorPolyhedron const *)arg1)->topZ((IRotation const &)*arg2); + result = (double)((IFormFactorPolyhedron const *)arg1)->topZ((IRotation const &)*arg2); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -91909,47 +90917,9 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_evaluate_for_q(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; - cvector_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolyhedron_evaluate_for_q", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolyhedron, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_evaluate_for_q" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); - } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPolyhedron_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolyhedron_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = ((FormFactorPolyhedron const *)arg1)->evaluate_for_q(arg2); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_evaluate_centered(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_evaluate_for_q(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 0 ; cvector_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; @@ -91958,26 +90928,26 @@ SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_evaluate_centered(PyObject *SWIG PyObject *swig_obj[2] ; complex_t result; - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolyhedron_evaluate_centered", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolyhedron, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPolyhedron_evaluate_for_q", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_evaluate_centered" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_evaluate_for_q" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(argp1); { res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPolyhedron_evaluate_centered" "', argument " "2"" of type '" "cvector_t""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPolyhedron_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolyhedron_evaluate_centered" "', argument " "2"" of type '" "cvector_t""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPolyhedron_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); } else { cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } - result = ((FormFactorPolyhedron const *)arg1)->evaluate_centered(arg2); + result = ((IFormFactorPolyhedron const *)arg1)->evaluate_for_q(arg2); resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); return resultobj; fail: @@ -91985,32 +90955,47 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_volume(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_evaluate_centered(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 0 ; + cvector_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; - PyObject *swig_obj[1] ; - double result; + void *argp2 ; + int res2 = 0 ; + PyObject *swig_obj[2] ; + complex_t result; - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolyhedron, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPolyhedron_evaluate_centered", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_volume" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_evaluate_centered" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); - result = (double)((FormFactorPolyhedron const *)arg1)->volume(); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(argp1); + { + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPolyhedron_evaluate_centered" "', argument " "2"" of type '" "cvector_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPolyhedron_evaluate_centered" "', argument " "2"" of type '" "cvector_t""'"); + } else { + cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); + arg2 = *temp; + if (SWIG_IsNewObj(res2)) delete temp; + } + } + result = ((IFormFactorPolyhedron const *)arg1)->evaluate_centered(arg2); + resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_volume(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -92018,12 +91003,12 @@ SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_radialExtension(PyObject *SWIGUN if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolyhedron, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_radialExtension" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_volume" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); - result = (double)((FormFactorPolyhedron const *)arg1)->radialExtension(); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(argp1); + result = (double)((IFormFactorPolyhedron const *)arg1)->volume(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -92031,43 +91016,44 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_assert_platonic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 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_FormFactorPolyhedron, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolyhedron_assert_platonic" "', argument " "1"" of type '" "FormFactorPolyhedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_radialExtension" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); - ((FormFactorPolyhedron const *)arg1)->assert_platonic(); - resultobj = SWIG_Py_Void(); + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(argp1); + result = (double)((IFormFactorPolyhedron const *)arg1)->radialExtension(); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_delete_FormFactorPolyhedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPolyhedron_assert_platonic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ; + IFormFactorPolyhedron *arg1 = (IFormFactorPolyhedron *) 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_FormFactorPolyhedron, SWIG_POINTER_DISOWN | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPolyhedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorPolyhedron" "', argument " "1"" of type '" "FormFactorPolyhedron *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPolyhedron_assert_platonic" "', argument " "1"" of type '" "IFormFactorPolyhedron const *""'"); } - arg1 = reinterpret_cast< FormFactorPolyhedron * >(argp1); - delete arg1; + arg1 = reinterpret_cast< IFormFactorPolyhedron * >(argp1); + ((IFormFactorPolyhedron const *)arg1)->assert_platonic(); resultobj = SWIG_Py_Void(); return resultobj; fail: @@ -92075,49 +91061,38 @@ fail: } -SWIGINTERN PyObject *FormFactorPolyhedron_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *IFormFactorPolyhedron_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_FormFactorPolyhedron, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_IFormFactorPolyhedron, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_bottomZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_IFormFactorPrism(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 0 ; - IRotation *arg2 = 0 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject *swig_obj[2] ; - double result; + PyObject *swig_obj[1] ; - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolygonalPrism_bottomZ", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolygonalPrism, 0 | 0 ); + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalPrism_bottomZ" "', argument " "1"" of type '" "FormFactorPolygonalPrism const *""'"); - } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(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 '" "FormFactorPolygonalPrism_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IFormFactorPrism" "', argument " "1"" of type '" "IFormFactorPrism *""'"); } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolygonalPrism_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); - } - arg2 = reinterpret_cast< IRotation * >(argp2); - result = (double)((FormFactorPolygonalPrism const *)arg1)->bottomZ((IRotation const &)*arg2); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< IFormFactorPrism * >(argp1); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_topZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPrism_bottomZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 0 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ; IRotation *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; @@ -92126,21 +91101,21 @@ SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_topZ(PyObject *SWIGUNUSEDPAR PyObject *swig_obj[2] ; double result; - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolygonalPrism_topZ", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolygonalPrism, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPrism_bottomZ", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalPrism_topZ" "', argument " "1"" of type '" "FormFactorPolygonalPrism const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_bottomZ" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(argp1); + arg1 = reinterpret_cast< IFormFactorPrism * >(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 '" "FormFactorPolygonalPrism_topZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPrism_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolygonalPrism_topZ" "', argument " "2"" of type '" "IRotation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPrism_bottomZ" "', argument " "2"" of type '" "IRotation const &""'"); } arg2 = reinterpret_cast< IRotation * >(argp2); - result = (double)((FormFactorPolygonalPrism const *)arg1)->topZ((IRotation const &)*arg2); + result = (double)((IFormFactorPrism const *)arg1)->bottomZ((IRotation const &)*arg2); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -92148,106 +91123,32 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_evaluate_for_q(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPrism_topZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 0 ; - cvector_t arg2 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ; + IRotation *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 ; + void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; - complex_t result; - - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolygonalPrism_evaluate_for_q", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolygonalPrism, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalPrism_evaluate_for_q" "', argument " "1"" of type '" "FormFactorPolygonalPrism const *""'"); - } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(argp1); - { - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPolygonalPrism_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolygonalPrism_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); - } else { - cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); - arg2 = *temp; - if (SWIG_IsNewObj(res2)) delete temp; - } - } - result = ((FormFactorPolygonalPrism const *)arg1)->evaluate_for_q(arg2); - resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_volume(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 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_FormFactorPolygonalPrism, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPrism_topZ", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalPrism_volume" "', argument " "1"" of type '" "FormFactorPolygonalPrism const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_topZ" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(argp1); - result = (double)((FormFactorPolygonalPrism const *)arg1)->volume(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 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_FormFactorPolygonalPrism, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalPrism_getHeight" "', argument " "1"" of type '" "FormFactorPolygonalPrism const *""'"); + arg1 = reinterpret_cast< IFormFactorPrism * >(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 '" "IFormFactorPrism_topZ" "', argument " "2"" of type '" "IRotation const &""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(argp1); - result = (double)((FormFactorPolygonalPrism const *)arg1)->getHeight(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FormFactorPolygonalPrism_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 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_FormFactorPolygonalPrism, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalPrism_radialExtension" "', argument " "1"" of type '" "FormFactorPolygonalPrism const *""'"); + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPrism_topZ" "', argument " "2"" of type '" "IRotation const &""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(argp1); - result = (double)((FormFactorPolygonalPrism const *)arg1)->radialExtension(); + arg2 = reinterpret_cast< IRotation * >(argp2); + result = (double)((IFormFactorPrism const *)arg1)->topZ((IRotation const &)*arg2); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -92255,38 +91156,9 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_FormFactorPolygonalPrism(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPrism_evaluate_for_q(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalPrism *arg1 = (FormFactorPolygonalPrism *) 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_FormFactorPolygonalPrism, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorPolygonalPrism" "', argument " "1"" of type '" "FormFactorPolygonalPrism *""'"); - } - arg1 = reinterpret_cast< FormFactorPolygonalPrism * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *FormFactorPolygonalPrism_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_FormFactorPolygonalPrism, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *_wrap_FormFactorPolygonalSurface_evaluate_for_q(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorPolygonalSurface *arg1 = (FormFactorPolygonalSurface *) 0 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ; cvector_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; @@ -92295,26 +91167,26 @@ SWIGINTERN PyObject *_wrap_FormFactorPolygonalSurface_evaluate_for_q(PyObject *S PyObject *swig_obj[2] ; complex_t result; - if (!SWIG_Python_UnpackTuple(args, "FormFactorPolygonalSurface_evaluate_for_q", 2, 2, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolygonalSurface, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "IFormFactorPrism_evaluate_for_q", 2, 2, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalSurface_evaluate_for_q" "', argument " "1"" of type '" "FormFactorPolygonalSurface const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_evaluate_for_q" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalSurface * >(argp1); + arg1 = reinterpret_cast< IFormFactorPrism * >(argp1); { res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPolygonalSurface_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactorPrism_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FormFactorPolygonalSurface_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactorPrism_evaluate_for_q" "', argument " "2"" of type '" "cvector_t""'"); } else { cvector_t * temp = reinterpret_cast< cvector_t * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } - result = ((FormFactorPolygonalSurface const *)arg1)->evaluate_for_q(arg2); + result = ((IFormFactorPrism const *)arg1)->evaluate_for_q(arg2); resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result)); return resultobj; fail: @@ -92322,9 +91194,9 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolygonalSurface_volume(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPrism_volume(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalSurface *arg1 = (FormFactorPolygonalSurface *) 0 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -92332,12 +91204,12 @@ SWIGINTERN PyObject *_wrap_FormFactorPolygonalSurface_volume(PyObject *SWIGUNUSE if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolygonalSurface, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalSurface_volume" "', argument " "1"" of type '" "FormFactorPolygonalSurface const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_volume" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalSurface * >(argp1); - result = (double)((FormFactorPolygonalSurface const *)arg1)->volume(); + arg1 = reinterpret_cast< IFormFactorPrism * >(argp1); + result = (double)((IFormFactorPrism const *)arg1)->volume(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -92345,9 +91217,9 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPolygonalSurface_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPrism_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalSurface *arg1 = (FormFactorPolygonalSurface *) 0 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -92355,12 +91227,12 @@ SWIGINTERN PyObject *_wrap_FormFactorPolygonalSurface_radialExtension(PyObject * if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPolygonalSurface, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPolygonalSurface_radialExtension" "', argument " "1"" of type '" "FormFactorPolygonalSurface const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_radialExtension" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalSurface * >(argp1); - result = (double)((FormFactorPolygonalSurface const *)arg1)->radialExtension(); + arg1 = reinterpret_cast< IFormFactorPrism * >(argp1); + result = (double)((IFormFactorPrism const *)arg1)->radialExtension(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -92368,32 +91240,33 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_FormFactorPolygonalSurface(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFormFactorPrism_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FormFactorPolygonalSurface *arg1 = (FormFactorPolygonalSurface *) 0 ; + IFormFactorPrism *arg1 = (IFormFactorPrism *) 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_FormFactorPolygonalSurface, SWIG_POINTER_DISOWN | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactorPrism, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorPolygonalSurface" "', argument " "1"" of type '" "FormFactorPolygonalSurface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactorPrism_getHeight" "', argument " "1"" of type '" "IFormFactorPrism const *""'"); } - arg1 = reinterpret_cast< FormFactorPolygonalSurface * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); + arg1 = reinterpret_cast< IFormFactorPrism * >(argp1); + result = (double)((IFormFactorPrism const *)arg1)->getHeight(); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *FormFactorPolygonalSurface_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *IFormFactorPrism_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_FormFactorPolygonalSurface, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_IFormFactorPrism, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -120856,7 +119729,7 @@ SWIGINTERN PyObject *HexagonalLattice_swiginit(PyObject *SWIGUNUSEDPARM(self), P return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_CreateFCCLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_createFCCLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; ILatticeOrientation *arg2 = 0 ; @@ -120867,21 +119740,21 @@ SWIGINTERN PyObject *_wrap_CreateFCCLattice(PyObject *SWIGUNUSEDPARM(self), PyOb PyObject *swig_obj[2] ; SwigValueWrapper< Lattice > result; - if (!SWIG_Python_UnpackTuple(args, "CreateFCCLattice", 2, 2, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "createFCCLattice", 2, 2, swig_obj)) SWIG_fail; ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "CreateFCCLattice" "', argument " "1"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "createFCCLattice" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_ILatticeOrientation, 0 | 0); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CreateFCCLattice" "', argument " "2"" of type '" "ILatticeOrientation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "createFCCLattice" "', argument " "2"" of type '" "ILatticeOrientation const &""'"); } if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CreateFCCLattice" "', argument " "2"" of type '" "ILatticeOrientation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "createFCCLattice" "', argument " "2"" of type '" "ILatticeOrientation const &""'"); } arg2 = reinterpret_cast< ILatticeOrientation * >(argp2); - result = LatticeUtils::CreateFCCLattice(arg1,(ILatticeOrientation const &)*arg2); + result = LatticeUtils::createFCCLattice(arg1,(ILatticeOrientation const &)*arg2); resultobj = SWIG_NewPointerObj((new Lattice(static_cast< const Lattice& >(result))), SWIGTYPE_p_Lattice, SWIG_POINTER_OWN | 0 ); return resultobj; fail: @@ -120889,7 +119762,7 @@ fail: } -SWIGINTERN PyObject *_wrap_CreateHCPLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_createHCPLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; @@ -120903,26 +119776,26 @@ SWIGINTERN PyObject *_wrap_CreateHCPLattice(PyObject *SWIGUNUSEDPARM(self), PyOb PyObject *swig_obj[3] ; SwigValueWrapper< Lattice > result; - if (!SWIG_Python_UnpackTuple(args, "CreateHCPLattice", 3, 3, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "createHCPLattice", 3, 3, swig_obj)) SWIG_fail; ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "CreateHCPLattice" "', argument " "1"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "createHCPLattice" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CreateHCPLattice" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "createHCPLattice" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_ILatticeOrientation, 0 | 0); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CreateHCPLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "createHCPLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CreateHCPLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "createHCPLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); } arg3 = reinterpret_cast< ILatticeOrientation * >(argp3); - result = LatticeUtils::CreateHCPLattice(arg1,arg2,(ILatticeOrientation const &)*arg3); + result = LatticeUtils::createHCPLattice(arg1,arg2,(ILatticeOrientation const &)*arg3); resultobj = SWIG_NewPointerObj((new Lattice(static_cast< const Lattice& >(result))), SWIGTYPE_p_Lattice, SWIG_POINTER_OWN | 0 ); return resultobj; fail: @@ -120930,7 +119803,7 @@ fail: } -SWIGINTERN PyObject *_wrap_CreateBCTLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_createBCTLattice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; @@ -120944,26 +119817,26 @@ SWIGINTERN PyObject *_wrap_CreateBCTLattice(PyObject *SWIGUNUSEDPARM(self), PyOb PyObject *swig_obj[3] ; SwigValueWrapper< Lattice > result; - if (!SWIG_Python_UnpackTuple(args, "CreateBCTLattice", 3, 3, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "createBCTLattice", 3, 3, swig_obj)) SWIG_fail; ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "CreateBCTLattice" "', argument " "1"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "createBCTLattice" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CreateBCTLattice" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "createBCTLattice" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_ILatticeOrientation, 0 | 0); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "CreateBCTLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "createBCTLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); } if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CreateBCTLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "createBCTLattice" "', argument " "3"" of type '" "ILatticeOrientation const &""'"); } arg3 = reinterpret_cast< ILatticeOrientation * >(argp3); - result = LatticeUtils::CreateBCTLattice(arg1,arg2,(ILatticeOrientation const &)*arg3); + result = LatticeUtils::createBCTLattice(arg1,arg2,(ILatticeOrientation const &)*arg3); resultobj = SWIG_NewPointerObj((new Lattice(static_cast< const Lattice& >(result))), SWIGTYPE_p_Lattice, SWIG_POINTER_OWN | 0 ); return resultobj; fail: @@ -126254,11 +125127,7 @@ static PyMethodDef SwigMethods[] = { { "disown_IFormFactor", _wrap_disown_IFormFactor, METH_O, NULL}, { "IFormFactor_swigregister", IFormFactor_swigregister, METH_O, NULL}, { "IFormFactor_swiginit", IFormFactor_swiginit, METH_VARARGS, NULL}, - { "CreateTransformedFormFactor", _wrap_CreateTransformedFormFactor, METH_VARARGS, "\n" - "CreateTransformedFormFactor(IFormFactor formfactor, IRotation rot, kvector_t translation) -> IFormFactor\n" - "IFormFactor* CreateTransformedFormFactor(const IFormFactor &formfactor, const IRotation &rot, kvector_t translation)\n" - "\n" - ""}, + { "createTransformedFormFactor", _wrap_createTransformedFormFactor, METH_VARARGS, "createTransformedFormFactor(IFormFactor formfactor, IRotation rot, kvector_t translation) -> IFormFactor"}, { "new_IFormFactorBorn", _wrap_new_IFormFactorBorn, METH_VARARGS, "\n" "IFormFactorBorn()\n" "new_IFormFactorBorn(PyObject * _self, NodeMeta meta, vdouble1d_t PValues) -> IFormFactorBorn\n" @@ -129992,259 +128861,105 @@ static PyMethodDef SwigMethods[] = { { "MultiLayer_swiginit", MultiLayer_swiginit, METH_VARARGS, NULL}, { "delete_RoughnessModel", _wrap_delete_RoughnessModel, METH_O, "delete_RoughnessModel(RoughnessModel self)"}, { "RoughnessModel_swigregister", RoughnessModel_swigregister, METH_O, NULL}, - { "PolygonalTopology_vertexIndices_set", _wrap_PolygonalTopology_vertexIndices_set, METH_VARARGS, "PolygonalTopology_vertexIndices_set(PolygonalTopology self, vector_integer_t vertexIndices)"}, - { "PolygonalTopology_vertexIndices_get", _wrap_PolygonalTopology_vertexIndices_get, METH_O, "PolygonalTopology_vertexIndices_get(PolygonalTopology self) -> vector_integer_t"}, - { "PolygonalTopology_symmetry_S2_set", _wrap_PolygonalTopology_symmetry_S2_set, METH_VARARGS, "PolygonalTopology_symmetry_S2_set(PolygonalTopology self, bool symmetry_S2)"}, - { "PolygonalTopology_symmetry_S2_get", _wrap_PolygonalTopology_symmetry_S2_get, METH_O, "PolygonalTopology_symmetry_S2_get(PolygonalTopology self) -> bool"}, - { "new_PolygonalTopology", _wrap_new_PolygonalTopology, METH_NOARGS, "\n" - "new_PolygonalTopology() -> PolygonalTopology\n" - "\n" - "\n" - "For internal use in PolyhedralFace.\n" - "\n" - "C++ includes: FormFactorPolyhedron.h\n" - "\n" - ""}, - { "delete_PolygonalTopology", _wrap_delete_PolygonalTopology, METH_O, "delete_PolygonalTopology(PolygonalTopology self)"}, - { "PolygonalTopology_swigregister", PolygonalTopology_swigregister, METH_O, NULL}, - { "PolygonalTopology_swiginit", PolygonalTopology_swiginit, METH_VARARGS, NULL}, - { "PolyhedralTopology_faces_set", _wrap_PolyhedralTopology_faces_set, METH_VARARGS, "PolyhedralTopology_faces_set(PolyhedralTopology self, std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > * faces)"}, - { "PolyhedralTopology_faces_get", _wrap_PolyhedralTopology_faces_get, METH_O, "PolyhedralTopology_faces_get(PolyhedralTopology self) -> std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *"}, - { "PolyhedralTopology_symmetry_Ci_set", _wrap_PolyhedralTopology_symmetry_Ci_set, METH_VARARGS, "PolyhedralTopology_symmetry_Ci_set(PolyhedralTopology self, bool symmetry_Ci)"}, - { "PolyhedralTopology_symmetry_Ci_get", _wrap_PolyhedralTopology_symmetry_Ci_get, METH_O, "PolyhedralTopology_symmetry_Ci_get(PolyhedralTopology self) -> bool"}, - { "new_PolyhedralTopology", _wrap_new_PolyhedralTopology, METH_NOARGS, "\n" - "new_PolyhedralTopology() -> PolyhedralTopology\n" - "\n" - "\n" - "For internal use in FormFactorPolyhedron.\n" - "\n" - "C++ includes: FormFactorPolyhedron.h\n" - "\n" - ""}, - { "delete_PolyhedralTopology", _wrap_delete_PolyhedralTopology, METH_O, "delete_PolyhedralTopology(PolyhedralTopology self)"}, - { "PolyhedralTopology_swigregister", PolyhedralTopology_swigregister, METH_O, NULL}, - { "PolyhedralTopology_swiginit", PolyhedralTopology_swiginit, METH_VARARGS, NULL}, - { "new_PolyhedralEdge", _wrap_new_PolyhedralEdge, METH_VARARGS, "\n" - "new_PolyhedralEdge(kvector_t _Vlow, kvector_t _Vhig) -> PolyhedralEdge\n" - "PolyhedralEdge::PolyhedralEdge(const kvector_t _Vlow, const kvector_t _Vhig)\n" - "\n" - ""}, - { "PolyhedralEdge_E", _wrap_PolyhedralEdge_E, METH_O, "\n" - "PolyhedralEdge_E(PolyhedralEdge self) -> kvector_t\n" - "kvector_t PolyhedralEdge::E() const\n" - "\n" - ""}, - { "PolyhedralEdge_R", _wrap_PolyhedralEdge_R, METH_O, "\n" - "PolyhedralEdge_R(PolyhedralEdge self) -> kvector_t\n" - "kvector_t PolyhedralEdge::R() const\n" - "\n" - ""}, - { "PolyhedralEdge_qE", _wrap_PolyhedralEdge_qE, METH_VARARGS, "\n" - "PolyhedralEdge_qE(PolyhedralEdge self, cvector_t q) -> complex_t\n" - "complex_t PolyhedralEdge::qE(cvector_t q) const\n" - "\n" - ""}, - { "PolyhedralEdge_qR", _wrap_PolyhedralEdge_qR, METH_VARARGS, "\n" - "PolyhedralEdge_qR(PolyhedralEdge self, cvector_t q) -> complex_t\n" - "complex_t PolyhedralEdge::qR(cvector_t q) const\n" - "\n" - ""}, - { "PolyhedralEdge_contrib", _wrap_PolyhedralEdge_contrib, METH_VARARGS, "\n" - "PolyhedralEdge_contrib(PolyhedralEdge self, int m, cvector_t qpa, complex_t qrperp) -> complex_t\n" - "complex_t PolyhedralEdge::contrib(int m, cvector_t qpa, complex_t qrperp) const\n" - "\n" - "Returns sum_l=0^M/2 u^2l v^(M-2l) / (2l+1)!(M-2l)! - vperp^M/M! \n" - "\n" - ""}, - { "delete_PolyhedralEdge", _wrap_delete_PolyhedralEdge, METH_O, "delete_PolyhedralEdge(PolyhedralEdge self)"}, - { "PolyhedralEdge_swigregister", PolyhedralEdge_swigregister, METH_O, NULL}, - { "PolyhedralEdge_swiginit", PolyhedralEdge_swiginit, METH_VARARGS, NULL}, - { "PolyhedralFace_diameter", _wrap_PolyhedralFace_diameter, METH_O, "PolyhedralFace_diameter(vector_kvector_t V) -> double"}, - { "new_PolyhedralFace", _wrap_new_PolyhedralFace, METH_VARARGS, "\n" - "PolyhedralFace(vector_kvector_t _V=std::vector< kvector_t >(), bool _sym_S2=False)\n" - "PolyhedralFace::PolyhedralFace(const std::vector< kvector_t > &_V=std::vector< kvector_t >(), bool _sym_S2=false)\n" - "\n" - "Sets internal variables for given vertex chain.\n" - "\n" - "Parameters:\n" - "-----------\n" - "\n" - "V: \n" - "oriented vertex list\n" - "\n" - "_sym_S2: \n" - "true if face has a perpedicular two-fold symmetry axis \n" - "\n" - ""}, - { "PolyhedralFace_area", _wrap_PolyhedralFace_area, METH_O, "\n" - "PolyhedralFace_area(PolyhedralFace self) -> double\n" - "double PolyhedralFace::area() const\n" - "\n" - ""}, - { "PolyhedralFace_pyramidalVolume", _wrap_PolyhedralFace_pyramidalVolume, METH_O, "\n" - "PolyhedralFace_pyramidalVolume(PolyhedralFace self) -> double\n" - "double PolyhedralFace::pyramidalVolume() const\n" - "\n" - ""}, - { "PolyhedralFace_radius3d", _wrap_PolyhedralFace_radius3d, METH_O, "\n" - "PolyhedralFace_radius3d(PolyhedralFace self) -> double\n" - "double PolyhedralFace::radius3d() const\n" - "\n" - ""}, - { "PolyhedralFace_normalProjectionConj", _wrap_PolyhedralFace_normalProjectionConj, METH_VARARGS, "\n" - "PolyhedralFace_normalProjectionConj(PolyhedralFace self, cvector_t q) -> complex_t\n" - "complex_t PolyhedralFace::normalProjectionConj(cvector_t q) const\n" - "\n" - "Returns conj(q)*normal [ BasicVector3D::dot is antilinear in 'this' argument]. \n" + { "delete_IFormFactorPolyhedron", _wrap_delete_IFormFactorPolyhedron, METH_O, "\n" + "delete_IFormFactorPolyhedron(IFormFactorPolyhedron self)\n" + "IFormFactorPolyhedron::~IFormFactorPolyhedron()\n" "\n" ""}, - { "PolyhedralFace_ff_n", _wrap_PolyhedralFace_ff_n, METH_VARARGS, "\n" - "PolyhedralFace_ff_n(PolyhedralFace self, int m, cvector_t q) -> complex_t\n" - "complex_t PolyhedralFace::ff_n(int m, cvector_t q) const\n" - "\n" - "Returns contribution qn*f_n [of order q^(n+1)] from this face to the polyhedral form factor. \n" - "\n" - ""}, - { "PolyhedralFace_ff", _wrap_PolyhedralFace_ff, METH_VARARGS, "\n" - "PolyhedralFace_ff(PolyhedralFace self, cvector_t q, bool sym_Ci) -> complex_t\n" - "complex_t PolyhedralFace::ff(cvector_t q, bool sym_Ci) const\n" - "\n" - "Returns the contribution ff(q) of this face to the polyhedral form factor. \n" - "\n" - ""}, - { "PolyhedralFace_ff_2D", _wrap_PolyhedralFace_ff_2D, METH_VARARGS, "\n" - "PolyhedralFace_ff_2D(PolyhedralFace self, cvector_t qpa) -> complex_t\n" - "complex_t PolyhedralFace::ff_2D(cvector_t qpa) const\n" - "\n" - "Returns the two-dimensional form factor of this face, for use in a prism. \n" - "\n" - ""}, - { "PolyhedralFace_assert_Ci", _wrap_PolyhedralFace_assert_Ci, METH_VARARGS, "\n" - "PolyhedralFace_assert_Ci(PolyhedralFace self, PolyhedralFace other)\n" - "void PolyhedralFace::assert_Ci(const PolyhedralFace &other) const\n" - "\n" - "Throws if deviation from inversion symmetry is detected. Does not check vertices. \n" - "\n" - ""}, - { "delete_PolyhedralFace", _wrap_delete_PolyhedralFace, METH_O, "delete_PolyhedralFace(PolyhedralFace self)"}, - { "PolyhedralFace_swigregister", PolyhedralFace_swigregister, METH_O, NULL}, - { "PolyhedralFace_swiginit", PolyhedralFace_swiginit, METH_VARARGS, NULL}, - { "FormFactorPolyhedron_bottomZ", _wrap_FormFactorPolyhedron_bottomZ, METH_VARARGS, "\n" - "FormFactorPolyhedron_bottomZ(FormFactorPolyhedron self, IRotation rotation) -> double\n" - "double FormFactorPolyhedron::bottomZ(const IRotation &rotation) const override final\n" + { "IFormFactorPolyhedron_bottomZ", _wrap_IFormFactorPolyhedron_bottomZ, METH_VARARGS, "\n" + "IFormFactorPolyhedron_bottomZ(IFormFactorPolyhedron self, IRotation rotation) -> double\n" + "double IFormFactorPolyhedron::bottomZ(const IRotation &rotation) const override final\n" "\n" "Returns the z-coordinate of the lowest point in this shape after a given rotation. \n" "\n" ""}, - { "FormFactorPolyhedron_topZ", _wrap_FormFactorPolyhedron_topZ, METH_VARARGS, "\n" - "FormFactorPolyhedron_topZ(FormFactorPolyhedron self, IRotation rotation) -> double\n" - "double FormFactorPolyhedron::topZ(const IRotation &rotation) const override final\n" + { "IFormFactorPolyhedron_topZ", _wrap_IFormFactorPolyhedron_topZ, METH_VARARGS, "\n" + "IFormFactorPolyhedron_topZ(IFormFactorPolyhedron self, IRotation rotation) -> double\n" + "double IFormFactorPolyhedron::topZ(const IRotation &rotation) const override final\n" "\n" "Returns the z-coordinate of the lowest point in this shape after a given rotation. \n" "\n" ""}, - { "FormFactorPolyhedron_evaluate_for_q", _wrap_FormFactorPolyhedron_evaluate_for_q, METH_VARARGS, "\n" - "FormFactorPolyhedron_evaluate_for_q(FormFactorPolyhedron self, cvector_t q) -> complex_t\n" - "complex_t FormFactorPolyhedron::evaluate_for_q(cvector_t q) const override final\n" + { "IFormFactorPolyhedron_evaluate_for_q", _wrap_IFormFactorPolyhedron_evaluate_for_q, METH_VARARGS, "\n" + "IFormFactorPolyhedron_evaluate_for_q(IFormFactorPolyhedron self, cvector_t q) -> complex_t\n" + "complex_t IFormFactorPolyhedron::evaluate_for_q(cvector_t q) const override final\n" "\n" - "Returns the form factor F(q) of this polyhedron, respecting the offset z_bottom. \n" + "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. \n" "\n" ""}, - { "FormFactorPolyhedron_evaluate_centered", _wrap_FormFactorPolyhedron_evaluate_centered, METH_VARARGS, "\n" - "FormFactorPolyhedron_evaluate_centered(FormFactorPolyhedron self, cvector_t q) -> complex_t\n" - "complex_t FormFactorPolyhedron::evaluate_centered(cvector_t q) const\n" - "\n" - "Returns the form factor F(q) of this polyhedron, with origin at z=0. \n" + { "IFormFactorPolyhedron_evaluate_centered", _wrap_IFormFactorPolyhedron_evaluate_centered, METH_VARARGS, "\n" + "IFormFactorPolyhedron_evaluate_centered(IFormFactorPolyhedron self, cvector_t q) -> complex_t\n" + "complex_t IFormFactorPolyhedron::evaluate_centered(cvector_t q) const\n" "\n" ""}, - { "FormFactorPolyhedron_volume", _wrap_FormFactorPolyhedron_volume, METH_O, "\n" - "FormFactorPolyhedron_volume(FormFactorPolyhedron self) -> double\n" - "double FormFactorPolyhedron::volume() const override final\n" + { "IFormFactorPolyhedron_volume", _wrap_IFormFactorPolyhedron_volume, METH_O, "\n" + "IFormFactorPolyhedron_volume(IFormFactorPolyhedron self) -> double\n" + "double IFormFactorPolyhedron::volume() const override final\n" "\n" "Returns the total volume of the particle of this form factor's shape. \n" "\n" ""}, - { "FormFactorPolyhedron_radialExtension", _wrap_FormFactorPolyhedron_radialExtension, METH_O, "\n" - "FormFactorPolyhedron_radialExtension(FormFactorPolyhedron self) -> double\n" - "double FormFactorPolyhedron::radialExtension() const override final\n" + { "IFormFactorPolyhedron_radialExtension", _wrap_IFormFactorPolyhedron_radialExtension, METH_O, "\n" + "IFormFactorPolyhedron_radialExtension(IFormFactorPolyhedron self) -> double\n" + "double IFormFactorPolyhedron::radialExtension() const override final\n" "\n" "Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations \n" "\n" ""}, - { "FormFactorPolyhedron_assert_platonic", _wrap_FormFactorPolyhedron_assert_platonic, METH_O, "\n" - "FormFactorPolyhedron_assert_platonic(FormFactorPolyhedron self)\n" - "void FormFactorPolyhedron::assert_platonic() const\n" + { "IFormFactorPolyhedron_assert_platonic", _wrap_IFormFactorPolyhedron_assert_platonic, METH_O, "\n" + "IFormFactorPolyhedron_assert_platonic(IFormFactorPolyhedron self)\n" + "void IFormFactorPolyhedron::assert_platonic() const\n" "\n" "Assertions for Platonic solid. \n" "\n" ""}, - { "delete_FormFactorPolyhedron", _wrap_delete_FormFactorPolyhedron, METH_O, "delete_FormFactorPolyhedron(FormFactorPolyhedron self)"}, - { "FormFactorPolyhedron_swigregister", FormFactorPolyhedron_swigregister, METH_O, NULL}, - { "FormFactorPolygonalPrism_bottomZ", _wrap_FormFactorPolygonalPrism_bottomZ, METH_VARARGS, "\n" - "FormFactorPolygonalPrism_bottomZ(FormFactorPolygonalPrism self, IRotation rotation) -> double\n" - "double FormFactorPolygonalPrism::bottomZ(const IRotation &rotation) const override final\n" + { "IFormFactorPolyhedron_swigregister", IFormFactorPolyhedron_swigregister, METH_O, NULL}, + { "delete_IFormFactorPrism", _wrap_delete_IFormFactorPrism, METH_O, "\n" + "delete_IFormFactorPrism(IFormFactorPrism self)\n" + "IFormFactorPrism::~IFormFactorPrism()\n" + "\n" + ""}, + { "IFormFactorPrism_bottomZ", _wrap_IFormFactorPrism_bottomZ, METH_VARARGS, "\n" + "IFormFactorPrism_bottomZ(IFormFactorPrism self, IRotation rotation) -> double\n" + "double IFormFactorPrism::bottomZ(const IRotation &rotation) const override final\n" "\n" "Returns the z-coordinate of the lowest point in this shape after a given rotation. \n" "\n" ""}, - { "FormFactorPolygonalPrism_topZ", _wrap_FormFactorPolygonalPrism_topZ, METH_VARARGS, "\n" - "FormFactorPolygonalPrism_topZ(FormFactorPolygonalPrism self, IRotation rotation) -> double\n" - "double FormFactorPolygonalPrism::topZ(const IRotation &rotation) const override final\n" + { "IFormFactorPrism_topZ", _wrap_IFormFactorPrism_topZ, METH_VARARGS, "\n" + "IFormFactorPrism_topZ(IFormFactorPrism self, IRotation rotation) -> double\n" + "double IFormFactorPrism::topZ(const IRotation &rotation) const override final\n" "\n" "Returns the z-coordinate of the lowest point in this shape after a given rotation. \n" "\n" ""}, - { "FormFactorPolygonalPrism_evaluate_for_q", _wrap_FormFactorPolygonalPrism_evaluate_for_q, METH_VARARGS, "\n" - "FormFactorPolygonalPrism_evaluate_for_q(FormFactorPolygonalPrism self, cvector_t q) -> complex_t\n" - "complex_t FormFactorPolygonalPrism::evaluate_for_q(cvector_t q) const override\n" + { "IFormFactorPrism_evaluate_for_q", _wrap_IFormFactorPrism_evaluate_for_q, METH_VARARGS, "\n" + "IFormFactorPrism_evaluate_for_q(IFormFactorPrism self, cvector_t q) -> complex_t\n" + "complex_t IFormFactorPrism::evaluate_for_q(cvector_t q) const override\n" "\n" "Returns the form factor F(q) of this polyhedron, respecting the offset height/2. \n" "\n" ""}, - { "FormFactorPolygonalPrism_volume", _wrap_FormFactorPolygonalPrism_volume, METH_O, "\n" - "FormFactorPolygonalPrism_volume(FormFactorPolygonalPrism self) -> double\n" - "double FormFactorPolygonalPrism::volume() const override\n" + { "IFormFactorPrism_volume", _wrap_IFormFactorPrism_volume, METH_O, "\n" + "IFormFactorPrism_volume(IFormFactorPrism self) -> double\n" + "double IFormFactorPrism::volume() const override\n" "\n" "Returns the volume of this prism. \n" "\n" ""}, - { "FormFactorPolygonalPrism_getHeight", _wrap_FormFactorPolygonalPrism_getHeight, METH_O, "\n" - "FormFactorPolygonalPrism_getHeight(FormFactorPolygonalPrism self) -> double\n" - "double FormFactorPolygonalPrism::getHeight() const\n" - "\n" - ""}, - { "FormFactorPolygonalPrism_radialExtension", _wrap_FormFactorPolygonalPrism_radialExtension, METH_O, "\n" - "FormFactorPolygonalPrism_radialExtension(FormFactorPolygonalPrism self) -> double\n" - "virtual double FormFactorPolygonalPrism::radialExtension() const override\n" + { "IFormFactorPrism_radialExtension", _wrap_IFormFactorPrism_radialExtension, METH_O, "\n" + "IFormFactorPrism_radialExtension(IFormFactorPrism self) -> double\n" + "double IFormFactorPrism::radialExtension() const override\n" "\n" "Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations \n" "\n" ""}, - { "delete_FormFactorPolygonalPrism", _wrap_delete_FormFactorPolygonalPrism, METH_O, "delete_FormFactorPolygonalPrism(FormFactorPolygonalPrism self)"}, - { "FormFactorPolygonalPrism_swigregister", FormFactorPolygonalPrism_swigregister, METH_O, NULL}, - { "FormFactorPolygonalSurface_evaluate_for_q", _wrap_FormFactorPolygonalSurface_evaluate_for_q, METH_VARARGS, "\n" - "FormFactorPolygonalSurface_evaluate_for_q(FormFactorPolygonalSurface self, cvector_t q) -> complex_t\n" - "complex_t FormFactorPolygonalSurface::evaluate_for_q(cvector_t q) const override final\n" - "\n" - "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. \n" - "\n" - ""}, - { "FormFactorPolygonalSurface_volume", _wrap_FormFactorPolygonalSurface_volume, METH_O, "\n" - "FormFactorPolygonalSurface_volume(FormFactorPolygonalSurface self) -> double\n" - "double FormFactorPolygonalSurface::volume() const override\n" - "\n" - "Returns the total volume of the particle of this form factor's shape. \n" - "\n" - ""}, - { "FormFactorPolygonalSurface_radialExtension", _wrap_FormFactorPolygonalSurface_radialExtension, METH_O, "\n" - "FormFactorPolygonalSurface_radialExtension(FormFactorPolygonalSurface self) -> double\n" - "double FormFactorPolygonalSurface::radialExtension() const override final\n" - "\n" - "Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations \n" + { "IFormFactorPrism_getHeight", _wrap_IFormFactorPrism_getHeight, METH_O, "\n" + "IFormFactorPrism_getHeight(IFormFactorPrism self) -> double\n" + "double IFormFactorPrism::getHeight() const\n" "\n" ""}, - { "delete_FormFactorPolygonalSurface", _wrap_delete_FormFactorPolygonalSurface, METH_O, "delete_FormFactorPolygonalSurface(FormFactorPolygonalSurface self)"}, - { "FormFactorPolygonalSurface_swigregister", FormFactorPolygonalSurface_swigregister, METH_O, NULL}, + { "IFormFactorPrism_swigregister", IFormFactorPrism_swigregister, METH_O, NULL}, { "IProfileRipple_getLength", _wrap_IProfileRipple_getLength, METH_O, "\n" "IProfileRipple_getLength(IProfileRipple self) -> double\n" "double IProfileRipple::getLength() const\n" @@ -130364,7 +129079,7 @@ static PyMethodDef SwigMethods[] = { "FormFactorBox_volume(FormFactorBox self) -> double\n" "double FormFactorBox::volume() const override final\n" "\n" - "Returns the volume of this prism. \n" + "Returns the total volume of the particle of this form factor's shape. \n" "\n" ""}, { "FormFactorBox_radialExtension", _wrap_FormFactorBox_radialExtension, METH_O, "\n" @@ -130378,7 +129093,7 @@ static PyMethodDef SwigMethods[] = { "FormFactorBox_evaluate_for_q(FormFactorBox self, cvector_t q) -> complex_t\n" "complex_t FormFactorBox::evaluate_for_q(cvector_t q) const override final\n" "\n" - "Returns the form factor F(q) of this polyhedron, respecting the offset height/2. \n" + "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. \n" "\n" ""}, { "delete_FormFactorBox", _wrap_delete_FormFactorBox, METH_O, "delete_FormFactorBox(FormFactorBox self)"}, @@ -132185,7 +130900,7 @@ static PyMethodDef SwigMethods[] = { "MaterialProfile_cpp(MultiLayer multilayer, int n_points, double z_min, double z_max) -> vector_complex_t\n" "BA_CORE_API_ std::vector<complex_t> MaterialProfile(const MultiLayer &multilayer, int n_points, double z_min, double z_max)\n" "\n" - "Calculate average material profile for given multilayer. \n" + "Calculate average material profile for given multilayer \n" "\n" ""}, { "DefaultMaterialProfileLimits", _wrap_DefaultMaterialProfileLimits, METH_O, "\n" @@ -134355,21 +133070,9 @@ static PyMethodDef SwigMethods[] = { { "delete_HexagonalLattice", _wrap_delete_HexagonalLattice, METH_O, "delete_HexagonalLattice(HexagonalLattice self)"}, { "HexagonalLattice_swigregister", HexagonalLattice_swigregister, METH_O, NULL}, { "HexagonalLattice_swiginit", HexagonalLattice_swiginit, METH_VARARGS, NULL}, - { "CreateFCCLattice", _wrap_CreateFCCLattice, METH_VARARGS, "\n" - "CreateFCCLattice(double lattice_constant, ILatticeOrientation orientation) -> Lattice\n" - "Lattice LatticeUtils::CreateFCCLattice(double lattice_constant, const ILatticeOrientation &orientation)\n" - "\n" - ""}, - { "CreateHCPLattice", _wrap_CreateHCPLattice, METH_VARARGS, "\n" - "CreateHCPLattice(double a, double c, ILatticeOrientation orientation) -> Lattice\n" - "Lattice LatticeUtils::CreateHCPLattice(double a, double c, const ILatticeOrientation &orientation)\n" - "\n" - ""}, - { "CreateBCTLattice", _wrap_CreateBCTLattice, METH_VARARGS, "\n" - "CreateBCTLattice(double a, double c, ILatticeOrientation orientation) -> Lattice\n" - "Lattice LatticeUtils::CreateBCTLattice(double a, double c, const ILatticeOrientation &orientation)\n" - "\n" - ""}, + { "createFCCLattice", _wrap_createFCCLattice, METH_VARARGS, "createFCCLattice(double lattice_constant, ILatticeOrientation orientation) -> Lattice"}, + { "createHCPLattice", _wrap_createHCPLattice, METH_VARARGS, "createHCPLattice(double a, double c, ILatticeOrientation orientation) -> Lattice"}, + { "createBCTLattice", _wrap_createBCTLattice, METH_VARARGS, "createBCTLattice(double a, double c, ILatticeOrientation orientation) -> Lattice"}, { "new_Material", _wrap_new_Material, METH_VARARGS, "\n" "Material(Material material)\n" "new_Material(Material material) -> Material\n" @@ -134640,27 +133343,15 @@ static void *_p_ConstKBinAxisTo_p_VariableBinAxis(void *x, int *SWIGUNUSEDPARM(n static void *_p_CustomBinAxisTo_p_VariableBinAxis(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((VariableBinAxis *) ((CustomBinAxis *) x)); } -static void *_p_FormFactorPrism3To_p_FormFactorPolygonalPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); -} -static void *_p_FormFactorPrism6To_p_FormFactorPolygonalPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); -} -static void *_p_FormFactorBoxTo_p_FormFactorPolygonalPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolygonalPrism *) ((FormFactorBox *) x)); -} static void *_p_SimulationFactoryTo_p_IFactoryT_std__string_Simulation_t(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFactory< std::string,Simulation > *) ((SimulationFactory *) x)); } static void *_p_FormFactorPrism6To_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPrism *) ((FormFactorPrism6 *) x)); } static void *_p_FormFactorHemiEllipsoidTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) ((FormFactorHemiEllipsoid *) x)); } -static void *_p_FormFactorPolygonalPrismTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) ((FormFactorPolygonalPrism *) x)); -} static void *_p_FormFactorFullSpheroidTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) ((FormFactorFullSpheroid *) x)); } @@ -134682,18 +133373,18 @@ static void *_p_FormFactorSawtoothRippleGaussTo_p_IFormFactorBorn(void *x, int * static void *_p_FormFactorCosineRippleGaussTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) (IProfileRipple *)(ICosineRipple *) ((FormFactorCosineRippleGauss *) x)); } -static void *_p_FormFactorPolygonalSurfaceTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) ((FormFactorPolygonalSurface *) x)); +static void *_p_IFormFactorPrismTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorBorn *) ((IFormFactorPrism *) x)); +} +static void *_p_FormFactorTruncatedCubeTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } static void *_p_FormFactorCantellatedCubeTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); } static void *_p_FormFactorFullSphereTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) ((FormFactorFullSphere *) x)); } -static void *_p_FormFactorTruncatedCubeTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); -} static void *_p_FormFactorTruncatedSphereTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) ((FormFactorTruncatedSphere *) x)); } @@ -134704,28 +133395,28 @@ static void *_p_FormFactorCylinderTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDP return (void *)((IFormFactorBorn *) ((FormFactorCylinder *) x)); } static void *_p_FormFactorBoxTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolygonalPrism *) ((FormFactorBox *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPrism *) ((FormFactorBox *) x)); } static void *_p_FormFactorTetrahedronTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } static void *_p_FormFactorIcosahedronTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } static void *_p_FormFactorDodecahedronTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } static void *_p_FormFactorCuboctahedronTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } -static void *_p_FormFactorPolyhedronTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) ((FormFactorPolyhedron *) x)); +static void *_p_IFormFactorPolyhedronTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorBorn *) ((IFormFactorPolyhedron *) x)); } static void *_p_FormFactorConeTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) ((FormFactorCone *) x)); } static void *_p_FormFactorCone6To_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorCone6 *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } static void *_p_FormFactorSphereGaussianRadiusTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactorBorn *) ((FormFactorSphereGaussianRadius *) x)); @@ -134764,13 +133455,13 @@ static void *_p_FormFactorCosineRippleBoxTo_p_IFormFactorBorn(void *x, int *SWIG return (void *)((IFormFactorBorn *) (IProfileRipple *)(ICosineRipple *) ((FormFactorCosineRippleBox *) x)); } static void *_p_FormFactorPyramidTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorPyramid *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } static void *_p_FormFactorPrism3To_p_IFormFactorBorn(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactorBorn *) (FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); + return (void *)((IFormFactorBorn *) (IFormFactorPrism *) ((FormFactorPrism3 *) x)); } static void *_p_VariableBinAxisTo_p_IAxis(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IAxis *) ((VariableBinAxis *) x)); @@ -134826,6 +133517,15 @@ static void *_p_Histogram2DTo_p_IHistogram(void *x, int *SWIGUNUSEDPARM(newmemor static void *_p_Histogram1DTo_p_IHistogram(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IHistogram *) ((Histogram1D *) x)); } +static void *_p_FormFactorPrism3To_p_IFormFactorPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPrism *) ((FormFactorPrism3 *) x)); +} +static void *_p_FormFactorPrism6To_p_IFormFactorPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPrism *) ((FormFactorPrism6 *) x)); +} +static void *_p_FormFactorBoxTo_p_IFormFactorPrism(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPrism *) ((FormFactorBox *) x)); +} static void *_p_DistributionTrapezoidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IDistribution1D *) ((DistributionTrapezoid *) x)); } @@ -134859,9 +133559,6 @@ static void *_p_IdentityRotationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(new static void *_p_IRotationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((IRotation *) x)); } -static void *_p_FormFactorPolygonalSurfaceTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalSurface *) x)); -} static void *_p_IUnitConverterTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((IUnitConverter *) x)); } @@ -134902,19 +133599,19 @@ static void *_p_FTDistribution2DCauchyTo_p_ICloneable(void *x, int *SWIGUNUSEDPA return (void *)((ICloneable *) (IFTDistribution2D *) ((FTDistribution2DCauchy *) x)); } static void *_p_FormFactorTetrahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } static void *_p_FormFactorIcosahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } static void *_p_FormFactorDodecahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } static void *_p_FormFactorCuboctahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } -static void *_p_FormFactorPolyhedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolyhedron *) x)); +static void *_p_IFormFactorPolyhedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((IFormFactorPolyhedron *) x)); } static void *_p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISample *)(IInterferenceFunction *) ((InterferenceFunctionRadialParaCrystal *) x)); @@ -135001,16 +133698,19 @@ static void *_p_IFormFactorDecoratorTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM return (void *)((ICloneable *) (ISample *)(IFormFactor *) ((IFormFactorDecorator *) x)); } static void *_p_FormFactorPyramidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorPyramid *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } static void *_p_FormFactorTruncatedCubeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } static void *_p_FormFactorCantellatedCubeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); +} +static void *_p_IFormFactorPrismTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((IFormFactorPrism *) x)); } static void *_p_RangedDistributionTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((RangedDistribution *) x)); @@ -135147,6 +133847,9 @@ static void *_p_FormFactorFullSpheroidTo_p_ICloneable(void *x, int *SWIGUNUSEDPA static void *_p_ISpecularScanTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((ISpecularScan *) x)); } +static void *_p_HexagonalLatticeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (Lattice2D *) ((HexagonalLattice *) x)); +} static void *_p_SquareLatticeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (Lattice2D *) ((SquareLattice *) x)); } @@ -135174,9 +133877,6 @@ static void *_p_InterferenceFunction1DLatticeTo_p_ICloneable(void *x, int *SWIGU static void *_p_IShape2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((IShape2D *) x)); } -static void *_p_HexagonalLatticeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (Lattice2D *) ((HexagonalLattice *) x)); -} static void *_p_FootprintSquareTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IFootprintFactor *) ((FootprintSquare *) x)); } @@ -135193,7 +133893,7 @@ static void *_p_FTDistribution1DGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPAR return (void *)((ICloneable *) (IFTDistribution1D *) ((FTDistribution1DGauss *) x)); } static void *_p_FormFactorCone6To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCone6 *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } static void *_p_IDistribution1DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) ((IDistribution1D *) x)); @@ -135229,7 +133929,7 @@ static void *_p_DistributionLogNormalTo_p_ICloneable(void *x, int *SWIGUNUSEDPAR return (void *)((ICloneable *) (IDistribution1D *) ((DistributionLogNormal *) x)); } static void *_p_FormFactorBoxTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorBox *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorBox *) x)); } static void *_p_FTDistribution1DGateTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IFTDistribution1D *) ((FTDistribution1DGate *) x)); @@ -135237,11 +133937,8 @@ static void *_p_FTDistribution1DGateTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM static void *_p_FormFactorLongBoxGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorLongBoxGauss *) x)); } -static void *_p_FormFactorPolygonalPrismTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalPrism *) x)); -} static void *_p_FormFactorPrism3To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism3 *) x)); } static void *_p_FormFactorHemiEllipsoidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorHemiEllipsoid *) x)); @@ -135262,7 +133959,7 @@ static void *_p_DistributionLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM( return (void *)((ICloneable *) (IDistribution1D *) ((DistributionLorentz *) x)); } static void *_p_FormFactorPrism6To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); + return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism6 *) x)); } static void *_p_FTDistribution2DConeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IFTDistribution2D *) ((FTDistribution2DCone *) x)); @@ -135355,7 +134052,7 @@ static void *_p_InterferenceFunctionTwinTo_p_IInterferenceFunction(void *x, int return (void *)((IInterferenceFunction *) ((InterferenceFunctionTwin *) x)); } static void *_p_FormFactorBoxTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorBox *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorBox *) x)); } static void *_p_IBackgroundTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *) ((IBackground *) x)); @@ -135439,28 +134136,31 @@ static void *_p_IPeakShapeTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newme return (void *)((IParameterized *) (INode *)(ISample *) ((IPeakShape *) x)); } static void *_p_FormFactorPrism3To_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism3 *) x)); } static void *_p_DistributionTrapezoidTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *)(IDistribution1D *) ((DistributionTrapezoid *) x)); } -static void *_p_FormFactorPolyhedronTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolyhedron *) x)); +static void *_p_IFormFactorPolyhedronTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((IFormFactorPolyhedron *) x)); +} +static void *_p_IFormFactorPrismTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((IFormFactorPrism *) x)); } static void *_p_FormFactorCuboctahedronTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } static void *_p_FormFactorDodecahedronTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } static void *_p_FormFactorIcosahedronTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } static void *_p_FormFactorTetrahedronTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } static void *_p_FormFactorPrism6To_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism6 *) x)); } static void *_p_SimulationTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *) ((Simulation *) x)); @@ -135501,12 +134201,6 @@ static void *_p_IFormFactorTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newm static void *_p_ISampleTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *) ((ISample *) x)); } -static void *_p_FormFactorPolygonalSurfaceTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalSurface *) x)); -} -static void *_p_FormFactorPolygonalPrismTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalPrism *) x)); -} static void *_p_FormFactorLongBoxGaussTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorLongBoxGauss *) x)); } @@ -135556,10 +134250,10 @@ static void *_p_RotationYTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmem return (void *)((IParameterized *) (INode *)(IRotation *) ((RotationY *) x)); } static void *_p_FormFactorCantellatedCubeTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); } static void *_p_FormFactorTruncatedCubeTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } static void *_p_RotationZTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *)(IRotation *) ((RotationZ *) x)); @@ -135616,10 +134310,10 @@ static void *_p_LayerTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory) return (void *)((IParameterized *) (INode *)(ISample *) ((Layer *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } static void *_p_FormFactorPyramidTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorPyramid *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_FormFactorCylinderTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorCylinder *) x)); @@ -135682,7 +134376,7 @@ static void *_p_FootprintSquareTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM( return (void *)((IParameterized *) (INode *)(IFootprintFactor *) ((FootprintSquare *) x)); } static void *_p_FormFactorCone6To_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCone6 *) x)); + return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } static void *_p_IFormFactorDecoratorTo_p_IParameterized(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IParameterized *) (INode *)(ISample *)(IFormFactor *) ((IFormFactorDecorator *) x)); @@ -135793,14 +134487,11 @@ static void *_p_FootprintGaussTo_p_IFootprintFactor(void *x, int *SWIGUNUSEDPARM return (void *)((IFootprintFactor *) ((FootprintGauss *) x)); } static void *_p_FormFactorPrism6To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism6 *) x)); } static void *_p_FormFactorHemiEllipsoidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorHemiEllipsoid *) x)); } -static void *_p_FormFactorPolygonalPrismTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorPolygonalPrism *) x)); -} static void *_p_FormFactorFullSpheroidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorFullSpheroid *) x)); } @@ -135822,20 +134513,20 @@ static void *_p_FormFactorCosineRippleGaussTo_p_IFormFactor(void *x, int *SWIGUN static void *_p_FormFactorSawtoothRippleGaussTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *)(IProfileRipple *)(ISawtoothRipple *) ((FormFactorSawtoothRippleGauss *) x)); } -static void *_p_FormFactorPolygonalSurfaceTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorPolygonalSurface *) x)); +static void *_p_IFormFactorPrismTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactor *) (IFormFactorBorn *) ((IFormFactorPrism *) x)); } static void *_p_FormFactorCrystalTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) ((FormFactorCrystal *) x)); } static void *_p_FormFactorCantellatedCubeTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); } static void *_p_FormFactorFullSphereTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorFullSphere *) x)); } static void *_p_FormFactorTruncatedCubeTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } static void *_p_FormFactorTruncatedSphereTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorTruncatedSphere *) x)); @@ -135847,31 +134538,31 @@ static void *_p_FormFactorCylinderTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM( return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorCylinder *) x)); } static void *_p_FormFactorBoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorBox *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorBox *) x)); } static void *_p_IFormFactorDecoratorTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) ((IFormFactorDecorator *) x)); } static void *_p_FormFactorIcosahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } static void *_p_FormFactorDodecahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } static void *_p_FormFactorCuboctahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } -static void *_p_FormFactorPolyhedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorPolyhedron *) x)); +static void *_p_IFormFactorPolyhedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactor *) (IFormFactorBorn *) ((IFormFactorPolyhedron *) x)); } static void *_p_FormFactorTetrahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } static void *_p_FormFactorConeTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorCone *) x)); } static void *_p_FormFactorCone6To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCone6 *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } static void *_p_FormFactorSphereGaussianRadiusTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *) ((FormFactorSphereGaussianRadius *) x)); @@ -135909,26 +134600,26 @@ static void *_p_FormFactorWeightedTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM( static void *_p_FormFactorSawtoothRippleLorentzTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *)(IProfileRipple *)(ISawtoothRipple *) ((FormFactorSawtoothRippleLorentz *) x)); } -static void *_p_FormFactorCosineRippleBoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(IProfileRipple *)(ICosineRipple *) ((FormFactorCosineRippleBox *) x)); -} static void *_p_FormFactorSawtoothRippleBoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFormFactor *) (IFormFactorBorn *)(IProfileRipple *)(ISawtoothRipple *) ((FormFactorSawtoothRippleBox *) x)); } +static void *_p_FormFactorCosineRippleBoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactor *) (IFormFactorBorn *)(IProfileRipple *)(ICosineRipple *) ((FormFactorCosineRippleBox *) x)); +} static void *_p_FormFactorPyramidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorPyramid *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } static void *_p_FormFactorPrism3To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFormFactor *) (IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); + return (void *)((IFormFactor *) (IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism3 *) x)); } static void *_p_SampleBuilderFactoryTo_p_IFactoryT_std__string_IMultiLayerBuilder_t(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFactory< std::string,IMultiLayerBuilder > *) ((SampleBuilderFactory *) x)); } static void *_p_FormFactorBoxTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorBox *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorBox *) x)); } static void *_p_MultiLayerTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) ((MultiLayer *) x)); @@ -135976,25 +134667,28 @@ static void *_p_MisesGaussPeakShapeTo_p_ISample(void *x, int *SWIGUNUSEDPARM(new return (void *)((ISample *) (IPeakShape *) ((MisesGaussPeakShape *) x)); } static void *_p_FormFactorPrism3To_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism3 *) x)); } static void *_p_FormFactorTetrahedronTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } static void *_p_FormFactorIcosahedronTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } static void *_p_FormFactorDodecahedronTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } static void *_p_FormFactorCuboctahedronTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } -static void *_p_FormFactorPolyhedronTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorPolyhedron *) x)); +static void *_p_IFormFactorPolyhedronTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((IFormFactorPolyhedron *) x)); +} +static void *_p_IFormFactorPrismTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((IFormFactorPrism *) x)); } static void *_p_FormFactorPrism6To_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism6 *) x)); } static void *_p_ParticleCoreShellTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IAbstractParticle *)(IParticle *) ((ParticleCoreShell *) x)); @@ -136014,29 +134708,23 @@ static void *_p_FormFactorFullSphereTo_p_ISample(void *x, int *SWIGUNUSEDPARM(ne static void *_p_IFormFactorTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) ((IFormFactor *) x)); } -static void *_p_FormFactorPolygonalSurfaceTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalSurface *) x)); -} static void *_p_FormFactorLongBoxGaussTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorLongBoxGauss *) x)); } -static void *_p_FormFactorPolygonalPrismTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalPrism *) x)); -} static void *_p_InterferenceFunctionHardDiskTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IInterferenceFunction *) ((InterferenceFunctionHardDisk *) x)); } -static void *_p_FormFactorFullSpheroidTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorFullSpheroid *) x)); -} static void *_p_FormFactorTruncatedSpheroidTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorTruncatedSpheroid *) x)); } +static void *_p_FormFactorFullSpheroidTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorFullSpheroid *) x)); +} static void *_p_FormFactorTruncatedCubeTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } static void *_p_FormFactorCantellatedCubeTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); } static void *_p_IFormFactorBornTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IFormFactor *) ((IFormFactorBorn *) x)); @@ -136069,10 +134757,10 @@ static void *_p_LayerTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) ((Layer *) x)); } static void *_p_FormFactorPyramidTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorPyramid *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } static void *_p_FormFactorEllipsoidalCylinderTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *) ((FormFactorEllipsoidalCylinder *) x)); @@ -136093,7 +134781,7 @@ static void *_p_IInterferenceFunctionTo_p_ISample(void *x, int *SWIGUNUSEDPARM(n return (void *)((ISample *) ((IInterferenceFunction *) x)); } static void *_p_FormFactorCone6To_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCone6 *) x)); + return (void *)((ISample *) (IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } static void *_p_IFormFactorDecoratorTo_p_ISample(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISample *) (IFormFactor *) ((IFormFactorDecorator *) x)); @@ -136162,7 +134850,7 @@ static void *_p_InterferenceFunctionFinite3DLatticeTo_p_ISample(void *x, int *SW return (void *)((ISample *) (IInterferenceFunction *) ((InterferenceFunctionFinite3DLattice *) x)); } static void *_p_FormFactorBoxTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorBox *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorBox *) x)); } static void *_p_IBackgroundTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) ((IBackground *) x)); @@ -136240,28 +134928,31 @@ static void *_p_IPeakShapeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISample *) ((IPeakShape *) x)); } static void *_p_FormFactorPrism3To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism3 *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism3 *) x)); } static void *_p_DistributionTrapezoidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IDistribution1D *) ((DistributionTrapezoid *) x)); } -static void *_p_FormFactorPolyhedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolyhedron *) x)); +static void *_p_IFormFactorPolyhedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((IFormFactorPolyhedron *) x)); +} +static void *_p_IFormFactorPrismTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((IFormFactorPrism *) x)); } static void *_p_FormFactorCuboctahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } static void *_p_FormFactorDodecahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } static void *_p_FormFactorIcosahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } static void *_p_FormFactorTetrahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } static void *_p_FormFactorPrism6To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolygonalPrism *) ((FormFactorPrism6 *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPrism *) ((FormFactorPrism6 *) x)); } static void *_p_SimulationTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) ((Simulation *) x)); @@ -136302,12 +134993,6 @@ static void *_p_IFormFactorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { static void *_p_ISampleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) ((ISample *) x)); } -static void *_p_FormFactorPolygonalSurfaceTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalSurface *) x)); -} -static void *_p_FormFactorPolygonalPrismTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorPolygonalPrism *) x)); -} static void *_p_FormFactorLongBoxGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorLongBoxGauss *) x)); } @@ -136357,10 +135042,10 @@ static void *_p_RotationYTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IRotation *) ((RotationY *) x)); } static void *_p_FormFactorCantellatedCubeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); } static void *_p_FormFactorTruncatedCubeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } static void *_p_RotationZTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IRotation *) ((RotationZ *) x)); @@ -136414,10 +135099,10 @@ static void *_p_LayerTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISample *) ((Layer *) x)); } static void *_p_FormFactorAnisoPyramidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } static void *_p_FormFactorPyramidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorPyramid *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_FormFactorCylinderTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorCylinder *) x)); @@ -136480,7 +135165,7 @@ static void *_p_FootprintSquareTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory return (void *)((INode *) (IFootprintFactor *) ((FootprintSquare *) x)); } static void *_p_FormFactorCone6To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(FormFactorPolyhedron *) ((FormFactorCone6 *) x)); + return (void *)((INode *) (ISample *)(IFormFactor *)(IFormFactorBorn *)(IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } static void *_p_IFormFactorDecoratorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISample *)(IFormFactor *) ((IFormFactorDecorator *) x)); @@ -136701,32 +135386,32 @@ static void *_p_FTDistribution1DVoigtTo_p_IFTDistribution1D(void *x, int *SWIGUN static void *_p_CrystalTo_p_IClusteredParticles(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IClusteredParticles *) ((Crystal *) x)); } -static void *_p_FormFactorCuboctahedronTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); +static void *_p_FormFactorCuboctahedronTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorCuboctahedron *) x)); } -static void *_p_FormFactorDodecahedronTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); +static void *_p_FormFactorDodecahedronTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorDodecahedron *) x)); } -static void *_p_FormFactorIcosahedronTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); +static void *_p_FormFactorIcosahedronTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorIcosahedron *) x)); } -static void *_p_FormFactorTetrahedronTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); +static void *_p_FormFactorTetrahedronTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorTetrahedron *) x)); } -static void *_p_FormFactorCantellatedCubeTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); +static void *_p_FormFactorCantellatedCubeTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorCantellatedCube *) x)); } -static void *_p_FormFactorCone6To_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorCone6 *) x)); +static void *_p_FormFactorCone6To_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorCone6 *) x)); } -static void *_p_FormFactorTruncatedCubeTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); +static void *_p_FormFactorTruncatedCubeTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorTruncatedCube *) x)); } -static void *_p_FormFactorAnisoPyramidTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); +static void *_p_FormFactorAnisoPyramidTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorAnisoPyramid *) x)); } -static void *_p_FormFactorPyramidTo_p_FormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((FormFactorPolyhedron *) ((FormFactorPyramid *) x)); +static void *_p_FormFactorPyramidTo_p_IFormFactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFormFactorPolyhedron *) ((FormFactorPyramid *) x)); } static void *_p_ResolutionFunction2DGaussianTo_p_IResolutionFunction2D(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IResolutionFunction2D *) ((ResolutionFunction2DGaussian *) x)); @@ -136848,9 +135533,6 @@ static swig_type_info _swigt__p_FormFactorHollowSphere = {"_p_FormFactorHollowSp static swig_type_info _swigt__p_FormFactorIcosahedron = {"_p_FormFactorIcosahedron", "FormFactorIcosahedron *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FormFactorLongBoxGauss = {"_p_FormFactorLongBoxGauss", "FormFactorLongBoxGauss *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FormFactorLongBoxLorentz = {"_p_FormFactorLongBoxLorentz", "FormFactorLongBoxLorentz *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_FormFactorPolygonalPrism = {"_p_FormFactorPolygonalPrism", "FormFactorPolygonalPrism *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_FormFactorPolygonalSurface = {"_p_FormFactorPolygonalSurface", "FormFactorPolygonalSurface *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_FormFactorPolyhedron = {"_p_FormFactorPolyhedron", "FormFactorPolyhedron *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FormFactorPrism3 = {"_p_FormFactorPrism3", "FormFactorPrism3 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FormFactorPrism6 = {"_p_FormFactorPrism6", "FormFactorPrism6 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FormFactorPyramid = {"_p_FormFactorPyramid", "FormFactorPyramid *", 0, 0, (void*)0, 0}; @@ -136891,6 +135573,8 @@ static swig_type_info _swigt__p_IFootprintFactor = {"_p_IFootprintFactor", "IFoo static swig_type_info _swigt__p_IFormFactor = {"_p_IFormFactor", "std::vector< IFormFactor * >::value_type|IFormFactor *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IFormFactorBorn = {"_p_IFormFactorBorn", "IFormFactorBorn *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IFormFactorDecorator = {"_p_IFormFactorDecorator", "IFormFactorDecorator *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_IFormFactorPolyhedron = {"_p_IFormFactorPolyhedron", "IFormFactorPolyhedron *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_IFormFactorPrism = {"_p_IFormFactorPrism", "IFormFactorPrism *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IHistogram = {"_p_IHistogram", "IHistogram *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IIntensityFunction = {"_p_IIntensityFunction", "IIntensityFunction *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IInterferenceFunction = {"_p_IInterferenceFunction", "IInterferenceFunction *", 0, 0, (void*)0, 0}; @@ -136972,10 +135656,6 @@ static swig_type_info _swigt__p_ParticleLimits = {"_p_ParticleLimits", "Particle static swig_type_info _swigt__p_PoissonNoiseBackground = {"_p_PoissonNoiseBackground", "PoissonNoiseBackground *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Polygon = {"_p_Polygon", "Polygon *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_PolygonPrivate = {"_p_PolygonPrivate", "PolygonPrivate *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_PolygonalTopology = {"_p_PolygonalTopology", "PolygonalTopology *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_PolyhedralEdge = {"_p_PolyhedralEdge", "PolyhedralEdge *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_PolyhedralFace = {"_p_PolyhedralFace", "PolyhedralFace *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_PolyhedralTopology = {"_p_PolyhedralTopology", "PolyhedralTopology *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_ProgressHandler__Callback_t = {"_p_ProgressHandler__Callback_t", "ProgressHandler::Callback_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_PyBuilderCallback = {"_p_PyBuilderCallback", "PyBuilderCallback *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_PyObserverCallback = {"_p_PyObserverCallback", "PyObserverCallback *", 0, 0, (void*)0, 0}; @@ -137081,7 +135761,6 @@ static swig_type_info _swigt__p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t static swig_type_info _swigt__p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t = {"_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t", "std::vector< Material const *,std::allocator< Material const * > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t = {"_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t", "std::vector< ParaMeta,std::allocator< ParaMeta > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t = {"_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t", "std::vector< ParameterSample,std::allocator< ParameterSample > > *|std::vector< ParameterSample > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t = {"_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t", "std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t = {"_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t", "std::vector< RealParameter *,std::allocator< RealParameter * > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t = {"_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t", "std::vector< SimulationElement,std::allocator< SimulationElement > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_double_std__allocatorT_double_t_t = {"_p_std__vectorT_double_std__allocatorT_double_t_t", "std::vector< double,std::allocator< double > > *|std::vector< double > *", 0, 0, (void*)0, 0}; @@ -137189,9 +135868,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_FormFactorIcosahedron, &_swigt__p_FormFactorLongBoxGauss, &_swigt__p_FormFactorLongBoxLorentz, - &_swigt__p_FormFactorPolygonalPrism, - &_swigt__p_FormFactorPolygonalSurface, - &_swigt__p_FormFactorPolyhedron, &_swigt__p_FormFactorPrism3, &_swigt__p_FormFactorPrism6, &_swigt__p_FormFactorPyramid, @@ -137232,6 +135908,8 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_IFormFactor, &_swigt__p_IFormFactorBorn, &_swigt__p_IFormFactorDecorator, + &_swigt__p_IFormFactorPolyhedron, + &_swigt__p_IFormFactorPrism, &_swigt__p_IHistogram, &_swigt__p_IIntensityFunction, &_swigt__p_IInterferenceFunction, @@ -137313,10 +135991,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_PoissonNoiseBackground, &_swigt__p_Polygon, &_swigt__p_PolygonPrivate, - &_swigt__p_PolygonalTopology, - &_swigt__p_PolyhedralEdge, - &_swigt__p_PolyhedralFace, - &_swigt__p_PolyhedralTopology, &_swigt__p_ProgressHandler__Callback_t, &_swigt__p_PyBuilderCallback, &_swigt__p_PyObserverCallback, @@ -137422,7 +136096,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t, &_swigt__p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t, &_swigt__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t, - &_swigt__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t, &_swigt__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t, &_swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t, &_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, @@ -137530,9 +136203,6 @@ static swig_cast_info _swigc__p_FormFactorHollowSphere[] = { {&_swigt__p_FormFa static swig_cast_info _swigc__p_FormFactorIcosahedron[] = { {&_swigt__p_FormFactorIcosahedron, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FormFactorLongBoxGauss[] = { {&_swigt__p_FormFactorLongBoxGauss, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FormFactorLongBoxLorentz[] = { {&_swigt__p_FormFactorLongBoxLorentz, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_FormFactorPolygonalPrism[] = { {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_FormFactorPolygonalPrism, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_FormFactorPolygonalPrism, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, 0, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_FormFactorPolygonalPrism, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_FormFactorPolygonalSurface[] = { {&_swigt__p_FormFactorPolygonalSurface, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_FormFactorPolyhedron[] = { {&_swigt__p_FormFactorPolyhedron, 0, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_FormFactorPolyhedron, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_FormFactorPolyhedron, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FormFactorPrism3[] = { {&_swigt__p_FormFactorPrism3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FormFactorPrism6[] = { {&_swigt__p_FormFactorPrism6, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FormFactorPyramid[] = { {&_swigt__p_FormFactorPyramid, 0, 0, 0},{0, 0, 0, 0}}; @@ -137556,7 +136226,7 @@ static swig_cast_info _swigc__p_IAbstractParticle[] = { {&_swigt__p_ParticleCom static swig_cast_info _swigc__p_IAxis[] = { {&_swigt__p_IAxis, 0, 0, 0}, {&_swigt__p_VariableBinAxis, _p_VariableBinAxisTo_p_IAxis, 0, 0}, {&_swigt__p_ConstKBinAxis, _p_ConstKBinAxisTo_p_IAxis, 0, 0}, {&_swigt__p_CustomBinAxis, _p_CustomBinAxisTo_p_IAxis, 0, 0}, {&_swigt__p_FixedBinAxis, _p_FixedBinAxisTo_p_IAxis, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IBackground[] = { {&_swigt__p_IBackground, 0, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IBackground, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IBackground, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IChiSquaredModule[] = { {&_swigt__p_IChiSquaredModule, 0, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_IChiSquaredModule, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionGate, _p_RangedDistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ICloneable, 0, 0}, {&_swigt__p_IUnitConverter, _p_IUnitConverterTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_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_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_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_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistribution, _p_RangedDistributionTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ParameterPool, _p_ParameterPoolTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ICloneable, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionGaussian, _p_RangedDistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_ScanResolution, _p_ScanResolutionTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionCosine, _p_RangedDistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_ICloneable, 0, 0}, {&_swigt__p_QSpecScan, _p_QSpecScanTo_p_ICloneable, 0, 0}, {&_swigt__p_AngularSpecScan, _p_AngularSpecScanTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ICloneable, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_ISpecularScan, _p_ISpecularScanTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_ICloneable, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionLogNormal, _p_RangedDistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionLorentz, _p_RangedDistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionGate, _p_RangedDistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_IUnitConverter, _p_IUnitConverterTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_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_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_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_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_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistribution, _p_RangedDistributionTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_ParameterPool, _p_ParameterPoolTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ICloneable, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionGaussian, _p_RangedDistributionGaussianTo_p_ICloneable, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_ICloneable, 0, 0}, {&_swigt__p_ScanResolution, _p_ScanResolutionTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionCosine, _p_RangedDistributionCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_ICloneable, 0, 0}, {&_swigt__p_QSpecScan, _p_QSpecScanTo_p_ICloneable, 0, 0}, {&_swigt__p_AngularSpecScan, _p_AngularSpecScanTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ICloneable, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_ISpecularScan, _p_ISpecularScanTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_ICloneable, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionLogNormal, _p_RangedDistributionLogNormalTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_RangedDistributionLorentz, _p_RangedDistributionLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_ICloneable, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IClusteredParticles[] = { {&_swigt__p_IClusteredParticles, 0, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_IClusteredParticles, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_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_IDetector[] = { {&_swigt__p_IDetector, 0, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IDetector, 0, 0},{0, 0, 0, 0}}; @@ -137570,21 +136240,23 @@ static swig_cast_info _swigc__p_IFTDistribution2D[] = { {&_swigt__p_FTDistribut static swig_cast_info _swigc__p_IFactoryT_std__string_IMultiLayerBuilder_t[] = { {&_swigt__p_IFactoryT_std__string_IMultiLayerBuilder_t, 0, 0, 0}, {&_swigt__p_SampleBuilderFactory, _p_SampleBuilderFactoryTo_p_IFactoryT_std__string_IMultiLayerBuilder_t, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFactoryT_std__string_Simulation_t[] = { {&_swigt__p_SimulationFactory, _p_SimulationFactoryTo_p_IFactoryT_std__string_Simulation_t, 0, 0}, {&_swigt__p_IFactoryT_std__string_Simulation_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFootprintFactor[] = { {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_IFootprintFactor, 0, 0}, {&_swigt__p_IFootprintFactor, 0, 0, 0}, {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_IFootprintFactor, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_IFormFactor[] = { {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactor, 0, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IFormFactor, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IFormFactor, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactor, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_IFormFactorBorn[] = { {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IFormFactorBorn, 0, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactorBorn, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_IFormFactor[] = { {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactor, 0, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IFormFactor, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IFormFactor, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactor, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_IFormFactorBorn[] = { {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IFormFactorBorn, 0, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactorBorn, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormFactorDecorator[] = { {&_swigt__p_IFormFactorDecorator, 0, 0, 0},{0, 0, 0, 0}}; +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_IHistogram[] = { {&_swigt__p_IHistogram, 0, 0, 0}, {&_swigt__p_Histogram2D, _p_Histogram2DTo_p_IHistogram, 0, 0}, {&_swigt__p_Histogram1D, _p_Histogram1DTo_p_IHistogram, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IIntensityFunction[] = { {&_swigt__p_IntensityFunctionSqrt, _p_IntensityFunctionSqrtTo_p_IIntensityFunction, 0, 0}, {&_swigt__p_IIntensityFunction, 0, 0, 0}, {&_swigt__p_IntensityFunctionLog, _p_IntensityFunctionLogTo_p_IIntensityFunction, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IInterferenceFunction[] = { {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_IInterferenceFunction, 0, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IInterferenceFunction, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_IInterferenceFunction, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ILatticeOrientation[] = { {&_swigt__p_ILatticeOrientation, 0, 0, 0}, {&_swigt__p_MillerIndexOrientation, _p_MillerIndexOrientationTo_p_ILatticeOrientation, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ILayout[] = { {&_swigt__p_ILayout, 0, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ILayout, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMultiLayerBuilder[] = { {&_swigt__p_IMultiLayerBuilder, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_INode, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INode, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INode, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INode, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0}, {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_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_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INode, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INode, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INode, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INode, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_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_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INode, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INode, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0}, {&_swigt__p_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_FootprintGauss, _p_FootprintGaussTo_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_IFormFactorBorn, _p_IFormFactorBornTo_p_INode, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INode, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_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_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INode, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INode, 0, 0}, {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_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_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_INode, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INode, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_INode, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INode, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INode, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INode, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INode, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0}, {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_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_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INode, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_INode, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INode, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INode, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INode, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INode, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_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_ISample, _p_ISampleTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INode, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0}, {&_swigt__p_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_FootprintGauss, _p_FootprintGaussTo_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_IFormFactorBorn, _p_IFormFactorBornTo_p_INode, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INode, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INode, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INode, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_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_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INode, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INode, 0, 0}, {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INode, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_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_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_INode, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INode, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_INode, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_INodeVisitor[] = { {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IObservable[] = { {&_swigt__p_IObservable, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IObserver[] = { {&_swigt__p_IObserver, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParameterT_double_t[] = { {&_swigt__p_IParameterT_double_t, 0, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_IParameterT_double_t, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_IParameterized[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_IParameterized, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IParameterized, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_INode, _p_INodeTo_p_IParameterized, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IParameterized, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IParameterized, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParameterized, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IParameterized, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_IParameterized, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_IParameterized, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_IParameterized, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_IParameterized, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_IParameterized, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IParameterized, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IParameterized, 0, 0}, {&_swigt__p_IParameterized, 0, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IParameterized, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IParameterized, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_IParameterized[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_IBackground, _p_IBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IParameterized, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_IParameterized, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IParameterized, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetector, _p_IDetectorTo_p_IParameterized, 0, 0}, {&_swigt__p_INode, _p_INodeTo_p_IParameterized, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IParameterized, 0, 0}, {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IParameterized, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParameterized, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_IParameterized, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IParameterized, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_IParameterized, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_IParameterized, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_IParameterized, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_IParameterized, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IParameterized, 0, 0}, {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_IParameterized, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_IParameterized, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_IParameterized, 0, 0}, {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IParameterized, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_IParameterized, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IParameterized, 0, 0}, {&_swigt__p_IParameterized, 0, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_IParameterized, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IParameterized, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_IParameterized, 0, 0}, {&_swigt__p_Simulation2D, _p_Simulation2DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_IParameterized, 0, 0}, {&_swigt__p_Lattice, _p_LatticeTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_IParameterized, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IParameterized, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParticle[] = { {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParticle, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParticle, 0, 0}, {&_swigt__p_IParticle, 0, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParticle, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_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_IPixel[] = { {&_swigt__p_IPixel, 0, 0, 0},{0, 0, 0, 0}}; @@ -137592,7 +136264,7 @@ static swig_cast_info _swigc__p_IProfileRectangularRipple[] = { {&_swigt__p_IPr 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_IResolutionFunction2D[] = { {&_swigt__p_IResolutionFunction2D, 0, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IResolutionFunction2D, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IRotation[] = { {&_swigt__p_RotationY, _p_RotationYTo_p_IRotation, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IRotation, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_IRotation, 0, 0}, {&_swigt__p_IRotation, 0, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IRotation, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_IRotation, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ISample[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ISample, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISample, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ISample, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISample, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ISample, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ISample, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ISample, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ISample, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ISample, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISample, 0, 0}, {&_swigt__p_ISample, 0, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ISample, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ISample, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ISample, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ISample, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_ISample, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ISample, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ISample, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ISample, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ISample, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISample, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ISample, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ISample, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ISample, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_ISample, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ISample[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ISample, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISample, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ISample, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISample, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ISample, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ISample, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ISample, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ISample, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ISample, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISample, 0, 0}, {&_swigt__p_ISample, 0, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionHardDisk, _p_InterferenceFunctionHardDiskTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ISample, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ISample, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ISample, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ISample, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ISample, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionTwin, _p_InterferenceFunctionTwinTo_p_ISample, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ISample, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_ISample, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ISample, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ISample, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISample, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ISample, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ISample, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ISample, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_ISample, 0, 0}, {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionFinite2DLattice, _p_InterferenceFunctionFinite2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction3DLattice, _p_InterferenceFunction3DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DSuperLattice, _p_InterferenceFunction2DSuperLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ISample, 0, 0}, {&_swigt__p_InterferenceFunctionFinite3DLattice, _p_InterferenceFunctionFinite3DLatticeTo_p_ISample, 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_IShape2D[] = { {&_swigt__p_Polygon, _p_PolygonTo_p_IShape2D, 0, 0}, {&_swigt__p_Line, _p_LineTo_p_IShape2D, 0, 0}, {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_IShape2D, 0, 0}, {&_swigt__p_Ellipse, _p_EllipseTo_p_IShape2D, 0, 0}, {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_IShape2D, 0, 0}, {&_swigt__p_Rectangle, _p_RectangleTo_p_IShape2D, 0, 0}, {&_swigt__p_IShape2D, 0, 0, 0},{0, 0, 0, 0}}; @@ -137654,10 +136326,6 @@ static swig_cast_info _swigc__p_ParticleLimits[] = { {&_swigt__p_ParticleLimits static swig_cast_info _swigc__p_PoissonNoiseBackground[] = { {&_swigt__p_PoissonNoiseBackground, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Polygon[] = { {&_swigt__p_Polygon, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_PolygonPrivate[] = { {&_swigt__p_PolygonPrivate, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_PolygonalTopology[] = { {&_swigt__p_PolygonalTopology, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_PolyhedralEdge[] = { {&_swigt__p_PolyhedralEdge, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_PolyhedralFace[] = { {&_swigt__p_PolyhedralFace, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_PolyhedralTopology[] = { {&_swigt__p_PolyhedralTopology, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ProgressHandler__Callback_t[] = { {&_swigt__p_ProgressHandler__Callback_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_PyBuilderCallback[] = { {&_swigt__p_PyBuilderCallback, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_PyObserverCallback[] = { {&_swigt__p_PyObserverCallback, 0, 0, 0},{0, 0, 0, 0}}; @@ -137763,7 +136431,6 @@ static swig_cast_info _swigc__p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t static swig_cast_info _swigc__p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t[] = { {&_swigt__p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t[] = { {&_swigt__p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t[] = { {&_swigt__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t[] = { {&_swigt__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t[] = { {&_swigt__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t[] = { {&_swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_double_std__allocatorT_double_t_t[] = { {&_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -137871,9 +136538,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_FormFactorIcosahedron, _swigc__p_FormFactorLongBoxGauss, _swigc__p_FormFactorLongBoxLorentz, - _swigc__p_FormFactorPolygonalPrism, - _swigc__p_FormFactorPolygonalSurface, - _swigc__p_FormFactorPolyhedron, _swigc__p_FormFactorPrism3, _swigc__p_FormFactorPrism6, _swigc__p_FormFactorPyramid, @@ -137914,6 +136578,8 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_IFormFactor, _swigc__p_IFormFactorBorn, _swigc__p_IFormFactorDecorator, + _swigc__p_IFormFactorPolyhedron, + _swigc__p_IFormFactorPrism, _swigc__p_IHistogram, _swigc__p_IIntensityFunction, _swigc__p_IInterferenceFunction, @@ -137995,10 +136661,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_PoissonNoiseBackground, _swigc__p_Polygon, _swigc__p_PolygonPrivate, - _swigc__p_PolygonalTopology, - _swigc__p_PolyhedralEdge, - _swigc__p_PolyhedralFace, - _swigc__p_PolyhedralTopology, _swigc__p_ProgressHandler__Callback_t, _swigc__p_PyBuilderCallback, _swigc__p_PyObserverCallback, @@ -138104,7 +136766,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t, _swigc__p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t, _swigc__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t, - _swigc__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t, _swigc__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t, _swigc__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t, _swigc__p_std__vectorT_double_std__allocatorT_double_t_t,