From 04a6cbd7fdff4bc813a6058af7062d012b900c5a Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 21 Apr 2016 14:00:04 +0200 Subject: [PATCH] Dodecahedron reacts to parameter change. This almost solves bug 1413. Still TODO: same for prisms. --- Core/FormFactors/FormFactorCone6.cpp | 103 ++-- Core/FormFactors/FormFactorCone6.h | 15 +- Core/FormFactors/FormFactorCuboctahedron.cpp | 100 ++-- Core/FormFactors/FormFactorCuboctahedron.h | 26 +- Core/FormFactors/FormFactorIcosahedron.cpp | 70 +-- Core/FormFactors/FormFactorIcosahedron.h | 12 +- Core/FormFactors/FormFactorPyramid.cpp | 91 ++- Core/FormFactors/FormFactorPyramid.h | 10 +- Core/FormFactors/FormFactorTetrahedron.cpp | 93 ++- Core/FormFactors/FormFactorTetrahedron.h | 27 +- Core/FormFactors/FormFactorTruncatedCube.cpp | 81 ++- Core/FormFactors/FormFactorTruncatedCube.h | 9 +- Core/PythonAPI/libBornAgainCore.py | 174 +----- Core/PythonAPI/libBornAgainCore_wrap.cxx | 539 ++---------------- Core/Tools/BornAgainNamespace.h | 1 + Core/Tools/IParameterized.h | 2 +- Doc/UserManual/FormFactors.tex | 6 +- .../JWu/{dode_test.py => par_changed.py} | 9 +- 18 files changed, 357 insertions(+), 1011 deletions(-) rename dev-tools/ad-hoc/JWu/{dode_test.py => par_changed.py} (75%) diff --git a/Core/FormFactors/FormFactorCone6.cpp b/Core/FormFactors/FormFactorCone6.cpp index d59e724916c..409d14a8332 100644 --- a/Core/FormFactors/FormFactorCone6.cpp +++ b/Core/FormFactors/FormFactorCone6.cpp @@ -18,25 +18,36 @@ #include <cmath> -FormFactorCone6::FormFactorCone6(double radius, double height, double alpha) - : FormFactorPolyhedron( polyhedral_faces( radius, height, alpha ), 0. ) - , m_radius(radius) +FormFactorCone6::FormFactorCone6(double base_edge, double height, double alpha) + : FormFactorPolyhedron() + , m_base_edge(base_edge) , m_height(height) , m_alpha(alpha) { setName(BornAgain::FFCone6Type); - check_initialization(); - init_parameters(); + registerParameter(BornAgain::BaseEdge, &m_base_edge, AttLimits::n_positive()); + registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); + registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + onChange(); } -std::vector<PolyhedralFace> FormFactorCone6::polyhedral_faces( - double radius, double height, double alpha) +void FormFactorCone6::onChange() { - std::vector<PolyhedralFace> faces; - double a = radius; + if(m_height > m_base_edge*std::tan(m_alpha)) { + std::ostringstream ostr; + ostr << "FormFactorCone6() -> Error in class initialization with parameters"; + ostr << " base_edge:" << m_base_edge; + ostr << " height:" << m_height; + ostr << " alpha[rad]:" << m_alpha << "\n\n"; + ostr << "Check for 'height <= base_edge*tan(alpha)' failed."; + throw Exceptions::ClassInitializationException(ostr.str()); + } + + m_faces.clear(); + double a = m_base_edge; double as = a/2; double ac = a*sqrt(3)/2; - double b = radius - 2*height/sqrt(3)/std::tan(alpha); + double b = m_base_edge - 2*m_height/sqrt(3)/std::tan(m_alpha); if( std::abs(b)<1e-14*a ) { // true pyramid @@ -49,14 +60,14 @@ std::vector<PolyhedralFace> FormFactorCone6::polyhedral_faces( { -as, -ac, 0. }, { as, -ac, 0. }, // top: - { 0., 0., height } }; - faces.push_back( PolyhedralFace( { V[ 5], V[ 4], V[ 3], V[ 2], V[ 1], V[ 0] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 0], V[ 1], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 1], V[ 2], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 3], V[ 4], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 4], V[ 5], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 5], V[ 0], V[ 6] } ) ); + { 0., 0., m_height } }; + m_faces.push_back( PolyhedralFace( { V[ 5], V[ 4], V[ 3], V[ 2], V[ 1], V[ 0] }, true ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 1], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 1], V[ 2], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 3], V[ 4], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 4], V[ 5], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 5], V[ 0], V[ 6] } ) ); } else { // frustum @@ -72,51 +83,31 @@ std::vector<PolyhedralFace> FormFactorCone6::polyhedral_faces( { -as, -ac, 0. }, { as, -ac, 0. }, // top: - { b, 0., height }, - { bs, bc, height }, - { -bs, bc, height }, - { -b, 0., height }, - { -bs, -bc, height }, - { bs, -bc, height } }; - faces.push_back( PolyhedralFace( { V[ 5], V[ 4], V[ 3], V[ 2], V[ 1], V[ 0] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 0], V[ 1], V[ 7], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 1], V[ 2], V[ 8], V[ 7] } ) ); - faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 9], V[ 8] } ) ); - faces.push_back( PolyhedralFace( { V[ 3], V[ 4], V[10], V[ 9] } ) ); - faces.push_back( PolyhedralFace( { V[ 4], V[ 5], V[11], V[10] } ) ); - faces.push_back( PolyhedralFace( { V[ 5], V[ 0], V[ 6], V[11] } ) ); - faces.push_back( PolyhedralFace( { V[ 6], V[ 7], V[ 8], V[ 9], V[10], V[11] }, true ) ); - - } - return faces; -} + { b, 0., m_height }, + { bs, bc, m_height }, + { -bs, bc, m_height }, + { -b, 0., m_height }, + { -bs, -bc, m_height }, + { bs, -bc, m_height } }; + m_faces.push_back( PolyhedralFace( { V[ 5], V[ 4], V[ 3], V[ 2], V[ 1], V[ 0] }, true ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 1], V[ 7], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 1], V[ 2], V[ 8], V[ 7] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 9], V[ 8] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 3], V[ 4], V[10], V[ 9] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 4], V[ 5], V[11], V[10] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 5], V[ 0], V[ 6], V[11] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 6], V[ 7], V[ 8], V[ 9], V[10], V[11] }, true ) ); -bool FormFactorCone6::check_initialization() const -{ - bool result(true); - if(m_height > m_radius*std::tan(m_alpha)) { - std::ostringstream ostr; - ostr << "FormFactorCone6() -> Error in class initialization with parameters"; - ostr << " radius:" << m_radius; - ostr << " height:" << m_height; - ostr << " alpha[rad]:" << m_alpha << "\n\n"; - ostr << "Check for 'height <= radius*tan(alpha)' failed."; - throw Exceptions::ClassInitializationException(ostr.str()); } - return result; -} + m_z_origin = 0; + m_sym_Ci = false; -void FormFactorCone6::init_parameters() -{ - clearParameterPool(); - registerParameter(BornAgain::Radius, &m_radius, AttLimits::n_positive()); - registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); - registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + FormFactorPolyhedron::precompute(); } FormFactorCone6* FormFactorCone6::clone() const { - return new FormFactorCone6(m_radius, m_height, m_alpha); + return new FormFactorCone6(m_base_edge, m_height, m_alpha); } void FormFactorCone6::accept(ISampleVisitor *visitor) const diff --git a/Core/FormFactors/FormFactorCone6.h b/Core/FormFactors/FormFactorCone6.h index cb79a2fc906..f610b6a8811 100644 --- a/Core/FormFactors/FormFactorCone6.h +++ b/Core/FormFactors/FormFactorCone6.h @@ -25,27 +25,20 @@ class BA_CORE_API_ FormFactorCone6 : public FormFactorPolyhedron { public: //! @brief Cone6 constructor - //! @param radius of hexagonal base (different from R in IsGisaxs) + //! @param base_edge of hexagonal base (different from R in IsGisaxs) //! @param height of Cone6 //! @param angle in radians between base and facet - FormFactorCone6(double radius, double height, double alpha); - - static std::vector<PolyhedralFace> polyhedral_faces( - double radius, double height, double alpha); + FormFactorCone6(double base_edge, double height, double alpha); virtual FormFactorCone6* clone() const; - virtual void accept(ISampleVisitor *visitor) const; double getHeight() const { return m_height; } double getAlpha() const { return m_alpha; } -protected: - virtual bool check_initialization() const; - virtual void init_parameters(); - private: - double m_radius; + virtual void onChange() final; + double m_base_edge; double m_height; double m_alpha; }; diff --git a/Core/FormFactors/FormFactorCuboctahedron.cpp b/Core/FormFactors/FormFactorCuboctahedron.cpp index 56839fbcbdb..1d89df7af00 100644 --- a/Core/FormFactors/FormFactorCuboctahedron.cpp +++ b/Core/FormFactors/FormFactorCuboctahedron.cpp @@ -18,60 +18,30 @@ #include "FormFactorPyramid.h" #include "MathFunctions.h" +//! @brief Cuboctahedron constructor +//! @param length of one side of Cuboctahedron's square base +//! @param height of bottom of Cuboctahedron +//! @param height_ratio: height top part/height bottom part +//! @param alpha: angle in radians between base and facet + FormFactorCuboctahedron::FormFactorCuboctahedron( double length, double height, double height_ratio, double alpha) - : FormFactorPolyhedron( polyhedral_faces( length, height, height_ratio, alpha ), 0. ) + : FormFactorPolyhedron() , m_length(length) , m_height(height) , m_height_ratio(height_ratio) , m_alpha(alpha) { setName(BornAgain::FFCuboctahedronType); - check_initialization(); - init_parameters(); -} - -std::vector<PolyhedralFace> FormFactorCuboctahedron::polyhedral_faces( - double length, double height, double height_ratio, double alpha) -{ - double a = length/2 - height/std::tan(alpha); - double b = length/2; - double c = length/2 - height*height_ratio/std::tan(alpha); - - kvector_t V[12] = { - // base: - { -a, -a, 0. }, - { a, -a, 0. }, - { a, a, 0. }, - { -a, a, 0. }, - // middle - { -b, -b, height }, - { b, -b, height }, - { b, b, height }, - { -b, b, height }, - // top - { -c, -c, height*(1+height_ratio) }, - { c, -c, height*(1+height_ratio) }, - { c, c, height*(1+height_ratio) }, - { -c, c, height*(1+height_ratio) } }; - std::vector<PolyhedralFace> faces; - faces.push_back( PolyhedralFace( { V[ 3], V[ 2], V[ 1], V[ 0] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 0], V[ 1], V[ 5], V[ 4] } ) ); - faces.push_back( PolyhedralFace( { V[ 1], V[ 2], V[ 6], V[ 5] } ) ); - faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 7], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 3], V[ 0], V[ 4], V[ 7] } ) ); - faces.push_back( PolyhedralFace( { V[ 4], V[ 5], V[ 9], V[ 8] } ) ); - faces.push_back( PolyhedralFace( { V[ 5], V[ 6], V[10], V[ 9] } ) ); - faces.push_back( PolyhedralFace( { V[ 6], V[ 7], V[11], V[10] } ) ); - faces.push_back( PolyhedralFace( { V[ 7], V[ 4], V[ 8], V[11] } ) ); - faces.push_back( PolyhedralFace( { V[ 8], V[ 9], V[10], V[11] }, true ) ); - - return faces; + registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); + registerParameter(BornAgain::HeightRatio, &m_height_ratio, AttLimits::n_positive()); + registerParameter(BornAgain::Length, &m_length, AttLimits::n_positive()); + registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + onChange(); } -bool FormFactorCuboctahedron::check_initialization() const +void FormFactorCuboctahedron::onChange() { - bool result(true); if(2.*m_height > m_length*std::tan(m_alpha)*std::min(1.,1.0/m_height_ratio)) { std::ostringstream ostr; ostr << "FormFactorCuboctahedron() -> Error in class initialization with parameters"; @@ -82,16 +52,42 @@ bool FormFactorCuboctahedron::check_initialization() const ostr << "Check for '2.*height <= length*tan(alpha)*min(1.,1.0/height_ratio)' failed."; throw Exceptions::ClassInitializationException(ostr.str()); } - return result; -} + double a = m_length/2 - m_height/std::tan(m_alpha); + double b = m_length/2; + double c = m_length/2 - m_height*m_height_ratio/std::tan(m_alpha); -void FormFactorCuboctahedron::init_parameters() -{ - clearParameterPool(); - registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); - registerParameter(BornAgain::HeightRatio, &m_height_ratio, AttLimits::n_positive()); - registerParameter(BornAgain::Length, &m_length, AttLimits::n_positive()); - registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + kvector_t V[12] = { + // base: + { -a, -a, 0. }, + { a, -a, 0. }, + { a, a, 0. }, + { -a, a, 0. }, + // middle + { -b, -b, m_height }, + { b, -b, m_height }, + { b, b, m_height }, + { -b, b, m_height }, + // top + { -c, -c, m_height*(1+m_height_ratio) }, + { c, -c, m_height*(1+m_height_ratio) }, + { c, c, m_height*(1+m_height_ratio) }, + { -c, c, m_height*(1+m_height_ratio) } }; + m_faces.clear(); + m_faces.push_back( PolyhedralFace( { V[ 3], V[ 2], V[ 1], V[ 0] }, true ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 1], V[ 5], V[ 4] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 1], V[ 2], V[ 6], V[ 5] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 7], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 3], V[ 0], V[ 4], V[ 7] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 4], V[ 5], V[ 9], V[ 8] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 5], V[ 6], V[10], V[ 9] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 6], V[ 7], V[11], V[10] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 7], V[ 4], V[ 8], V[11] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 8], V[ 9], V[10], V[11] }, true ) ); + + m_z_origin = 0; + m_sym_Ci = false; + + FormFactorPolyhedron::precompute(); } FormFactorCuboctahedron* FormFactorCuboctahedron::clone() const diff --git a/Core/FormFactors/FormFactorCuboctahedron.h b/Core/FormFactors/FormFactorCuboctahedron.h index 1cf86695051..73288e7b6c1 100644 --- a/Core/FormFactors/FormFactorCuboctahedron.h +++ b/Core/FormFactors/FormFactorCuboctahedron.h @@ -25,29 +25,18 @@ class BA_CORE_API_ FormFactorCuboctahedron : public FormFactorPolyhedron { public: - //! @brief Cuboctahedron constructor - //! @param length of one side of Cuboctahedron's square base - //! @param height of bottom of Cuboctahedron - //! @param height_ratio : height top part/height bottom part - //! @param angle in radians between base and facet - FormFactorCuboctahedron(double length, double height, double height_ratio, double alpha); - virtual ~FormFactorCuboctahedron() {} - - static std::vector<PolyhedralFace> polyhedral_faces( - double length, double height, double height_ratio, double alpha); virtual FormFactorCuboctahedron *clone() const final; virtual void accept(ISampleVisitor *visitor) const final; - double getHeight() const; - double getHeightRatio() const; - double getLength() const; - double getAlpha() const; + double getLength() const { return m_length; } + double getHeight() const { return m_height; } + double getHeightRatio() const { return m_height_ratio; } + double getAlpha() const { return m_alpha; } private: - virtual bool check_initialization() const final; - virtual void init_parameters() final; + virtual void onChange() final; double m_length; double m_height; @@ -55,9 +44,4 @@ private: double m_alpha; }; -inline double FormFactorCuboctahedron::getHeight() const { return m_height; } -inline double FormFactorCuboctahedron::getHeightRatio() const { return m_height_ratio; } -inline double FormFactorCuboctahedron::getLength() const { return m_length; } -inline double FormFactorCuboctahedron::getAlpha() const { return m_alpha; } - #endif // FORMFACTORCUBOCTAHEDRON_H diff --git a/Core/FormFactors/FormFactorIcosahedron.cpp b/Core/FormFactors/FormFactorIcosahedron.cpp index a092b26c417..baf38aea1a5 100644 --- a/Core/FormFactors/FormFactorIcosahedron.cpp +++ b/Core/FormFactors/FormFactorIcosahedron.cpp @@ -20,18 +20,17 @@ FormFactorIcosahedron::FormFactorIcosahedron(double edge) - : FormFactorPolyhedron( polyhedral_faces(edge), -0.7557613140761708*edge, true ) + : FormFactorPolyhedron() , m_edge(edge) { setName(BornAgain::FFIcosahedronType); - check_initialization(); - assert_platonic(); - init_parameters(); + registerParameter(BornAgain::Edge, &m_edge); + onChange(); } -std::vector<PolyhedralFace> FormFactorIcosahedron::polyhedral_faces(double edge) +void FormFactorIcosahedron::onChange() { - double a = edge; + double a = m_edge; kvector_t V[12] = { { 0.5773502691896258*a, 0*a, -0.7557613140761708*a}, { -0.288675134594813*a, 0.5*a, -0.7557613140761708*a}, @@ -45,40 +44,39 @@ std::vector<PolyhedralFace> FormFactorIcosahedron::polyhedral_faces(double edge) { -0.5773502691896258*a, 0*a, 0.7557613140761708*a}, { 0.288675134594813*a, 0.5*a, 0.7557613140761708*a}, { 0.288675134594813*a, -0.5*a, 0.7557613140761708*a} }; - std::vector<PolyhedralFace> faces; + m_faces.clear(); // bottom: - faces.push_back( PolyhedralFace( { V[ 0], V[ 2], V[ 1] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 2], V[ 1] } ) ); // 1st row: - faces.push_back( PolyhedralFace( { V[ 0], V[ 5], V[ 2] } ) ); - faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 1] } ) ); - faces.push_back( PolyhedralFace( { V[ 1], V[ 4], V[ 0] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 5], V[ 2] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 2], V[ 3], V[ 1] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 1], V[ 4], V[ 0] } ) ); // 2nd row: - faces.push_back( PolyhedralFace( { V[ 0], V[ 6], V[ 5] } ) ); - faces.push_back( PolyhedralFace( { V[ 2], V[ 5], V[ 8] } ) ); - faces.push_back( PolyhedralFace( { V[ 2], V[ 8], V[ 3] } ) ); - faces.push_back( PolyhedralFace( { V[ 1], V[ 3], V[ 7] } ) ); - faces.push_back( PolyhedralFace( { V[ 1], V[ 7], V[ 4] } ) ); - faces.push_back( PolyhedralFace( { V[ 0], V[ 4], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 6], V[ 5] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 2], V[ 5], V[ 8] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 2], V[ 8], V[ 3] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 1], V[ 3], V[ 7] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 1], V[ 7], V[ 4] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 0], V[ 4], V[ 6] } ) ); // 3rd row: - faces.push_back( PolyhedralFace( { V[ 3], V[ 8], V[ 9] } ) ); - faces.push_back( PolyhedralFace( { V[ 5], V[11], V[ 8] } ) ); - faces.push_back( PolyhedralFace( { V[ 5], V[ 6], V[11] } ) ); - faces.push_back( PolyhedralFace( { V[ 4], V[10], V[ 6] } ) ); - faces.push_back( PolyhedralFace( { V[ 4], V[ 7], V[10] } ) ); - faces.push_back( PolyhedralFace( { V[ 3], V[ 9], V[ 7] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 3], V[ 8], V[ 9] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 5], V[11], V[ 8] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 5], V[ 6], V[11] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 4], V[10], V[ 6] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 4], V[ 7], V[10] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 3], V[ 9], V[ 7] } ) ); // 4th row: - faces.push_back( PolyhedralFace( { V[ 8], V[11], V[ 9] } ) ); - faces.push_back( PolyhedralFace( { V[ 6], V[10], V[11] } ) ); - faces.push_back( PolyhedralFace( { V[ 7], V[ 9], V[10] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 8], V[11], V[ 9] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 6], V[10], V[11] } ) ); + m_faces.push_back( PolyhedralFace( { V[ 7], V[ 9], V[10] } ) ); // top: - faces.push_back( PolyhedralFace( { V[ 9], V[11], V[10] } ) ); - return faces; -} + m_faces.push_back( PolyhedralFace( { V[ 9], V[11], V[10] } ) ); + assert_platonic(); -void FormFactorIcosahedron::init_parameters() -{ - clearParameterPool(); - registerParameter(BornAgain::Edge, &m_edge); + m_z_origin = -0.7557613140761708*a; + m_sym_Ci = true; + + FormFactorPolyhedron::precompute(); } FormFactorIcosahedron* FormFactorIcosahedron::clone() const @@ -90,9 +88,3 @@ void FormFactorIcosahedron::accept(ISampleVisitor *visitor) const { visitor->visit(this); } - -bool FormFactorIcosahedron::check_initialization() const -{ - bool result(true); - return result; -} diff --git a/Core/FormFactors/FormFactorIcosahedron.h b/Core/FormFactors/FormFactorIcosahedron.h index 2d14f4cadb4..6de60ce8f07 100644 --- a/Core/FormFactors/FormFactorIcosahedron.h +++ b/Core/FormFactors/FormFactorIcosahedron.h @@ -25,24 +25,16 @@ class BA_CORE_API_ FormFactorIcosahedron : public FormFactorPolyhedron { public: - //! @brief Constructs a regular icosahedron - //! @param edge length FormFactorIcosahedron(double edge); - static std::vector<PolyhedralFace> polyhedral_faces(double edge); - virtual FormFactorIcosahedron *clone() const final; virtual void accept(ISampleVisitor *visitor) const final; - double getEdge() const; + double getEdge() const { return m_edge; } private: - virtual bool check_initialization() const; - virtual void init_parameters(); - + virtual void onChange() final; double m_edge; }; -inline double FormFactorIcosahedron::getEdge() const { return m_edge; } - #endif // FORMFACTORICOSAHEDRON_H diff --git a/Core/FormFactors/FormFactorPyramid.cpp b/Core/FormFactors/FormFactorPyramid.cpp index af230c4375e..d53e510d1bb 100644 --- a/Core/FormFactors/FormFactorPyramid.cpp +++ b/Core/FormFactors/FormFactorPyramid.cpp @@ -16,23 +16,39 @@ #include "FormFactorPyramid.h" #include "BornAgainNamespace.h" +//! @brief Pyramid constructor +//! @param length of one side of Pyramid's square base +//! @param height of Pyramid +//! @param angle in radians between base and facet + FormFactorPyramid::FormFactorPyramid(double length, double height, double alpha) - : FormFactorPolyhedron( polyhedral_faces( length, height, alpha ), 0. ) + : FormFactorPolyhedron() , m_length(length) , m_height(height) , m_alpha(alpha) { setName(BornAgain::FFPyramidType); - check_initialization(); - init_parameters(); + registerParameter(BornAgain::Length, &m_length, AttLimits::n_positive()); + registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); + registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + onChange(); } -std::vector<PolyhedralFace> FormFactorPyramid::polyhedral_faces( - double length, double height, double alpha) +void FormFactorPyramid::onChange() { - std::vector<PolyhedralFace> faces; - double a = length/2; - double b = length/2 - height/std::tan(alpha); + if(m_height > m_length*std::tan(m_alpha)) { + std::ostringstream ostr; + ostr << "FormFactorPyramid() -> Error in class initialization with parameters"; + ostr << " length:" << m_length; + ostr << " height:" << m_height; + ostr << " alpha[rad]:" << m_alpha << "\n\n"; + ostr << "Check for 'height <= length*tan(alpha)' failed."; + throw Exceptions::ClassInitializationException(ostr.str()); + } + + m_faces.clear(); + double a = m_length/2; + double b = m_length/2 - m_height/std::tan(m_alpha); if( std::abs(b)<1e-14*a ) { // true pyramid @@ -43,13 +59,13 @@ std::vector<PolyhedralFace> FormFactorPyramid::polyhedral_faces( { a, a, 0. }, { -a, a, 0. }, // top: - { 0., 0., height } }; - faces.push_back( PolyhedralFace( { V[3], V[2], V[1], V[0] }, true ) ); - faces.push_back( PolyhedralFace( { V[0], V[1], V[4] } ) ); - faces.push_back( PolyhedralFace( { V[1], V[2], V[4] } ) ); - faces.push_back( PolyhedralFace( { V[2], V[3], V[4] } ) ); - faces.push_back( PolyhedralFace( { V[3], V[0], V[4] } ) ); - + { 0., 0., m_height } }; + m_faces.push_back( PolyhedralFace( { V[3], V[2], V[1], V[0] }, true ) ); + m_faces.push_back( PolyhedralFace( { V[0], V[1], V[4] } ) ); + m_faces.push_back( PolyhedralFace( { V[1], V[2], V[4] } ) ); + m_faces.push_back( PolyhedralFace( { V[2], V[3], V[4] } ) ); + m_faces.push_back( PolyhedralFace( { V[3], V[0], V[4] } ) ); + } else { // frustum kvector_t V[8] = { @@ -59,41 +75,22 @@ std::vector<PolyhedralFace> FormFactorPyramid::polyhedral_faces( { a, a, 0. }, { -a, a, 0. }, // top: - { -b, -b, height }, - { b, -b, height }, - { b, b, height }, - { -b, b, height } }; - faces.push_back( PolyhedralFace( { V[3], V[2], V[1], V[0] }, true ) ); - faces.push_back( PolyhedralFace( { V[0], V[1], V[5], V[4] } ) ); - faces.push_back( PolyhedralFace( { V[1], V[2], V[6], V[5] } ) ); - faces.push_back( PolyhedralFace( { V[2], V[3], V[7], V[6] } ) ); - faces.push_back( PolyhedralFace( { V[3], V[0], V[4], V[7] } ) ); - faces.push_back( PolyhedralFace( { V[4], V[5], V[6], V[7] }, true ) ); + { -b, -b, m_height }, + { b, -b, m_height }, + { b, b, m_height }, + { -b, b, m_height } }; + m_faces.push_back( PolyhedralFace( { V[3], V[2], V[1], V[0] }, true ) ); + m_faces.push_back( PolyhedralFace( { V[0], V[1], V[5], V[4] } ) ); + m_faces.push_back( PolyhedralFace( { V[1], V[2], V[6], V[5] } ) ); + m_faces.push_back( PolyhedralFace( { V[2], V[3], V[7], V[6] } ) ); + m_faces.push_back( PolyhedralFace( { V[3], V[0], V[4], V[7] } ) ); + m_faces.push_back( PolyhedralFace( { V[4], V[5], V[6], V[7] }, true ) ); } - return faces; -} -bool FormFactorPyramid::check_initialization() const -{ - bool result(true); - if(m_height > m_length*std::tan(m_alpha)) { - std::ostringstream ostr; - ostr << "FormFactorPyramid() -> Error in class initialization with parameters"; - ostr << " length:" << m_length; - ostr << " height:" << m_height; - ostr << " alpha[rad]:" << m_alpha << "\n\n"; - ostr << "Check for 'height <= length*tan(alpha)' failed."; - throw Exceptions::ClassInitializationException(ostr.str()); - } - return result; -} + m_z_origin = 0; + m_sym_Ci = false; -void FormFactorPyramid::init_parameters() -{ - clearParameterPool(); - registerParameter(BornAgain::Length, &m_length, AttLimits::n_positive()); - registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); - registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + FormFactorPolyhedron::precompute(); } FormFactorPyramid* FormFactorPyramid::clone() const diff --git a/Core/FormFactors/FormFactorPyramid.h b/Core/FormFactors/FormFactorPyramid.h index 22ec7ad6ba0..f984deca82d 100644 --- a/Core/FormFactors/FormFactorPyramid.h +++ b/Core/FormFactors/FormFactorPyramid.h @@ -24,15 +24,8 @@ class BA_CORE_API_ FormFactorPyramid : public FormFactorPolyhedron { public: - //! @brief Pyramid constructor - //! @param length of one side of Pyramid's square base - //! @param height of Pyramid - //! @param angle in radians between base and facet FormFactorPyramid(double length, double height, double alpha); - static std::vector<PolyhedralFace> polyhedral_faces( - double length, double height, double alpha); - virtual FormFactorPyramid* clone() const final; virtual void accept(ISampleVisitor *visitor) const final; @@ -41,8 +34,7 @@ public: double getAlpha() const { return m_alpha; } private: - virtual bool check_initialization() const final; - virtual void init_parameters() final; + virtual void onChange() final; double m_length; double m_height; diff --git a/Core/FormFactors/FormFactorTetrahedron.cpp b/Core/FormFactors/FormFactorTetrahedron.cpp index 8748050a8fd..aa02217cb3f 100644 --- a/Core/FormFactors/FormFactorTetrahedron.cpp +++ b/Core/FormFactors/FormFactorTetrahedron.cpp @@ -18,29 +18,43 @@ #include "BornAgainNamespace.h" #include "IntegratorComplex.h" +//! @brief Tetrahedron constructor +//! @param length of a side of Tetrahedron's base +//! @param height of Tetrahedron +//! @param angle in radians between base and facet + FormFactorTetrahedron::FormFactorTetrahedron(double length, double height, double alpha) - : FormFactorPolyhedron( polyhedral_faces( length, height, alpha ), 0. ) + : FormFactorPolyhedron() + , m_length(length) + , m_height(height) + , m_alpha(alpha) { setName(BornAgain::FFTetrahedronType); - m_height = height; - m_length = length; - m_alpha = alpha; - check_initialization(); - init_parameters(); + registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); + registerParameter(BornAgain::Length, &m_length, AttLimits::n_positive()); + registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + onChange(); } -FormFactorTetrahedron::~FormFactorTetrahedron() {} - -std::vector<PolyhedralFace> FormFactorTetrahedron::polyhedral_faces( - double length, double height, double alpha) +void FormFactorTetrahedron::onChange() { - std::vector<PolyhedralFace> faces; + if (2*std::sqrt(3.) * m_height > m_length*std::tan(m_alpha)) { + std::ostringstream ostr; + ostr << "FormFactorTetrahedron() -> Error in class initialization with parameters "; + ostr << " height:" << m_height; + ostr << " length:" << m_length; + ostr << " alpha[rad]:" << m_alpha << "\n\n"; + ostr << "Check for '2.*sqrt(3.) * height <= length*tan(alpha)' failed."; + throw Exceptions::ClassInitializationException(ostr.str()); + } + + m_faces.clear(); - double a = length; + double a = m_length; double as = a/2; double ac = a/sqrt(3)/2; double ah = a/sqrt(3); - double b = a - 2*sqrt(3)*height/std::tan(alpha); + double b = a - 2*sqrt(3)*m_height/std::tan(m_alpha); if( std::abs(b)<1e-14*a ) { // true pyramid @@ -50,11 +64,11 @@ std::vector<PolyhedralFace> FormFactorTetrahedron::polyhedral_faces( { as, -ac, 0. }, { 0., ah, 0. }, // top: - { 0., 0., height } }; - faces.push_back( PolyhedralFace( { V[2], V[1], V[0] } ) ); - faces.push_back( PolyhedralFace( { V[0], V[1], V[3] } ) ); - faces.push_back( PolyhedralFace( { V[1], V[2], V[3] } ) ); - faces.push_back( PolyhedralFace( { V[2], V[0], V[3] } ) ); + { 0., 0., m_height } }; + m_faces.push_back( PolyhedralFace( { V[2], V[1], V[0] } ) ); + m_faces.push_back( PolyhedralFace( { V[0], V[1], V[3] } ) ); + m_faces.push_back( PolyhedralFace( { V[1], V[2], V[3] } ) ); + m_faces.push_back( PolyhedralFace( { V[2], V[0], V[3] } ) ); } else { // frustum @@ -68,39 +82,18 @@ std::vector<PolyhedralFace> FormFactorTetrahedron::polyhedral_faces( { as, -ac, 0. }, { 0., ah, 0. }, // top: - { -bs, -bc, height }, - { bs, -bc, height }, - { 0., bh, height } }; - faces.push_back( PolyhedralFace( { V[2], V[1], V[0] } ) ); - faces.push_back( PolyhedralFace( { V[0], V[1], V[4], V[3] } ) ); - faces.push_back( PolyhedralFace( { V[1], V[2], V[5], V[4] } ) ); - faces.push_back( PolyhedralFace( { V[2], V[0], V[3], V[5] } ) ); - faces.push_back( PolyhedralFace( { V[3], V[4], V[5] } ) ); + { -bs, -bc, m_height }, + { bs, -bc, m_height }, + { 0., bh, m_height } }; + m_faces.push_back( PolyhedralFace( { V[2], V[1], V[0] } ) ); + m_faces.push_back( PolyhedralFace( { V[0], V[1], V[4], V[3] } ) ); + m_faces.push_back( PolyhedralFace( { V[1], V[2], V[5], V[4] } ) ); + m_faces.push_back( PolyhedralFace( { V[2], V[0], V[3], V[5] } ) ); + m_faces.push_back( PolyhedralFace( { V[3], V[4], V[5] } ) ); } - return faces; -} - -bool FormFactorTetrahedron::check_initialization() const -{ - bool result(true); - if (2*std::sqrt(3.) * m_height > m_length*std::tan(m_alpha)) { - std::ostringstream ostr; - ostr << "FormFactorTetrahedron() -> Error in class initialization with parameters "; - ostr << " height:" << m_height; - ostr << " length:" << m_length; - ostr << " alpha[rad]:" << m_alpha << "\n\n"; - ostr << "Check for '2.*sqrt(3.) * height <= length*tan(alpha)' failed."; - throw Exceptions::ClassInitializationException(ostr.str()); - } - return result; -} - -void FormFactorTetrahedron::init_parameters() -{ - clearParameterPool(); - registerParameter(BornAgain::Height, &m_height, AttLimits::n_positive()); - registerParameter(BornAgain::Length, &m_length, AttLimits::n_positive()); - registerParameter(BornAgain::Alpha, &m_alpha, AttLimits::n_positive()); + m_z_origin = 0; + m_sym_Ci = false; + FormFactorPolyhedron::precompute(); } FormFactorTetrahedron* FormFactorTetrahedron::clone() const diff --git a/Core/FormFactors/FormFactorTetrahedron.h b/Core/FormFactors/FormFactorTetrahedron.h index 6d8c08bb2c2..9946f0db5f1 100644 --- a/Core/FormFactors/FormFactorTetrahedron.h +++ b/Core/FormFactors/FormFactorTetrahedron.h @@ -21,39 +21,24 @@ //! @class FormFactorTetrahedron //! @ingroup formfactors //! @brief The formfactor of tetrahedron. + class BA_CORE_API_ FormFactorTetrahedron : public FormFactorPolyhedron { public: - //! @brief Tetrahedron constructor - //! @param length of a side of Tetrahedron's base - //! @param height of Tetrahedron - //! @param angle in radians between base and facet FormFactorTetrahedron(double length, double height, double alpha); - virtual ~FormFactorTetrahedron(); - - static std::vector<PolyhedralFace> polyhedral_faces( - double length, double height, double alpha); virtual FormFactorTetrahedron *clone() const; - virtual void accept(ISampleVisitor *visitor) const; - double getHeight() const; - double getLength() const; - double getAlpha() const; - -protected: - virtual bool check_initialization() const; - virtual void init_parameters(); + double getLength() const { return m_length; } + double getHeight() const { return m_height; } + double getAlpha() const { return m_alpha; } private: - double m_height; + virtual void onChange() final; double m_length; + double m_height; double m_alpha; }; -inline double FormFactorTetrahedron::getHeight() const { return m_height; } -inline double FormFactorTetrahedron::getLength() const { return m_length; } -inline double FormFactorTetrahedron::getAlpha() const { return m_alpha; } - #endif // FORMFACTORTETRAHEDRON_H diff --git a/Core/FormFactors/FormFactorTruncatedCube.cpp b/Core/FormFactors/FormFactorTruncatedCube.cpp index 40543aba70c..c92d2ac660d 100644 --- a/Core/FormFactors/FormFactorTruncatedCube.cpp +++ b/Core/FormFactors/FormFactorTruncatedCube.cpp @@ -19,22 +19,34 @@ #include "MathFunctions.h" +//! @param side length of the full cube +//! @param side length of the trirectangular tetrahedron removed from each vertex of the cube + FormFactorTruncatedCube::FormFactorTruncatedCube( double length, double removed_length) - : FormFactorPolyhedron( polyhedral_faces(length, removed_length), -length/2, true ) + : FormFactorPolyhedron() , m_length(length) , m_removed_length(removed_length) { setName(BornAgain::FFTruncatedCubeType); - check_initialization(); - init_parameters(); + registerParameter(BornAgain::Length, &m_length); + registerParameter(BornAgain::RemovedLength, &m_removed_length); + onChange(); } -std::vector<PolyhedralFace> FormFactorTruncatedCube::polyhedral_faces( - double length, double removed_length) +void FormFactorTruncatedCube::onChange() { - double a = length/2; - double b = removed_length; + if(m_removed_length > 0.5*m_length) { + std::ostringstream ostr; + ostr << "::FormFactorTruncatedCube() -> Error in class initialization "; + ostr << "with parameters 'length':" << m_length; + ostr << " 'removed_length':" << m_removed_length << "\n\n"; + ostr << "Check for removed_length <= 0.5*length failed."; + throw Exceptions::ClassInitializationException(ostr.str()); + } + + double a = m_length/2; + double b = m_removed_length; kvector_t V[24] = { { -a+b, -a , -a }, @@ -61,29 +73,26 @@ std::vector<PolyhedralFace> FormFactorTruncatedCube::polyhedral_faces( { a-b, a , a }, { a , a-b, a }, { a , a , a-b } }; - std::vector<PolyhedralFace> faces; - faces.push_back( PolyhedralFace( { V[ 0],V[ 1],V[ 7],V[ 6], V[ 9],V[10],V[ 4],V[ 3] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 0],V[ 2],V[ 1] } ) ); - faces.push_back( PolyhedralFace( { V[ 3],V[ 4],V[ 5] } ) ); - faces.push_back( PolyhedralFace( { V[ 9],V[11],V[10] } ) ); - faces.push_back( PolyhedralFace( { V[ 6],V[ 7],V[ 8] } ) ); - faces.push_back( PolyhedralFace( { V[ 0],V[ 3],V[ 5],V[17], V[15],V[12],V[14],V[ 2] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 4],V[10],V[11],V[23], V[22],V[16],V[17],V[ 5] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 1],V[ 2],V[14],V[13], V[19],V[20],V[ 8],V[ 7] }, true ) ); - faces.push_back( PolyhedralFace( { V[ 6],V[ 8],V[20],V[18], V[21],V[23],V[11],V[ 9] }, true ) ); - faces.push_back( PolyhedralFace( { V[15],V[17],V[16] } ) ); - faces.push_back( PolyhedralFace( { V[12],V[13],V[14] } ) ); - faces.push_back( PolyhedralFace( { V[18],V[20],V[19] } ) ); - faces.push_back( PolyhedralFace( { V[21],V[22],V[23] } ) ); - faces.push_back( PolyhedralFace( { V[12],V[15],V[16],V[22], V[21],V[18],V[19],V[13] }, true ) ); - return faces; -} + m_faces.clear(); + m_faces.push_back( PolyhedralFace({ V[ 0],V[ 1],V[ 7],V[ 6], V[ 9],V[10],V[ 4],V[ 3] }, true )); + m_faces.push_back( PolyhedralFace({ V[ 0],V[ 2],V[ 1] } )); + m_faces.push_back( PolyhedralFace({ V[ 3],V[ 4],V[ 5] } )); + m_faces.push_back( PolyhedralFace({ V[ 9],V[11],V[10] } )); + m_faces.push_back( PolyhedralFace({ V[ 6],V[ 7],V[ 8] } )); + m_faces.push_back( PolyhedralFace({ V[ 0],V[ 3],V[ 5],V[17], V[15],V[12],V[14],V[ 2] }, true )); + m_faces.push_back( PolyhedralFace({ V[ 4],V[10],V[11],V[23], V[22],V[16],V[17],V[ 5] }, true )); + m_faces.push_back( PolyhedralFace({ V[ 1],V[ 2],V[14],V[13], V[19],V[20],V[ 8],V[ 7] }, true )); + m_faces.push_back( PolyhedralFace({ V[ 6],V[ 8],V[20],V[18], V[21],V[23],V[11],V[ 9] }, true )); + m_faces.push_back( PolyhedralFace({ V[15],V[17],V[16] } )); + m_faces.push_back( PolyhedralFace({ V[12],V[13],V[14] } )); + m_faces.push_back( PolyhedralFace({ V[18],V[20],V[19] } )); + m_faces.push_back( PolyhedralFace({ V[21],V[22],V[23] } )); + m_faces.push_back( PolyhedralFace({ V[12],V[15],V[16],V[22], V[21],V[18],V[19],V[13] }, true )); -void FormFactorTruncatedCube::init_parameters() -{ - clearParameterPool(); - registerParameter(BornAgain::Length, &m_length); - registerParameter(BornAgain::RemovedLength, &m_removed_length); + m_z_origin = -m_length/2; + m_sym_Ci = true; + + FormFactorPolyhedron::precompute(); } FormFactorTruncatedCube* FormFactorTruncatedCube::clone() const @@ -95,17 +104,3 @@ void FormFactorTruncatedCube::accept(ISampleVisitor *visitor) const { visitor->visit(this); } - -bool FormFactorTruncatedCube::check_initialization() const -{ - bool result(true); - if(m_removed_length > 0.5*m_length) { - std::ostringstream ostr; - ostr << "::FormFactorTruncatedCube() -> Error in class initialization "; - ostr << "with parameters 'length':" << m_length; - ostr << " 'removed_length':" << m_removed_length << "\n\n"; - ostr << "Check for removed_length <= 0.5*length failed."; - throw Exceptions::ClassInitializationException(ostr.str()); - } - return result; -} diff --git a/Core/FormFactors/FormFactorTruncatedCube.h b/Core/FormFactors/FormFactorTruncatedCube.h index 2de65cfd142..fdb5a569026 100644 --- a/Core/FormFactors/FormFactorTruncatedCube.h +++ b/Core/FormFactors/FormFactorTruncatedCube.h @@ -25,13 +25,8 @@ class BA_CORE_API_ FormFactorTruncatedCube : public FormFactorPolyhedron { public: - //! @brief Truncated cube constructor - //! @param side length of the full cube - //! @param side length of the trirectangular tetrahedron removed from each vertex of the cube FormFactorTruncatedCube(double length, double removed_length); - static std::vector<PolyhedralFace> polyhedral_faces(double length, double removed_length); - virtual FormFactorTruncatedCube *clone() const final; virtual void accept(ISampleVisitor *visitor) const final; @@ -39,9 +34,7 @@ public: double getRemovedLength() const { return m_removed_length; } private: - virtual bool check_initialization() const; - virtual void init_parameters(); - + virtual void onChange() final; double m_length; double m_removed_length; }; diff --git a/Core/PythonAPI/libBornAgainCore.py b/Core/PythonAPI/libBornAgainCore.py index 4095d379dc4..d632920d698 100644 --- a/Core/PythonAPI/libBornAgainCore.py +++ b/Core/PythonAPI/libBornAgainCore.py @@ -8847,9 +8847,9 @@ class FormFactorCone6(FormFactorPolyhedron): __getattr__ = lambda self, name: _swig_getattr(self, FormFactorCone6, name) __repr__ = _swig_repr - def __init__(self, radius, height, alpha): + def __init__(self, base_edge, height, alpha): """ - __init__(FormFactorCone6 self, double radius, double height, double alpha) -> FormFactorCone6 + __init__(FormFactorCone6 self, double base_edge, double height, double alpha) -> FormFactorCone6 FormFactorCone6::FormFactorCone6(double radius, double height, double alpha) @@ -8868,20 +8868,12 @@ class FormFactorCone6(FormFactorPolyhedron): in radians between base and facet """ - this = _libBornAgainCore.new_FormFactorCone6(radius, height, alpha) + this = _libBornAgainCore.new_FormFactorCone6(base_edge, height, alpha) try: self.this.append(this) except: self.this = this - def polyhedral_faces(radius, height, alpha): - """polyhedral_faces(double radius, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorCone6_polyhedral_faces(radius, height, alpha) - - if _newclass: - polyhedral_faces = staticmethod(polyhedral_faces) - __swig_getmethods__["polyhedral_faces"] = lambda x: polyhedral_faces - def clone(self): """ clone(FormFactorCone6 self) -> FormFactorCone6 @@ -8916,18 +8908,6 @@ class FormFactorCone6(FormFactorPolyhedron): return _libBornAgainCore.FormFactorCone6_getHeight(self) - def getRadius(self): - """ - getRadius(FormFactorCone6 self) -> double - - double FormFactorCone6::getRadius() const 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.FormFactorCone6_getRadius(self) - - def getAlpha(self): """ getAlpha(FormFactorCone6 self) -> double @@ -8942,10 +8922,6 @@ class FormFactorCone6(FormFactorPolyhedron): FormFactorCone6_swigregister = _libBornAgainCore.FormFactorCone6_swigregister FormFactorCone6_swigregister(FormFactorCone6) -def FormFactorCone6_polyhedral_faces(radius, height, alpha): - """FormFactorCone6_polyhedral_faces(double radius, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorCone6_polyhedral_faces(radius, height, alpha) - class FormFactorCrystal(IFormFactorBorn): """ @@ -9117,16 +9093,6 @@ class FormFactorCuboctahedron(FormFactorPolyhedron): self.this.append(this) except: self.this = this - __swig_destroy__ = _libBornAgainCore.delete_FormFactorCuboctahedron - __del__ = lambda self: None - - def polyhedral_faces(length, height, height_ratio, alpha): - """polyhedral_faces(double length, double height, double height_ratio, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorCuboctahedron_polyhedral_faces(length, height, height_ratio, alpha) - - if _newclass: - polyhedral_faces = staticmethod(polyhedral_faces) - __swig_getmethods__["polyhedral_faces"] = lambda x: polyhedral_faces def clone(self): """ @@ -9152,16 +9118,14 @@ class FormFactorCuboctahedron(FormFactorPolyhedron): return _libBornAgainCore.FormFactorCuboctahedron_accept(self, visitor) - def getRadius(self): + def getLength(self): """ - getRadius(FormFactorCuboctahedron self) -> double - - double FormFactorCuboctahedron::getRadius() const final + getLength(FormFactorCuboctahedron self) -> double - Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations + double FormFactorCuboctahedron::getLength() const """ - return _libBornAgainCore.FormFactorCuboctahedron_getRadius(self) + return _libBornAgainCore.FormFactorCuboctahedron_getLength(self) def getHeight(self): @@ -9184,16 +9148,6 @@ class FormFactorCuboctahedron(FormFactorPolyhedron): return _libBornAgainCore.FormFactorCuboctahedron_getHeightRatio(self) - def getLength(self): - """ - getLength(FormFactorCuboctahedron self) -> double - - double FormFactorCuboctahedron::getLength() const - - """ - return _libBornAgainCore.FormFactorCuboctahedron_getLength(self) - - def getAlpha(self): """ getAlpha(FormFactorCuboctahedron self) -> double @@ -9203,13 +9157,11 @@ class FormFactorCuboctahedron(FormFactorPolyhedron): """ return _libBornAgainCore.FormFactorCuboctahedron_getAlpha(self) + __swig_destroy__ = _libBornAgainCore.delete_FormFactorCuboctahedron + __del__ = lambda self: None FormFactorCuboctahedron_swigregister = _libBornAgainCore.FormFactorCuboctahedron_swigregister FormFactorCuboctahedron_swigregister(FormFactorCuboctahedron) -def FormFactorCuboctahedron_polyhedral_faces(length, height, height_ratio, alpha): - """FormFactorCuboctahedron_polyhedral_faces(double length, double height, double height_ratio, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorCuboctahedron_polyhedral_faces(length, height, height_ratio, alpha) - class FormFactorCylinder(IFormFactorBorn): """ @@ -10103,14 +10055,6 @@ class FormFactorIcosahedron(FormFactorPolyhedron): except: self.this = this - def polyhedral_faces(edge): - """polyhedral_faces(double edge) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorIcosahedron_polyhedral_faces(edge) - - if _newclass: - polyhedral_faces = staticmethod(polyhedral_faces) - __swig_getmethods__["polyhedral_faces"] = lambda x: polyhedral_faces - def clone(self): """ clone(FormFactorIcosahedron self) -> FormFactorIcosahedron @@ -10135,18 +10079,6 @@ class FormFactorIcosahedron(FormFactorPolyhedron): return _libBornAgainCore.FormFactorIcosahedron_accept(self, visitor) - def getRadius(self): - """ - getRadius(FormFactorIcosahedron self) -> double - - double FormFactorIcosahedron::getRadius() const 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.FormFactorIcosahedron_getRadius(self) - - def getEdge(self): """ getEdge(FormFactorIcosahedron self) -> double @@ -10161,10 +10093,6 @@ class FormFactorIcosahedron(FormFactorPolyhedron): FormFactorIcosahedron_swigregister = _libBornAgainCore.FormFactorIcosahedron_swigregister FormFactorIcosahedron_swigregister(FormFactorIcosahedron) -def FormFactorIcosahedron_polyhedral_faces(edge): - """FormFactorIcosahedron_polyhedral_faces(double edge) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorIcosahedron_polyhedral_faces(edge) - class FormFactorLongBoxGauss(IFormFactorBorn): """Proxy of C++ FormFactorLongBoxGauss class""" __swig_setmethods__ = {} @@ -11330,14 +11258,6 @@ class FormFactorPyramid(FormFactorPolyhedron): except: self.this = this - def polyhedral_faces(length, height, alpha): - """polyhedral_faces(double length, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorPyramid_polyhedral_faces(length, height, alpha) - - if _newclass: - polyhedral_faces = staticmethod(polyhedral_faces) - __swig_getmethods__["polyhedral_faces"] = lambda x: polyhedral_faces - def clone(self): """ clone(FormFactorPyramid self) -> FormFactorPyramid @@ -11362,18 +11282,6 @@ class FormFactorPyramid(FormFactorPolyhedron): return _libBornAgainCore.FormFactorPyramid_accept(self, visitor) - def getRadius(self): - """ - getRadius(FormFactorPyramid self) -> double - - double FormFactorPyramid::getRadius() const 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.FormFactorPyramid_getRadius(self) - - def getHeight(self): """ getHeight(FormFactorPyramid self) -> double @@ -11408,10 +11316,6 @@ class FormFactorPyramid(FormFactorPolyhedron): FormFactorPyramid_swigregister = _libBornAgainCore.FormFactorPyramid_swigregister FormFactorPyramid_swigregister(FormFactorPyramid) -def FormFactorPyramid_polyhedral_faces(length, height, alpha): - """FormFactorPyramid_polyhedral_faces(double length, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorPyramid_polyhedral_faces(length, height, alpha) - class FormFactorRipple1(IFormFactorBorn): """ @@ -11996,16 +11900,6 @@ class FormFactorTetrahedron(FormFactorPolyhedron): self.this.append(this) except: self.this = this - __swig_destroy__ = _libBornAgainCore.delete_FormFactorTetrahedron - __del__ = lambda self: None - - def polyhedral_faces(length, height, alpha): - """polyhedral_faces(double length, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorTetrahedron_polyhedral_faces(length, height, alpha) - - if _newclass: - polyhedral_faces = staticmethod(polyhedral_faces) - __swig_getmethods__["polyhedral_faces"] = lambda x: polyhedral_faces def clone(self): """ @@ -12031,16 +11925,14 @@ class FormFactorTetrahedron(FormFactorPolyhedron): return _libBornAgainCore.FormFactorTetrahedron_accept(self, visitor) - def getRadius(self): + def getLength(self): """ - getRadius(FormFactorTetrahedron self) -> double - - double FormFactorTetrahedron::getRadius() const + getLength(FormFactorTetrahedron self) -> double - Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations + double FormFactorTetrahedron::getLength() const """ - return _libBornAgainCore.FormFactorTetrahedron_getRadius(self) + return _libBornAgainCore.FormFactorTetrahedron_getLength(self) def getHeight(self): @@ -12053,16 +11945,6 @@ class FormFactorTetrahedron(FormFactorPolyhedron): return _libBornAgainCore.FormFactorTetrahedron_getHeight(self) - def getLength(self): - """ - getLength(FormFactorTetrahedron self) -> double - - double FormFactorTetrahedron::getLength() const - - """ - return _libBornAgainCore.FormFactorTetrahedron_getLength(self) - - def getAlpha(self): """ getAlpha(FormFactorTetrahedron self) -> double @@ -12072,13 +11954,11 @@ class FormFactorTetrahedron(FormFactorPolyhedron): """ return _libBornAgainCore.FormFactorTetrahedron_getAlpha(self) + __swig_destroy__ = _libBornAgainCore.delete_FormFactorTetrahedron + __del__ = lambda self: None FormFactorTetrahedron_swigregister = _libBornAgainCore.FormFactorTetrahedron_swigregister FormFactorTetrahedron_swigregister(FormFactorTetrahedron) -def FormFactorTetrahedron_polyhedral_faces(length, height, alpha): - """FormFactorTetrahedron_polyhedral_faces(double length, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorTetrahedron_polyhedral_faces(length, height, alpha) - class FormFactorTrivial(IFormFactorBorn): """Proxy of C++ FormFactorTrivial class""" __swig_setmethods__ = {} @@ -12216,14 +12096,6 @@ class FormFactorTruncatedCube(FormFactorPolyhedron): except: self.this = this - def polyhedral_faces(length, removed_length): - """polyhedral_faces(double length, double removed_length) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorTruncatedCube_polyhedral_faces(length, removed_length) - - if _newclass: - polyhedral_faces = staticmethod(polyhedral_faces) - __swig_getmethods__["polyhedral_faces"] = lambda x: polyhedral_faces - def clone(self): """ clone(FormFactorTruncatedCube self) -> FormFactorTruncatedCube @@ -12248,18 +12120,6 @@ class FormFactorTruncatedCube(FormFactorPolyhedron): return _libBornAgainCore.FormFactorTruncatedCube_accept(self, visitor) - def getRadius(self): - """ - getRadius(FormFactorTruncatedCube self) -> double - - double FormFactorTruncatedCube::getRadius() const 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.FormFactorTruncatedCube_getRadius(self) - - def getLength(self): """ getLength(FormFactorTruncatedCube self) -> double @@ -12284,10 +12144,6 @@ class FormFactorTruncatedCube(FormFactorPolyhedron): FormFactorTruncatedCube_swigregister = _libBornAgainCore.FormFactorTruncatedCube_swigregister FormFactorTruncatedCube_swigregister(FormFactorTruncatedCube) -def FormFactorTruncatedCube_polyhedral_faces(length, removed_length): - """FormFactorTruncatedCube_polyhedral_faces(double length, double removed_length) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >""" - return _libBornAgainCore.FormFactorTruncatedCube_polyhedral_faces(length, removed_length) - class FormFactorTruncatedSphere(IFormFactorBorn): """ diff --git a/Core/PythonAPI/libBornAgainCore_wrap.cxx b/Core/PythonAPI/libBornAgainCore_wrap.cxx index c77f00fa7d1..dfc0b76c5c0 100644 --- a/Core/PythonAPI/libBornAgainCore_wrap.cxx +++ b/Core/PythonAPI/libBornAgainCore_wrap.cxx @@ -3649,23 +3649,22 @@ namespace Swig { #define SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t swig_types[231] #define SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t swig_types[232] #define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[233] -#define SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t swig_types[234] -#define SWIGTYPE_p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t swig_types[235] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[236] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[237] -#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[238] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[239] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[240] -#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[241] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[242] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[243] -#define SWIGTYPE_p_unsigned_char swig_types[244] -#define SWIGTYPE_p_unsigned_int swig_types[245] -#define SWIGTYPE_p_unsigned_long_long swig_types[246] -#define SWIGTYPE_p_unsigned_short swig_types[247] -#define SWIGTYPE_p_value_type swig_types[248] -static swig_type_info *swig_types[250]; -static swig_module_info swig_module = {swig_types, 249, 0, 0, 0, 0}; +#define SWIGTYPE_p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t swig_types[234] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[235] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[236] +#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[237] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[238] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[239] +#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[240] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[241] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[242] +#define SWIGTYPE_p_unsigned_char swig_types[243] +#define SWIGTYPE_p_unsigned_int swig_types[244] +#define SWIGTYPE_p_unsigned_long_long swig_types[245] +#define SWIGTYPE_p_unsigned_short swig_types[246] +#define SWIGTYPE_p_value_type swig_types[247] +static swig_type_info *swig_types[249]; +static swig_module_info swig_module = {swig_types, 248, 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) @@ -51172,46 +51171,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorCone6_polyhedral_faces(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double arg1 ; - double arg2 ; - double arg3 ; - double val1 ; - int ecode1 = 0 ; - double val2 ; - int ecode2 = 0 ; - double val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - SwigValueWrapper< std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > > result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:FormFactorCone6_polyhedral_faces",&obj0,&obj1,&obj2)) SWIG_fail; - ecode1 = SWIG_AsVal_double(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FormFactorCone6_polyhedral_faces" "', argument " "1"" of type '" "double""'"); - } - arg1 = static_cast< double >(val1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FormFactorCone6_polyhedral_faces" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FormFactorCone6_polyhedral_faces" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - result = FormFactorCone6::polyhedral_faces(arg1,arg2,arg3); - resultobj = SWIG_NewPointerObj((new std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >(static_cast< const std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >& >(result))), SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorCone6_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorCone6 *arg1 = (FormFactorCone6 *) 0 ; @@ -51286,28 +51245,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorCone6_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorCone6 *arg1 = (FormFactorCone6 *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorCone6_getRadius",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorCone6, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCone6_getRadius" "', argument " "1"" of type '" "FormFactorCone6 const *""'"); - } - arg1 = reinterpret_cast< FormFactorCone6 * >(argp1); - result = (double)((FormFactorCone6 const *)arg1)->getRadius(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorCone6_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorCone6 *arg1 = (FormFactorCone6 *) 0 ; @@ -51653,76 +51590,6 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_FormFactorCuboctahedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_FormFactorCuboctahedron",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorCuboctahedron, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorCuboctahedron" "', argument " "1"" of type '" "FormFactorCuboctahedron *""'"); - } - arg1 = reinterpret_cast< FormFactorCuboctahedron * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_polyhedral_faces(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double arg1 ; - double arg2 ; - double arg3 ; - double arg4 ; - double val1 ; - int ecode1 = 0 ; - double val2 ; - int ecode2 = 0 ; - double val3 ; - int ecode3 = 0 ; - double val4 ; - int ecode4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - SwigValueWrapper< std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > > result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:FormFactorCuboctahedron_polyhedral_faces",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - ecode1 = SWIG_AsVal_double(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FormFactorCuboctahedron_polyhedral_faces" "', argument " "1"" of type '" "double""'"); - } - arg1 = static_cast< double >(val1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FormFactorCuboctahedron_polyhedral_faces" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FormFactorCuboctahedron_polyhedral_faces" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - ecode4 = SWIG_AsVal_double(obj3, &val4); - if (!SWIG_IsOK(ecode4)) { - SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "FormFactorCuboctahedron_polyhedral_faces" "', argument " "4"" of type '" "double""'"); - } - arg4 = static_cast< double >(val4); - result = FormFactorCuboctahedron::polyhedral_faces(arg1,arg2,arg3,arg4); - resultobj = SWIG_NewPointerObj((new std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >(static_cast< const std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >& >(result))), SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ; @@ -51775,7 +51642,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ; void *argp1 = 0 ; @@ -51783,13 +51650,13 @@ SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getRadius(PyObject *SWIGUNUSE PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorCuboctahedron_getRadius",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:FormFactorCuboctahedron_getLength",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorCuboctahedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCuboctahedron_getRadius" "', argument " "1"" of type '" "FormFactorCuboctahedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCuboctahedron_getLength" "', argument " "1"" of type '" "FormFactorCuboctahedron const *""'"); } arg1 = reinterpret_cast< FormFactorCuboctahedron * >(argp1); - result = (double)((FormFactorCuboctahedron const *)arg1)->getRadius(); + result = (double)((FormFactorCuboctahedron const *)arg1)->getLength(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -51841,7 +51708,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ; void *argp1 = 0 ; @@ -51849,13 +51716,13 @@ SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getLength(PyObject *SWIGUNUSE PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorCuboctahedron_getLength",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:FormFactorCuboctahedron_getAlpha",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorCuboctahedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCuboctahedron_getLength" "', argument " "1"" of type '" "FormFactorCuboctahedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCuboctahedron_getAlpha" "', argument " "1"" of type '" "FormFactorCuboctahedron const *""'"); } arg1 = reinterpret_cast< FormFactorCuboctahedron * >(argp1); - result = (double)((FormFactorCuboctahedron const *)arg1)->getLength(); + result = (double)((FormFactorCuboctahedron const *)arg1)->getAlpha(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -51863,22 +51730,21 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_FormFactorCuboctahedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - double result; - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorCuboctahedron_getAlpha",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorCuboctahedron, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_FormFactorCuboctahedron",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorCuboctahedron, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCuboctahedron_getAlpha" "', argument " "1"" of type '" "FormFactorCuboctahedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorCuboctahedron" "', argument " "1"" of type '" "FormFactorCuboctahedron *""'"); } arg1 = reinterpret_cast< FormFactorCuboctahedron * >(argp1); - result = (double)((FormFactorCuboctahedron const *)arg1)->getAlpha(); - resultobj = SWIG_From_double(static_cast< double >(result)); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; @@ -53594,28 +53460,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorIcosahedron_polyhedral_faces(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double arg1 ; - double val1 ; - int ecode1 = 0 ; - PyObject * obj0 = 0 ; - SwigValueWrapper< std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > > result; - - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorIcosahedron_polyhedral_faces",&obj0)) SWIG_fail; - ecode1 = SWIG_AsVal_double(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FormFactorIcosahedron_polyhedral_faces" "', argument " "1"" of type '" "double""'"); - } - arg1 = static_cast< double >(val1); - result = FormFactorIcosahedron::polyhedral_faces(arg1); - resultobj = SWIG_NewPointerObj((new std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >(static_cast< const std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >& >(result))), SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorIcosahedron_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorIcosahedron *arg1 = (FormFactorIcosahedron *) 0 ; @@ -53668,28 +53512,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorIcosahedron_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorIcosahedron *arg1 = (FormFactorIcosahedron *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorIcosahedron_getRadius",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorIcosahedron, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorIcosahedron_getRadius" "', argument " "1"" of type '" "FormFactorIcosahedron const *""'"); - } - arg1 = reinterpret_cast< FormFactorIcosahedron * >(argp1); - result = (double)((FormFactorIcosahedron const *)arg1)->getRadius(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorIcosahedron_getEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorIcosahedron *arg1 = (FormFactorIcosahedron *) 0 ; @@ -55942,46 +55764,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPyramid_polyhedral_faces(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double arg1 ; - double arg2 ; - double arg3 ; - double val1 ; - int ecode1 = 0 ; - double val2 ; - int ecode2 = 0 ; - double val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - SwigValueWrapper< std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > > result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:FormFactorPyramid_polyhedral_faces",&obj0,&obj1,&obj2)) SWIG_fail; - ecode1 = SWIG_AsVal_double(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FormFactorPyramid_polyhedral_faces" "', argument " "1"" of type '" "double""'"); - } - arg1 = static_cast< double >(val1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FormFactorPyramid_polyhedral_faces" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FormFactorPyramid_polyhedral_faces" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - result = FormFactorPyramid::polyhedral_faces(arg1,arg2,arg3); - resultobj = SWIG_NewPointerObj((new std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >(static_cast< const std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >& >(result))), SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorPyramid_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorPyramid *arg1 = (FormFactorPyramid *) 0 ; @@ -56034,28 +55816,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorPyramid_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorPyramid *arg1 = (FormFactorPyramid *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorPyramid_getRadius",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorPyramid, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPyramid_getRadius" "', argument " "1"" of type '" "FormFactorPyramid const *""'"); - } - arg1 = reinterpret_cast< FormFactorPyramid * >(argp1); - result = (double)((FormFactorPyramid const *)arg1)->getRadius(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorPyramid_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorPyramid *arg1 = (FormFactorPyramid *) 0 ; @@ -57240,67 +57000,6 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_FormFactorTetrahedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_FormFactorTetrahedron",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorTetrahedron, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorTetrahedron" "', argument " "1"" of type '" "FormFactorTetrahedron *""'"); - } - arg1 = reinterpret_cast< FormFactorTetrahedron * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_polyhedral_faces(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double arg1 ; - double arg2 ; - double arg3 ; - double val1 ; - int ecode1 = 0 ; - double val2 ; - int ecode2 = 0 ; - double val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - SwigValueWrapper< std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > > result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:FormFactorTetrahedron_polyhedral_faces",&obj0,&obj1,&obj2)) SWIG_fail; - ecode1 = SWIG_AsVal_double(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FormFactorTetrahedron_polyhedral_faces" "', argument " "1"" of type '" "double""'"); - } - arg1 = static_cast< double >(val1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FormFactorTetrahedron_polyhedral_faces" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FormFactorTetrahedron_polyhedral_faces" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - result = FormFactorTetrahedron::polyhedral_faces(arg1,arg2,arg3); - resultobj = SWIG_NewPointerObj((new std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >(static_cast< const std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >& >(result))), SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ; @@ -57353,7 +57052,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ; void *argp1 = 0 ; @@ -57361,13 +57060,13 @@ SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getRadius(PyObject *SWIGUNUSEDP PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorTetrahedron_getRadius",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:FormFactorTetrahedron_getLength",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorTetrahedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTetrahedron_getRadius" "', argument " "1"" of type '" "FormFactorTetrahedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTetrahedron_getLength" "', argument " "1"" of type '" "FormFactorTetrahedron const *""'"); } arg1 = reinterpret_cast< FormFactorTetrahedron * >(argp1); - result = (double)((FormFactorTetrahedron const *)arg1)->getRadius(); + result = (double)((FormFactorTetrahedron const *)arg1)->getLength(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -57397,7 +57096,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ; void *argp1 = 0 ; @@ -57405,13 +57104,13 @@ SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getLength(PyObject *SWIGUNUSEDP PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorTetrahedron_getLength",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:FormFactorTetrahedron_getAlpha",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorTetrahedron, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTetrahedron_getLength" "', argument " "1"" of type '" "FormFactorTetrahedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTetrahedron_getAlpha" "', argument " "1"" of type '" "FormFactorTetrahedron const *""'"); } arg1 = reinterpret_cast< FormFactorTetrahedron * >(argp1); - result = (double)((FormFactorTetrahedron const *)arg1)->getLength(); + result = (double)((FormFactorTetrahedron const *)arg1)->getAlpha(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -57419,22 +57118,21 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_FormFactorTetrahedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - double result; - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorTetrahedron_getAlpha",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorTetrahedron, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_FormFactorTetrahedron",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorTetrahedron, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTetrahedron_getAlpha" "', argument " "1"" of type '" "FormFactorTetrahedron const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FormFactorTetrahedron" "', argument " "1"" of type '" "FormFactorTetrahedron *""'"); } arg1 = reinterpret_cast< FormFactorTetrahedron * >(argp1); - result = (double)((FormFactorTetrahedron const *)arg1)->getAlpha(); - resultobj = SWIG_From_double(static_cast< double >(result)); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; @@ -57633,37 +57331,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorTruncatedCube_polyhedral_faces(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double arg1 ; - double arg2 ; - double val1 ; - int ecode1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - SwigValueWrapper< std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > > result; - - if (!PyArg_ParseTuple(args,(char *)"OO:FormFactorTruncatedCube_polyhedral_faces",&obj0,&obj1)) SWIG_fail; - ecode1 = SWIG_AsVal_double(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FormFactorTruncatedCube_polyhedral_faces" "', argument " "1"" of type '" "double""'"); - } - arg1 = static_cast< double >(val1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FormFactorTruncatedCube_polyhedral_faces" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = FormFactorTruncatedCube::polyhedral_faces(arg1,arg2); - resultobj = SWIG_NewPointerObj((new std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >(static_cast< const std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >& >(result))), SWIGTYPE_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, SWIG_POINTER_OWN | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorTruncatedCube_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorTruncatedCube *arg1 = (FormFactorTruncatedCube *) 0 ; @@ -57716,28 +57383,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FormFactorTruncatedCube_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FormFactorTruncatedCube *arg1 = (FormFactorTruncatedCube *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:FormFactorTruncatedCube_getRadius",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FormFactorTruncatedCube, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTruncatedCube_getRadius" "', argument " "1"" of type '" "FormFactorTruncatedCube const *""'"); - } - arg1 = reinterpret_cast< FormFactorTruncatedCube * >(argp1); - result = (double)((FormFactorTruncatedCube const *)arg1)->getRadius(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_FormFactorTruncatedCube_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FormFactorTruncatedCube *arg1 = (FormFactorTruncatedCube *) 0 ; @@ -94037,7 +93682,7 @@ static PyMethodDef SwigMethods[] = { ""}, { (char *)"FormFactorCone_swigregister", FormFactorCone_swigregister, METH_VARARGS, NULL}, { (char *)"new_FormFactorCone6", _wrap_new_FormFactorCone6, METH_VARARGS, (char *)"\n" - "new_FormFactorCone6(double radius, double height, double alpha) -> FormFactorCone6\n" + "new_FormFactorCone6(double base_edge, double height, double alpha) -> FormFactorCone6\n" "\n" "FormFactorCone6::FormFactorCone6(double radius, double height, double alpha)\n" "\n" @@ -94056,7 +93701,6 @@ static PyMethodDef SwigMethods[] = { "in radians between base and facet \n" "\n" ""}, - { (char *)"FormFactorCone6_polyhedral_faces", _wrap_FormFactorCone6_polyhedral_faces, METH_VARARGS, (char *)"FormFactorCone6_polyhedral_faces(double radius, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >"}, { (char *)"FormFactorCone6_clone", _wrap_FormFactorCone6_clone, METH_VARARGS, (char *)"\n" "FormFactorCone6_clone(FormFactorCone6 self) -> FormFactorCone6\n" "\n" @@ -94079,14 +93723,6 @@ static PyMethodDef SwigMethods[] = { "double FormFactorCone6::getHeight() const \n" "\n" ""}, - { (char *)"FormFactorCone6_getRadius", _wrap_FormFactorCone6_getRadius, METH_VARARGS, (char *)"\n" - "FormFactorCone6_getRadius(FormFactorCone6 self) -> double\n" - "\n" - "double FormFactorCone6::getRadius() const 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" - ""}, { (char *)"FormFactorCone6_getAlpha", _wrap_FormFactorCone6_getAlpha, METH_VARARGS, (char *)"\n" "FormFactorCone6_getAlpha(FormFactorCone6 self) -> double\n" "\n" @@ -94194,13 +93830,6 @@ static PyMethodDef SwigMethods[] = { "in radians between base and facet \n" "\n" ""}, - { (char *)"delete_FormFactorCuboctahedron", _wrap_delete_FormFactorCuboctahedron, METH_VARARGS, (char *)"\n" - "delete_FormFactorCuboctahedron(FormFactorCuboctahedron self)\n" - "\n" - "virtual FormFactorCuboctahedron::~FormFactorCuboctahedron()\n" - "\n" - ""}, - { (char *)"FormFactorCuboctahedron_polyhedral_faces", _wrap_FormFactorCuboctahedron_polyhedral_faces, METH_VARARGS, (char *)"FormFactorCuboctahedron_polyhedral_faces(double length, double height, double height_ratio, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >"}, { (char *)"FormFactorCuboctahedron_clone", _wrap_FormFactorCuboctahedron_clone, METH_VARARGS, (char *)"\n" "FormFactorCuboctahedron_clone(FormFactorCuboctahedron self) -> FormFactorCuboctahedron\n" "\n" @@ -94217,12 +93846,10 @@ static PyMethodDef SwigMethods[] = { "Calls the ISampleVisitor's visit method. \n" "\n" ""}, - { (char *)"FormFactorCuboctahedron_getRadius", _wrap_FormFactorCuboctahedron_getRadius, METH_VARARGS, (char *)"\n" - "FormFactorCuboctahedron_getRadius(FormFactorCuboctahedron self) -> double\n" - "\n" - "double FormFactorCuboctahedron::getRadius() const final\n" + { (char *)"FormFactorCuboctahedron_getLength", _wrap_FormFactorCuboctahedron_getLength, METH_VARARGS, (char *)"\n" + "FormFactorCuboctahedron_getLength(FormFactorCuboctahedron self) -> double\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" + "double FormFactorCuboctahedron::getLength() const \n" "\n" ""}, { (char *)"FormFactorCuboctahedron_getHeight", _wrap_FormFactorCuboctahedron_getHeight, METH_VARARGS, (char *)"\n" @@ -94237,18 +93864,18 @@ static PyMethodDef SwigMethods[] = { "double FormFactorCuboctahedron::getHeightRatio() const \n" "\n" ""}, - { (char *)"FormFactorCuboctahedron_getLength", _wrap_FormFactorCuboctahedron_getLength, METH_VARARGS, (char *)"\n" - "FormFactorCuboctahedron_getLength(FormFactorCuboctahedron self) -> double\n" - "\n" - "double FormFactorCuboctahedron::getLength() const \n" - "\n" - ""}, { (char *)"FormFactorCuboctahedron_getAlpha", _wrap_FormFactorCuboctahedron_getAlpha, METH_VARARGS, (char *)"\n" "FormFactorCuboctahedron_getAlpha(FormFactorCuboctahedron self) -> double\n" "\n" "double FormFactorCuboctahedron::getAlpha() const \n" "\n" ""}, + { (char *)"delete_FormFactorCuboctahedron", _wrap_delete_FormFactorCuboctahedron, METH_VARARGS, (char *)"\n" + "delete_FormFactorCuboctahedron(FormFactorCuboctahedron self)\n" + "\n" + "virtual FormFactorCuboctahedron::~FormFactorCuboctahedron()\n" + "\n" + ""}, { (char *)"FormFactorCuboctahedron_swigregister", FormFactorCuboctahedron_swigregister, METH_VARARGS, NULL}, { (char *)"new_FormFactorCylinder", _wrap_new_FormFactorCylinder, METH_VARARGS, (char *)"\n" "new_FormFactorCylinder(double radius, double height) -> FormFactorCylinder\n" @@ -94762,7 +94389,6 @@ static PyMethodDef SwigMethods[] = { "length \n" "\n" ""}, - { (char *)"FormFactorIcosahedron_polyhedral_faces", _wrap_FormFactorIcosahedron_polyhedral_faces, METH_VARARGS, (char *)"FormFactorIcosahedron_polyhedral_faces(double edge) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >"}, { (char *)"FormFactorIcosahedron_clone", _wrap_FormFactorIcosahedron_clone, METH_VARARGS, (char *)"\n" "FormFactorIcosahedron_clone(FormFactorIcosahedron self) -> FormFactorIcosahedron\n" "\n" @@ -94779,14 +94405,6 @@ static PyMethodDef SwigMethods[] = { "Calls the ISampleVisitor's visit method. \n" "\n" ""}, - { (char *)"FormFactorIcosahedron_getRadius", _wrap_FormFactorIcosahedron_getRadius, METH_VARARGS, (char *)"\n" - "FormFactorIcosahedron_getRadius(FormFactorIcosahedron self) -> double\n" - "\n" - "double FormFactorIcosahedron::getRadius() const 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" - ""}, { (char *)"FormFactorIcosahedron_getEdge", _wrap_FormFactorIcosahedron_getEdge, METH_VARARGS, (char *)"\n" "FormFactorIcosahedron_getEdge(FormFactorIcosahedron self) -> double\n" "\n" @@ -95466,7 +95084,6 @@ static PyMethodDef SwigMethods[] = { "in radians between base and facet \n" "\n" ""}, - { (char *)"FormFactorPyramid_polyhedral_faces", _wrap_FormFactorPyramid_polyhedral_faces, METH_VARARGS, (char *)"FormFactorPyramid_polyhedral_faces(double length, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >"}, { (char *)"FormFactorPyramid_clone", _wrap_FormFactorPyramid_clone, METH_VARARGS, (char *)"\n" "FormFactorPyramid_clone(FormFactorPyramid self) -> FormFactorPyramid\n" "\n" @@ -95483,14 +95100,6 @@ static PyMethodDef SwigMethods[] = { "Calls the ISampleVisitor's visit method. \n" "\n" ""}, - { (char *)"FormFactorPyramid_getRadius", _wrap_FormFactorPyramid_getRadius, METH_VARARGS, (char *)"\n" - "FormFactorPyramid_getRadius(FormFactorPyramid self) -> double\n" - "\n" - "double FormFactorPyramid::getRadius() const 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" - ""}, { (char *)"FormFactorPyramid_getHeight", _wrap_FormFactorPyramid_getHeight, METH_VARARGS, (char *)"\n" "FormFactorPyramid_getHeight(FormFactorPyramid self) -> double\n" "\n" @@ -95847,13 +95456,6 @@ static PyMethodDef SwigMethods[] = { "in radians between base and facet \n" "\n" ""}, - { (char *)"delete_FormFactorTetrahedron", _wrap_delete_FormFactorTetrahedron, METH_VARARGS, (char *)"\n" - "delete_FormFactorTetrahedron(FormFactorTetrahedron self)\n" - "\n" - "FormFactorTetrahedron::~FormFactorTetrahedron()\n" - "\n" - ""}, - { (char *)"FormFactorTetrahedron_polyhedral_faces", _wrap_FormFactorTetrahedron_polyhedral_faces, METH_VARARGS, (char *)"FormFactorTetrahedron_polyhedral_faces(double length, double height, double alpha) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >"}, { (char *)"FormFactorTetrahedron_clone", _wrap_FormFactorTetrahedron_clone, METH_VARARGS, (char *)"\n" "FormFactorTetrahedron_clone(FormFactorTetrahedron self) -> FormFactorTetrahedron\n" "\n" @@ -95870,12 +95472,10 @@ static PyMethodDef SwigMethods[] = { "Calls the ISampleVisitor's visit method. \n" "\n" ""}, - { (char *)"FormFactorTetrahedron_getRadius", _wrap_FormFactorTetrahedron_getRadius, METH_VARARGS, (char *)"\n" - "FormFactorTetrahedron_getRadius(FormFactorTetrahedron self) -> double\n" - "\n" - "double FormFactorTetrahedron::getRadius() const\n" + { (char *)"FormFactorTetrahedron_getLength", _wrap_FormFactorTetrahedron_getLength, METH_VARARGS, (char *)"\n" + "FormFactorTetrahedron_getLength(FormFactorTetrahedron self) -> double\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" + "double FormFactorTetrahedron::getLength() const \n" "\n" ""}, { (char *)"FormFactorTetrahedron_getHeight", _wrap_FormFactorTetrahedron_getHeight, METH_VARARGS, (char *)"\n" @@ -95884,18 +95484,18 @@ static PyMethodDef SwigMethods[] = { "double FormFactorTetrahedron::getHeight() const \n" "\n" ""}, - { (char *)"FormFactorTetrahedron_getLength", _wrap_FormFactorTetrahedron_getLength, METH_VARARGS, (char *)"\n" - "FormFactorTetrahedron_getLength(FormFactorTetrahedron self) -> double\n" - "\n" - "double FormFactorTetrahedron::getLength() const \n" - "\n" - ""}, { (char *)"FormFactorTetrahedron_getAlpha", _wrap_FormFactorTetrahedron_getAlpha, METH_VARARGS, (char *)"\n" "FormFactorTetrahedron_getAlpha(FormFactorTetrahedron self) -> double\n" "\n" "double FormFactorTetrahedron::getAlpha() const \n" "\n" ""}, + { (char *)"delete_FormFactorTetrahedron", _wrap_delete_FormFactorTetrahedron, METH_VARARGS, (char *)"\n" + "delete_FormFactorTetrahedron(FormFactorTetrahedron self)\n" + "\n" + "FormFactorTetrahedron::~FormFactorTetrahedron()\n" + "\n" + ""}, { (char *)"FormFactorTetrahedron_swigregister", FormFactorTetrahedron_swigregister, METH_VARARGS, NULL}, { (char *)"new_FormFactorTrivial", _wrap_new_FormFactorTrivial, METH_VARARGS, (char *)"\n" "new_FormFactorTrivial() -> FormFactorTrivial\n" @@ -95971,7 +95571,6 @@ static PyMethodDef SwigMethods[] = { "length of the trirectangular tetrahedron removed from each vertex of the cube \n" "\n" ""}, - { (char *)"FormFactorTruncatedCube_polyhedral_faces", _wrap_FormFactorTruncatedCube_polyhedral_faces, METH_VARARGS, (char *)"FormFactorTruncatedCube_polyhedral_faces(double length, double removed_length) -> std::vector< PolyhedralFace,std::allocator< PolyhedralFace > >"}, { (char *)"FormFactorTruncatedCube_clone", _wrap_FormFactorTruncatedCube_clone, METH_VARARGS, (char *)"\n" "FormFactorTruncatedCube_clone(FormFactorTruncatedCube self) -> FormFactorTruncatedCube\n" "\n" @@ -95988,14 +95587,6 @@ static PyMethodDef SwigMethods[] = { "Calls the ISampleVisitor's visit method. \n" "\n" ""}, - { (char *)"FormFactorTruncatedCube_getRadius", _wrap_FormFactorTruncatedCube_getRadius, METH_VARARGS, (char *)"\n" - "FormFactorTruncatedCube_getRadius(FormFactorTruncatedCube self) -> double\n" - "\n" - "double FormFactorTruncatedCube::getRadius() const 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" - ""}, { (char *)"FormFactorTruncatedCube_getLength", _wrap_FormFactorTruncatedCube_getLength, METH_VARARGS, (char *)"\n" "FormFactorTruncatedCube_getLength(FormFactorTruncatedCube self) -> double\n" "\n" @@ -103677,7 +103268,6 @@ static swig_type_info _swigt__p_std__vectorT_IParticle_const_p_std__allocatorT_I static swig_type_info _swigt__p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t = {"_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t", "std::vector< ISample const *,std::allocator< ISample const * > > *|std::vector< ISample const * > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t = {"_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t", "std::vector< ISample *,std::allocator< ISample * > > *|std::vector< ISample * > *", 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 > > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t = {"_p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t", "std::vector< PolyhedralFace,std::allocator< PolyhedralFace > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t = {"_p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t", "std::vector< RealParameterWrapper,std::allocator< RealParameterWrapper > > *", 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 > > *|vdouble1d_t *|std::vector< double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_int_std__allocatorT_int_t_t = {"_p_std__vectorT_int_std__allocatorT_int_t_t", "std::vector< int,std::allocator< int > > *|std::vector< int > *", 0, 0, (void*)0, 0}; @@ -103928,7 +103518,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, &_swigt__p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, &_swigt__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t, - &_swigt__p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, &_swigt__p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t, &_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, &_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, @@ -104179,7 +103768,6 @@ static swig_cast_info _swigc__p_std__vectorT_IParticle_const_p_std__allocatorT_I static swig_cast_info _swigc__p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t[] = { {&_swigt__p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t[] = { {&_swigt__p_std__vectorT_ISample_p_std__allocatorT_ISample_p_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_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t[] = { {&_swigt__p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t[] = { {&_swigt__p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_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}}; static swig_cast_info _swigc__p_std__vectorT_int_std__allocatorT_int_t_t[] = { {&_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -104430,7 +104018,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, _swigc__p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, _swigc__p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t, - _swigc__p_std__vectorT_PolyhedralFace_std__allocatorT_PolyhedralFace_t_t, _swigc__p_std__vectorT_RealParameterWrapper_std__allocatorT_RealParameterWrapper_t_t, _swigc__p_std__vectorT_double_std__allocatorT_double_t_t, _swigc__p_std__vectorT_int_std__allocatorT_int_t_t, diff --git a/Core/Tools/BornAgainNamespace.h b/Core/Tools/BornAgainNamespace.h index 123516341a2..670545e84fd 100644 --- a/Core/Tools/BornAgainNamespace.h +++ b/Core/Tools/BornAgainNamespace.h @@ -156,6 +156,7 @@ const std::string MeanRadius = "MeanRadius"; const std::string SigmaRadius = "SigmaRadius"; const std::string FullWidth = "FullWidth"; const std::string Edge = "Edge"; +const std::string BaseEdge = "BaseEdge"; const std::string Length = "Length"; const std::string RemovedLength = "RemovedLength"; const std::string Width = "Width"; diff --git a/Core/Tools/IParameterized.h b/Core/Tools/IParameterized.h index 12889b85fd4..c7cbc42060d 100644 --- a/Core/Tools/IParameterized.h +++ b/Core/Tools/IParameterized.h @@ -61,7 +61,7 @@ public: protected: //! Action to be taken in inherited class when a parameter has changed. - virtual void onChange() { std::cerr << "DEBUG: IPar'ed::onChange\n"; } + virtual void onChange() {} //! Prints a representation of this IParameterized object to the given output stream. //! default implementation prints "IParameterized:" and the parameter pool diff --git a/Doc/UserManual/FormFactors.tex b/Doc/UserManual/FormFactors.tex index a292c65661e..3806f97f1a8 100644 --- a/Doc/UserManual/FormFactors.tex +++ b/Doc/UserManual/FormFactors.tex @@ -498,13 +498,13 @@ except for a substitution $z\to\rho$ in our expression for~$F$. \FloatBarrier \paragraph{Syntax and parameters}\strut\\[-2ex plus .2ex minus .2ex] \begin{lstlisting} - FormFactorCone6(radius,height, alpha) + FormFactorCone6(base_edge,height, alpha) \end{lstlisting} with the parameters \begin{itemize} -\item \texttt{radius} of the regular hexagonal base, $R$, +\item \texttt{base\_edge}, edge of the regular hexagonal base, $R$, \item \texttt{height}, $H$, -\item \texttt{alpha}, between the base and a side face, $\alpha$. +\item \texttt{alpha}, dihedral angle between the base and a side face, $\alpha$. \end{itemize} Note that the orthographic projection does not show~$\alpha$, but the angle~$\beta$ between the base and a side edge. diff --git a/dev-tools/ad-hoc/JWu/dode_test.py b/dev-tools/ad-hoc/JWu/par_changed.py similarity index 75% rename from dev-tools/ad-hoc/JWu/dode_test.py rename to dev-tools/ad-hoc/JWu/par_changed.py index d6611589dbc..131d6174428 100644 --- a/dev-tools/ad-hoc/JWu/dode_test.py +++ b/dev-tools/ad-hoc/JWu/par_changed.py @@ -12,18 +12,17 @@ n = 3 results = [] edge = 30 -title = 'face normal' +title = 'E=30' trafo = ba.RotationY(26.5651*degree) -ff = ba.FormFactorDodecahedron(edge*nanometer) +ff = ba.FormFactorPrism3(edge*nanometer,20*nanometer) data = bp.run_simulation(det,ff,trafo) results.append( bp.Result(0, data, title) ) pool = ff.getParameterPool() print( pool.getParameterNames() ) -pool.setParameterValue('Edge', 10) +pool.setParameterValue('Length', 10 ) -title = 'vertex normal' -ff = ba.FormFactorDodecahedron(edge*nanometer) +title = 'E=10' data = bp.run_simulation(det,ff,trafo) results.append( bp.Result(1, data, title) ) -- GitLab