diff --git a/Core/PythonAPI/inc/ICloneable.pypp.h b/Core/PythonAPI/inc/ICloneable.pypp.h new file mode 100644 index 0000000000000000000000000000000000000000..0d8af5830ffae000b94fdb45a86ac56fe9d8c213 --- /dev/null +++ b/Core/PythonAPI/inc/ICloneable.pypp.h @@ -0,0 +1,8 @@ +// This file has been generated by Py++. + +#ifndef ICloneable_hpp__pyplusplus_wrapper +#define ICloneable_hpp__pyplusplus_wrapper + +void register_ICloneable_class(); + +#endif//ICloneable_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/ISingleton_less__MaterialManager__greater_.pypp.h b/Core/PythonAPI/inc/ISingleton_less__MaterialManager__greater_.pypp.h deleted file mode 100644 index 5d03ff9742f4071fde00ff2ea7cd11b11c490bf7..0000000000000000000000000000000000000000 --- a/Core/PythonAPI/inc/ISingleton_less__MaterialManager__greater_.pypp.h +++ /dev/null @@ -1,8 +0,0 @@ -// This file has been generated by Py++. - -#ifndef ISingleton_less__MaterialManager__greater__hpp__pyplusplus_wrapper -#define ISingleton_less__MaterialManager__greater__hpp__pyplusplus_wrapper - -void register_ISingleton_less__MaterialManager__greater__class(); - -#endif//ISingleton_less__MaterialManager__greater__hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/MaterialManagerSingleton_t.pypp.h b/Core/PythonAPI/inc/MaterialManagerSingleton_t.pypp.h new file mode 100644 index 0000000000000000000000000000000000000000..50562acf79d0f435bd669a6e1656029f22577a19 --- /dev/null +++ b/Core/PythonAPI/inc/MaterialManagerSingleton_t.pypp.h @@ -0,0 +1,8 @@ +// This file has been generated by Py++. + +#ifndef MaterialManagerSingleton_t_hpp__pyplusplus_wrapper +#define MaterialManagerSingleton_t_hpp__pyplusplus_wrapper + +void register_MaterialManagerSingleton_t_class(); + +#endif//MaterialManagerSingleton_t_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/PythonPlusplusHelper.h b/Core/PythonAPI/inc/PythonPlusplusHelper.h index a9205d3019621d2c8da2bcaf5e12abc6b626084f..4bde9fdd0b58b982dad6354dbb440a6d1d1b2528 100644 --- a/Core/PythonAPI/inc/PythonPlusplusHelper.h +++ b/Core/PythonAPI/inc/PythonPlusplusHelper.h @@ -16,16 +16,23 @@ #include "Types.h" #include "BasicVector3D.h" - +#include "DiffuseParticleInfo.h" +#include "IFormFactor.h" +#include "MaterialManager.h" // there is some weared behavior of pyplusplus // without this definition it gets screwed up as soon as it sees in the code vector<kvector> like in LatticeBasis.h namespace pyplusplus { namespace aliases { - typedef Geometry::BasicVector3D<double > kvector_t; + using namespace Geometry; + //typedef Geometry::BasicVector3D<double > kvector_t; + typedef BasicVector3D<double > kvector_t; typedef std::vector<kvector_t > vector_kvector_t; -// typedef Geometry::BasicVector3D<std::complex<double> > cvector_t; -// typedef std::vector<cvector_t > vector_cvector_t; + typedef BasicVector3D<std::complex<double> > cvector_t; + typedef std::vector<cvector_t > vector_cvector_t; + typedef std::vector<DiffuseParticleInfo *> vector_DiffuseParticleInfoPtr_t; + typedef std::vector<IFormFactor *> vector_IFormFactorPtr_t; + typedef ISingleton<MaterialManager> MaterialManagerSingleton_t; } } @@ -37,8 +44,8 @@ class PythonPlusplusHelper public: size_t pyplusplus_boost_kvector() { return sizeof(kvector_t); } size_t pyplusplus_boost_vectorof_kvector() { return sizeof(pyplusplus::aliases::vector_kvector_t); } -// size_t pyplusplus_boost_cvector() { return sizeof(cvector_t); } -// size_t pyplusplus_boost_vectorof_cvector() { return sizeof(pyplusplus::aliases::vector_cvector_t); } + size_t pyplusplus_boost_cvector() { return sizeof(cvector_t); } + size_t pyplusplus_boost_vectorof_cvector() { return sizeof(pyplusplus::aliases::vector_cvector_t); } }; #endif // PYTHONPLUSPLUSHELPER_H diff --git a/Core/PythonAPI/inc/cvector_t.pypp.h b/Core/PythonAPI/inc/cvector_t.pypp.h new file mode 100644 index 0000000000000000000000000000000000000000..462c6b326ba8b7eeda352fb91adb6a77ef65d12d --- /dev/null +++ b/Core/PythonAPI/inc/cvector_t.pypp.h @@ -0,0 +1,8 @@ +// This file has been generated by Py++. + +#ifndef cvector_t_hpp__pyplusplus_wrapper +#define cvector_t_hpp__pyplusplus_wrapper + +void register_cvector_t_class(); + +#endif//cvector_t_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/vector_DiffuseParticleInfoPtr_t.pypp.h b/Core/PythonAPI/inc/vector_DiffuseParticleInfoPtr_t.pypp.h new file mode 100644 index 0000000000000000000000000000000000000000..512803f258dd4fa2e6c7fee459d819eb84be9e5b --- /dev/null +++ b/Core/PythonAPI/inc/vector_DiffuseParticleInfoPtr_t.pypp.h @@ -0,0 +1,8 @@ +// This file has been generated by Py++. + +#ifndef vector_DiffuseParticleInfoPtr_t_hpp__pyplusplus_wrapper +#define vector_DiffuseParticleInfoPtr_t_hpp__pyplusplus_wrapper + +void register_vector_DiffuseParticleInfoPtr_t_class(); + +#endif//vector_DiffuseParticleInfoPtr_t_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/vector_IFormFactorPtr_t.pypp.h b/Core/PythonAPI/inc/vector_IFormFactorPtr_t.pypp.h new file mode 100644 index 0000000000000000000000000000000000000000..b97febd4a31caafdd1a8e905f2f9652eb4957bbc --- /dev/null +++ b/Core/PythonAPI/inc/vector_IFormFactorPtr_t.pypp.h @@ -0,0 +1,8 @@ +// This file has been generated by Py++. + +#ifndef vector_IFormFactorPtr_t_hpp__pyplusplus_wrapper +#define vector_IFormFactorPtr_t_hpp__pyplusplus_wrapper + +void register_vector_IFormFactorPtr_t_class(); + +#endif//vector_IFormFactorPtr_t_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/vector_less__DiffuseParticleInfo_ptr___greater_.pypp.h b/Core/PythonAPI/inc/vector_less__DiffuseParticleInfo_ptr___greater_.pypp.h deleted file mode 100644 index f0e33acb2a231afdad74a6f2a9597f6f1f33bf2f..0000000000000000000000000000000000000000 --- a/Core/PythonAPI/inc/vector_less__DiffuseParticleInfo_ptr___greater_.pypp.h +++ /dev/null @@ -1,8 +0,0 @@ -// This file has been generated by Py++. - -#ifndef vector_less__DiffuseParticleInfo_ptr___greater__hpp__pyplusplus_wrapper -#define vector_less__DiffuseParticleInfo_ptr___greater__hpp__pyplusplus_wrapper - -void register_vector_less__DiffuseParticleInfo_ptr___greater__class(); - -#endif//vector_less__DiffuseParticleInfo_ptr___greater__hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/vector_less__IFormFactor_ptr___greater_.pypp.h b/Core/PythonAPI/inc/vector_less__IFormFactor_ptr___greater_.pypp.h deleted file mode 100644 index 92ce82e6ba02b2a23b55a19126fcf0f1ce0f451f..0000000000000000000000000000000000000000 --- a/Core/PythonAPI/inc/vector_less__IFormFactor_ptr___greater_.pypp.h +++ /dev/null @@ -1,8 +0,0 @@ -// This file has been generated by Py++. - -#ifndef vector_less__IFormFactor_ptr___greater__hpp__pyplusplus_wrapper -#define vector_less__IFormFactor_ptr___greater__hpp__pyplusplus_wrapper - -void register_vector_less__IFormFactor_ptr___greater__class(); - -#endif//vector_less__IFormFactor_ptr___greater__hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/src/Crystal.pypp.cpp b/Core/PythonAPI/src/Crystal.pypp.cpp index d0b9dd7d0bc93e03608163b2d61c7ba0d9b2f3ec..4d020365d79716b07debfd45889eec99f8a21713 100644 --- a/Core/PythonAPI/src/Crystal.pypp.cpp +++ b/Core/PythonAPI/src/Crystal.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,13 +62,6 @@ namespace bp = boost::python; struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > { - Crystal_wrapper(Crystal const & arg ) - : Crystal( arg ) - , bp::wrapper< Crystal >(){ - // copy constructor - - } - Crystal_wrapper(::LatticeBasis const & lattice_basis, ::Lattice const & lattice ) : Crystal( boost::ref(lattice_basis), boost::ref(lattice) ) , bp::wrapper< Crystal >(){ @@ -147,6 +141,30 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -183,11 +201,23 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_Crystal_class(){ - bp::class_< Crystal_wrapper, bp::bases< IClusteredParticles > >( "Crystal", bp::init< LatticeBasis const &, Lattice const & >(( bp::arg("lattice_basis"), bp::arg("lattice") )) ) + bp::class_< Crystal_wrapper, bp::bases< IClusteredParticles >, boost::noncopyable >( "Crystal", bp::init< LatticeBasis const &, Lattice const & >(( bp::arg("lattice_basis"), bp::arg("lattice") )) ) .def( "clone" , (::Crystal * ( ::Crystal::* )( ) const)(&::Crystal::clone) @@ -234,6 +264,16 @@ void register_Crystal_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( Crystal_wrapper::* )( ) const)(&Crystal_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( Crystal_wrapper::* )( ) )(&Crystal_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( Crystal_wrapper::* )( ) const)(&Crystal_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -245,6 +285,10 @@ void register_Crystal_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( Crystal_wrapper::* )( ) )(&Crystal_wrapper::default_setParametersAreChanged) ); + , (void ( Crystal_wrapper::* )( ) )(&Crystal_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( Crystal_wrapper::* )( ) const)(&Crystal_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/DiffuseParticleInfo.pypp.cpp b/Core/PythonAPI/src/DiffuseParticleInfo.pypp.cpp index d6ac777284dc93395adbc4fac81744bcba78657d..ccf1d172285c32fd55ff6220e491a9478d946cd5 100644 --- a/Core/PythonAPI/src/DiffuseParticleInfo.pypp.cpp +++ b/Core/PythonAPI/src/DiffuseParticleInfo.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,28 +62,28 @@ namespace bp = boost::python; struct DiffuseParticleInfo_wrapper : DiffuseParticleInfo, bp::wrapper< DiffuseParticleInfo > { - virtual bool areParametersChanged( ) { - if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) - return func_areParametersChanged( ); + virtual ::DiffuseParticleInfo * clone( ) const { + if( bp::override func_clone = this->get_override( "clone" ) ) + return func_clone( ); else{ - return this->IParameterized::areParametersChanged( ); + return this->DiffuseParticleInfo::clone( ); } } - bool default_areParametersChanged( ) { - return IParameterized::areParametersChanged( ); + ::DiffuseParticleInfo * default_clone( ) const { + return DiffuseParticleInfo::clone( ); } - virtual ::ParticleInfo * clone( ) const { - if( bp::override func_clone = this->get_override( "clone" ) ) - return func_clone( ); + virtual bool areParametersChanged( ) { + if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) + return func_areParametersChanged( ); else{ - return this->ParticleInfo::clone( ); + return this->IParameterized::areParametersChanged( ); } } - ::ParticleInfo * default_clone( ) const { - return ParticleInfo::clone( ); + bool default_areParametersChanged( ) { + return IParameterized::areParametersChanged( ); } virtual ::ParameterPool * createParameterTree( ) const { @@ -97,6 +98,30 @@ struct DiffuseParticleInfo_wrapper : DiffuseParticleInfo, bp::wrapper< DiffusePa return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -133,11 +158,28 @@ struct DiffuseParticleInfo_wrapper : DiffuseParticleInfo, bp::wrapper< DiffusePa IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_DiffuseParticleInfo_class(){ bp::class_< DiffuseParticleInfo_wrapper, bp::bases< ParticleInfo >, boost::noncopyable >( "DiffuseParticleInfo", bp::no_init ) + .def( + "clone" + , (::DiffuseParticleInfo * ( ::DiffuseParticleInfo::* )( ) const)(&::DiffuseParticleInfo::clone) + , (::DiffuseParticleInfo * ( DiffuseParticleInfo_wrapper::* )( ) const)(&DiffuseParticleInfo_wrapper::default_clone) + , bp::return_value_policy< bp::manage_new_object >() ) .def( "getHeightRange" , (double ( ::DiffuseParticleInfo::* )( ) const)( &::DiffuseParticleInfo::getHeightRange ) ) @@ -164,16 +206,21 @@ void register_DiffuseParticleInfo_class(){ "areParametersChanged" , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) , (bool ( DiffuseParticleInfo_wrapper::* )( ) )(&DiffuseParticleInfo_wrapper::default_areParametersChanged) ) - .def( - "clone" - , (::ParticleInfo * ( ::ParticleInfo::* )( ) const)(&::ParticleInfo::clone) - , (::ParticleInfo * ( DiffuseParticleInfo_wrapper::* )( ) const)(&DiffuseParticleInfo_wrapper::default_clone) - , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( DiffuseParticleInfo_wrapper::* )( ) const)(&DiffuseParticleInfo_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( DiffuseParticleInfo_wrapper::* )( ) )(&DiffuseParticleInfo_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( DiffuseParticleInfo_wrapper::* )( ) const)(&DiffuseParticleInfo_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -185,6 +232,10 @@ void register_DiffuseParticleInfo_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( DiffuseParticleInfo_wrapper::* )( ) )(&DiffuseParticleInfo_wrapper::default_setParametersAreChanged) ); + , (void ( DiffuseParticleInfo_wrapper::* )( ) )(&DiffuseParticleInfo_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( DiffuseParticleInfo_wrapper::* )( ) const)(&DiffuseParticleInfo_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/Experiment.pypp.cpp b/Core/PythonAPI/src/Experiment.pypp.cpp index d5bcf915ddb46ce1eb190d33eb3fe0f5cd84c5db..2692c5a22eb6e44d9a7686a86e2d95ff107e2f1d 100644 --- a/Core/PythonAPI/src/Experiment.pypp.cpp +++ b/Core/PythonAPI/src/Experiment.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -144,7 +145,7 @@ struct Experiment_wrapper : Experiment, bp::wrapper< Experiment > { void register_Experiment_class(){ - bp::class_< Experiment_wrapper, bp::bases< IParameterized >, boost::noncopyable >( "Experiment", bp::init< >() ) + bp::class_< Experiment_wrapper, bp::bases< IParameterized, ICloneable >, boost::noncopyable >( "Experiment", bp::init< >() ) .def( "normalize" , (void ( ::Experiment::* )( ) )(&::Experiment::normalize) diff --git a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp index 5dee429f09b9bdaa9bc2bfc30991f066711ca5af..2acbfa75158f148adf0908bded66ca7974bac74a 100644 --- a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,13 +62,6 @@ namespace bp = boost::python; struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCrystal > { - FormFactorCrystal_wrapper(FormFactorCrystal const & arg ) - : FormFactorCrystal( arg ) - , bp::wrapper< FormFactorCrystal >(){ - // copy constructor - - } - virtual ::FormFactorCrystal * clone( ) const { if( bp::override func_clone = this->get_override( "clone" ) ) return func_clone( ); @@ -104,16 +98,28 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry return FormFactorCrystal::evaluate_for_q( boost::ref(q) ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->FormFactorCrystal::getVolume( ); + } + } + + double default_getVolume( ) const { + return FormFactorCrystal::getVolume( ); + } + + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->FormFactorCrystal::setAmbientRefractiveIndex( refractive_index ); + this->FormFactorCrystal::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - FormFactorCrystal::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + FormFactorCrystal::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual bool areParametersChanged( ) { @@ -240,7 +246,7 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry void register_FormFactorCrystal_class(){ - bp::class_< FormFactorCrystal_wrapper, bp::bases< IFormFactorBorn > >( "FormFactorCrystal", bp::no_init ) + bp::class_< FormFactorCrystal_wrapper, bp::bases< IFormFactorBorn >, boost::noncopyable >( "FormFactorCrystal", bp::no_init ) .def( "clone" , (::FormFactorCrystal * ( ::FormFactorCrystal::* )( ) const)(&::FormFactorCrystal::clone) @@ -256,10 +262,14 @@ void register_FormFactorCrystal_class(){ , (::complex_t ( ::FormFactorCrystal::* )( ::cvector_t const & ) const)(&::FormFactorCrystal::evaluate_for_q) , (::complex_t ( FormFactorCrystal_wrapper::* )( ::cvector_t const & ) const)(&FormFactorCrystal_wrapper::default_evaluate_for_q) , ( bp::arg("q") ) ) + .def( + "getVolume" + , (double ( ::FormFactorCrystal::* )( ) const)(&::FormFactorCrystal::getVolume) + , (double ( FormFactorCrystal_wrapper::* )( ) const)(&FormFactorCrystal_wrapper::default_getVolume) ) .def( "setAmbientRefractiveIndex" - , (void ( ::FormFactorCrystal::* )( ::complex_t ) )(&::FormFactorCrystal::setAmbientRefractiveIndex) - , (void ( FormFactorCrystal_wrapper::* )( ::complex_t ) )(&FormFactorCrystal_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::FormFactorCrystal::* )( ::complex_t const & ) )(&::FormFactorCrystal::setAmbientRefractiveIndex) + , (void ( FormFactorCrystal_wrapper::* )( ::complex_t const & ) )(&FormFactorCrystal_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "areParametersChanged" diff --git a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp index 247cbd399583d4f8ec0cb5296aa9f4a9c4415fb3..04bdb217f2d24606afec1e7d34c9a5cf603d819f 100644 --- a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -176,6 +177,18 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC return IFormFactor::getRadius( ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool isDistributedFormFactor( ) const { if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) ) return func_isDistributedFormFactor( ); @@ -212,16 +225,16 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -283,6 +296,10 @@ void register_FormFactorCylinder_class(){ "getRadius" , (double ( ::IFormFactor::* )( ) const)(&::IFormFactor::getRadius) , (double ( FormFactorCylinder_wrapper::* )( ) const)(&FormFactorCylinder_wrapper::default_getRadius) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorCylinder_wrapper::* )( ) const)(&FormFactorCylinder_wrapper::default_getVolume) ) .def( "isDistributedFormFactor" , (bool ( ::IFormFactor::* )( ) const)(&::IFormFactor::isDistributedFormFactor) @@ -297,8 +314,8 @@ void register_FormFactorCylinder_class(){ , (void ( FormFactorCylinder_wrapper::* )( ) )(&FormFactorCylinder_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorCylinder_wrapper::* )( ::complex_t ) )(&FormFactorCylinder_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorCylinder_wrapper::* )( ::complex_t const & ) )(&FormFactorCylinder_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp index 5e8be80fb44ac44f5bb04a8139c5344c19e10442..3cff867d44bdd7a0158561c71ccb34d75b7ed90b 100644 --- a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,13 +62,6 @@ namespace bp = boost::python; struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller, bp::wrapper< FormFactorDecoratorDebyeWaller > { - FormFactorDecoratorDebyeWaller_wrapper(FormFactorDecoratorDebyeWaller const & arg ) - : FormFactorDecoratorDebyeWaller( arg ) - , bp::wrapper< FormFactorDecoratorDebyeWaller >(){ - // copy constructor - - } - FormFactorDecoratorDebyeWaller_wrapper(::IFormFactor const & p_form_factor, double dw_h_factor, double dw_r_factor ) : FormFactorDecoratorDebyeWaller( boost::ref(p_form_factor), dw_h_factor, dw_r_factor ) , bp::wrapper< FormFactorDecoratorDebyeWaller >(){ @@ -219,16 +213,16 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller, ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactorDecorator::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactorDecorator::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactorDecorator::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactorDecorator::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -247,7 +241,7 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller, void register_FormFactorDecoratorDebyeWaller_class(){ - bp::class_< FormFactorDecoratorDebyeWaller_wrapper, bp::bases< IFormFactorDecorator > >( "FormFactorDecoratorDebyeWaller", bp::init< IFormFactor const &, double, double >(( bp::arg("p_form_factor"), bp::arg("dw_h_factor"), bp::arg("dw_r_factor") )) ) + bp::class_< FormFactorDecoratorDebyeWaller_wrapper, bp::bases< IFormFactorDecorator >, boost::noncopyable >( "FormFactorDecoratorDebyeWaller", bp::init< IFormFactor const &, double, double >(( bp::arg("p_form_factor"), bp::arg("dw_h_factor"), bp::arg("dw_r_factor") )) ) .def( "clone" , (::FormFactorDecoratorDebyeWaller * ( ::FormFactorDecoratorDebyeWaller::* )( ) const)(&::FormFactorDecoratorDebyeWaller::clone) @@ -303,8 +297,8 @@ void register_FormFactorDecoratorDebyeWaller_class(){ , (void ( FormFactorDecoratorDebyeWaller_wrapper::* )( ) )(&FormFactorDecoratorDebyeWaller_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactorDecorator::* )( ::complex_t ) )(&::IFormFactorDecorator::setAmbientRefractiveIndex) - , (void ( FormFactorDecoratorDebyeWaller_wrapper::* )( ::complex_t ) )(&FormFactorDecoratorDebyeWaller_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactorDecorator::* )( ::complex_t const & ) )(&::IFormFactorDecorator::setAmbientRefractiveIndex) + , (void ( FormFactorDecoratorDebyeWaller_wrapper::* )( ::complex_t const & ) )(&FormFactorDecoratorDebyeWaller_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp index cc66d1d5598ac7b9aa3071c399c9e4982652e166..6109a58a3648809dcc9c332e896ade8081925d42 100644 --- a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,13 +62,6 @@ namespace bp = boost::python; struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFactorFullSphere > { - FormFactorFullSphere_wrapper(FormFactorFullSphere const & arg ) - : FormFactorFullSphere( arg ) - , bp::wrapper< FormFactorFullSphere >(){ - // copy constructor - - } - FormFactorFullSphere_wrapper(double radius ) : FormFactorFullSphere( radius ) , bp::wrapper< FormFactorFullSphere >(){ @@ -183,6 +177,18 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_i, alpha_f ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool isDistributedFormFactor( ) const { if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) ) return func_isDistributedFormFactor( ); @@ -219,16 +225,16 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -247,7 +253,7 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac void register_FormFactorFullSphere_class(){ - bp::class_< FormFactorFullSphere_wrapper, bp::bases< IFormFactorBorn > >( "FormFactorFullSphere", bp::init< double >(( bp::arg("radius") )) ) + bp::class_< FormFactorFullSphere_wrapper, bp::bases< IFormFactorBorn >, boost::noncopyable >( "FormFactorFullSphere", bp::init< double >(( bp::arg("radius") )) ) .def( "clone" , (::FormFactorFullSphere * ( ::FormFactorFullSphere::* )( ) const)(&::FormFactorFullSphere::clone) @@ -290,6 +296,10 @@ void register_FormFactorFullSphere_class(){ , (::complex_t ( ::IFormFactorBorn::* )( ::cvector_t const &,::Bin1DCVector const &,double,double ) const)(&::IFormFactorBorn::evaluate) , (::complex_t ( FormFactorFullSphere_wrapper::* )( ::cvector_t const &,::Bin1DCVector const &,double,double ) const)(&FormFactorFullSphere_wrapper::default_evaluate) , ( bp::arg("k_i"), bp::arg("k_f_bin"), bp::arg("alpha_i"), bp::arg("alpha_f") ) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorFullSphere_wrapper::* )( ) const)(&FormFactorFullSphere_wrapper::default_getVolume) ) .def( "isDistributedFormFactor" , (bool ( ::IFormFactor::* )( ) const)(&::IFormFactor::isDistributedFormFactor) @@ -304,8 +314,8 @@ void register_FormFactorFullSphere_class(){ , (void ( FormFactorFullSphere_wrapper::* )( ) )(&FormFactorFullSphere_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorFullSphere_wrapper::* )( ::complex_t ) )(&FormFactorFullSphere_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorFullSphere_wrapper::* )( ::complex_t const & ) )(&FormFactorFullSphere_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp index 6effa1aaaf9ccfc29ddbf61f6c4e0afe31b5552c..8415ba1bc9129054d8ec6a372d7f338187a71c65 100644 --- a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -183,6 +184,18 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss > return IFormFactor::getRadius( ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool isDistributedFormFactor( ) const { if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) ) return func_isDistributedFormFactor( ); @@ -219,16 +232,16 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss > ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -291,6 +304,10 @@ void register_FormFactorGauss_class(){ "getRadius" , (double ( ::IFormFactor::* )( ) const)(&::IFormFactor::getRadius) , (double ( FormFactorGauss_wrapper::* )( ) const)(&FormFactorGauss_wrapper::default_getRadius) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorGauss_wrapper::* )( ) const)(&FormFactorGauss_wrapper::default_getVolume) ) .def( "isDistributedFormFactor" , (bool ( ::IFormFactor::* )( ) const)(&::IFormFactor::isDistributedFormFactor) @@ -305,8 +322,8 @@ void register_FormFactorGauss_class(){ , (void ( FormFactorGauss_wrapper::* )( ) )(&FormFactorGauss_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorGauss_wrapper::* )( ::complex_t ) )(&FormFactorGauss_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorGauss_wrapper::* )( ::complex_t const & ) )(&FormFactorGauss_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp index 07b4781225f1409fdf1c0484ce1526eeca52d2b1..8f841ab20e0387d931760f10f39d4f3e07ad3e11 100644 --- a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -183,6 +184,18 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor return IFormFactor::getRadius( ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool isDistributedFormFactor( ) const { if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) ) return func_isDistributedFormFactor( ); @@ -219,16 +232,16 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -291,6 +304,10 @@ void register_FormFactorLorentz_class(){ "getRadius" , (double ( ::IFormFactor::* )( ) const)(&::IFormFactor::getRadius) , (double ( FormFactorLorentz_wrapper::* )( ) const)(&FormFactorLorentz_wrapper::default_getRadius) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorLorentz_wrapper::* )( ) const)(&FormFactorLorentz_wrapper::default_getVolume) ) .def( "isDistributedFormFactor" , (bool ( ::IFormFactor::* )( ) const)(&::IFormFactor::isDistributedFormFactor) @@ -305,8 +322,8 @@ void register_FormFactorLorentz_class(){ , (void ( FormFactorLorentz_wrapper::* )( ) )(&FormFactorLorentz_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorLorentz_wrapper::* )( ::complex_t ) )(&FormFactorLorentz_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorLorentz_wrapper::* )( ::complex_t const & ) )(&FormFactorLorentz_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp index 3684a70454b09ea1ec538a857e89606db669cc72..da524a5bce1594e6de292483c2acb53f84c5b147 100644 --- a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -176,6 +177,18 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism return IFormFactor::getRadius( ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool isDistributedFormFactor( ) const { if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) ) return func_isDistributedFormFactor( ); @@ -212,16 +225,16 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -283,6 +296,10 @@ void register_FormFactorPrism3_class(){ "getRadius" , (double ( ::IFormFactor::* )( ) const)(&::IFormFactor::getRadius) , (double ( FormFactorPrism3_wrapper::* )( ) const)(&FormFactorPrism3_wrapper::default_getRadius) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorPrism3_wrapper::* )( ) const)(&FormFactorPrism3_wrapper::default_getVolume) ) .def( "isDistributedFormFactor" , (bool ( ::IFormFactor::* )( ) const)(&::IFormFactor::isDistributedFormFactor) @@ -297,8 +314,8 @@ void register_FormFactorPrism3_class(){ , (void ( FormFactorPrism3_wrapper::* )( ) )(&FormFactorPrism3_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorPrism3_wrapper::* )( ::complex_t ) )(&FormFactorPrism3_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorPrism3_wrapper::* )( ::complex_t const & ) )(&FormFactorPrism3_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp index c2782c24dcc1ec42ac9e267c3b05b2c393c12f33..fd27ab33cce315187366d614c3a344fa484d46bd 100644 --- a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -176,6 +177,18 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr return IFormFactor::getRadius( ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool isDistributedFormFactor( ) const { if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) ) return func_isDistributedFormFactor( ); @@ -212,16 +225,16 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -283,6 +296,10 @@ void register_FormFactorPyramid_class(){ "getRadius" , (double ( ::IFormFactor::* )( ) const)(&::IFormFactor::getRadius) , (double ( FormFactorPyramid_wrapper::* )( ) const)(&FormFactorPyramid_wrapper::default_getRadius) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorPyramid_wrapper::* )( ) const)(&FormFactorPyramid_wrapper::default_getVolume) ) .def( "isDistributedFormFactor" , (bool ( ::IFormFactor::* )( ) const)(&::IFormFactor::isDistributedFormFactor) @@ -297,8 +314,8 @@ void register_FormFactorPyramid_class(){ , (void ( FormFactorPyramid_wrapper::* )( ) )(&FormFactorPyramid_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorPyramid_wrapper::* )( ::complex_t ) )(&FormFactorPyramid_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorPyramid_wrapper::* )( ::complex_t const & ) )(&FormFactorPyramid_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp index ac6dc4676ee7450e6563d0fc2bedbccc84f8e8cf..7c6479de012bb948e88d6ad4d6df14568ef50280 100644 --- a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,13 +62,6 @@ namespace bp = boost::python; struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius, bp::wrapper< FormFactorSphereGaussianRadius > { - FormFactorSphereGaussianRadius_wrapper(FormFactorSphereGaussianRadius const & arg ) - : FormFactorSphereGaussianRadius( arg ) - , bp::wrapper< FormFactorSphereGaussianRadius >(){ - // copy constructor - - } - FormFactorSphereGaussianRadius_wrapper(double mean, double sigma ) : FormFactorSphereGaussianRadius( mean, sigma ) , bp::wrapper< FormFactorSphereGaussianRadius >(){ @@ -183,6 +177,18 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius, return IFormFactor::getRadius( ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -207,16 +213,16 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius, ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -235,7 +241,7 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius, void register_FormFactorSphereGaussianRadius_class(){ - bp::class_< FormFactorSphereGaussianRadius_wrapper, bp::bases< IFormFactorBorn > >( "FormFactorSphereGaussianRadius", bp::init< double, double >(( bp::arg("mean"), bp::arg("sigma") )) ) + bp::class_< FormFactorSphereGaussianRadius_wrapper, bp::bases< IFormFactorBorn >, boost::noncopyable >( "FormFactorSphereGaussianRadius", bp::init< double, double >(( bp::arg("mean"), bp::arg("sigma") )) ) .def( "clone" , (::FormFactorSphereGaussianRadius * ( ::FormFactorSphereGaussianRadius::* )( ) const)(&::FormFactorSphereGaussianRadius::clone) @@ -276,6 +282,10 @@ void register_FormFactorSphereGaussianRadius_class(){ "getRadius" , (double ( ::IFormFactor::* )( ) const)(&::IFormFactor::getRadius) , (double ( FormFactorSphereGaussianRadius_wrapper::* )( ) const)(&FormFactorSphereGaussianRadius_wrapper::default_getRadius) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( FormFactorSphereGaussianRadius_wrapper::* )( ) const)(&FormFactorSphereGaussianRadius_wrapper::default_getVolume) ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -286,8 +296,8 @@ void register_FormFactorSphereGaussianRadius_class(){ , (void ( FormFactorSphereGaussianRadius_wrapper::* )( ) )(&FormFactorSphereGaussianRadius_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( FormFactorSphereGaussianRadius_wrapper::* )( ::complex_t ) )(&FormFactorSphereGaussianRadius_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( FormFactorSphereGaussianRadius_wrapper::* )( ::complex_t const & ) )(&FormFactorSphereGaussianRadius_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/GISASExperiment.pypp.cpp b/Core/PythonAPI/src/GISASExperiment.pypp.cpp index 71e0704c53ee9acd64c2ce808bb2592b0ee1fa61..4ce878d5d86d067e4af862ad56035be08171c028 100644 --- a/Core/PythonAPI/src/GISASExperiment.pypp.cpp +++ b/Core/PythonAPI/src/GISASExperiment.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp b/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp index 28ba920b4e32d1a243e8754cc5ec5a4298838c0f..1c72fc192777b309275bb55199d7da32d0d03649 100644 --- a/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp +++ b/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -65,8 +66,8 @@ void register_HomogeneousMaterial_class(){ typedef bp::class_< HomogeneousMaterial, bp::bases< IMaterial > > HomogeneousMaterial_exposer_t; HomogeneousMaterial_exposer_t HomogeneousMaterial_exposer = HomogeneousMaterial_exposer_t( "HomogeneousMaterial", bp::init< >() ); bp::scope HomogeneousMaterial_scope( HomogeneousMaterial_exposer ); - HomogeneousMaterial_exposer.def( bp::init< complex_t >(( bp::arg("refractive_index") )) ); - HomogeneousMaterial_exposer.def( bp::init< std::string const &, complex_t >(( bp::arg("name"), bp::arg("refractive_index") )) ); + HomogeneousMaterial_exposer.def( bp::init< complex_t const & >(( bp::arg("refractive_index") )) ); + HomogeneousMaterial_exposer.def( bp::init< std::string const &, complex_t const & >(( bp::arg("name"), bp::arg("refractive_index") )) ); HomogeneousMaterial_exposer.def( bp::init< std::string const &, double, double >(( bp::arg("name"), bp::arg("refractive_index_real"), bp::arg("refractive_index_imag") )) ); HomogeneousMaterial_exposer.def( bp::init< HomogeneousMaterial const & >(( bp::arg("other") )) ); { //::HomogeneousMaterial::getRefractiveIndex diff --git a/Core/PythonAPI/src/ICloneable.pypp.cpp b/Core/PythonAPI/src/ICloneable.pypp.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f6e81e52a37d06a4b2c0730a05a85bf6dafad0f9 --- /dev/null +++ b/Core/PythonAPI/src/ICloneable.pypp.cpp @@ -0,0 +1,87 @@ +// This file has been generated by Py++. + +#include "Macros.h" +GCC_DIAG_OFF(unused-parameter); +GCC_DIAG_OFF(missing-field-initializers); +#include "boost/python.hpp" +#include "boost/python/suite/indexing/vector_indexing_suite.hpp" +GCC_DIAG_ON(unused-parameter); +GCC_DIAG_ON(missing-field-initializers); +#include "BasicVector3D.h" +#include "Experiment.h" +#include "FormFactorCrystal.h" +#include "FormFactorCylinder.h" +#include "FormFactorDecoratorDebyeWaller.h" +#include "FormFactorFullSphere.h" +#include "FormFactorGauss.h" +#include "FormFactorLorentz.h" +#include "FormFactorPrism3.h" +#include "FormFactorPyramid.h" +#include "FormFactorSphereGaussianRadius.h" +#include "GISASExperiment.h" +#include "HomogeneousMaterial.h" +#include "ICloneable.h" +#include "IClusteredParticles.h" +#include "ICompositeSample.h" +#include "IFormFactor.h" +#include "IFormFactorBorn.h" +#include "IFormFactorDecorator.h" +#include "IInterferenceFunction.h" +#include "InterferenceFunctionNone.h" +#include "InterferenceFunction1DParaCrystal.h" +#include "IMaterial.h" +#include "IParameterized.h" +#include "ISample.h" +#include "ISampleBuilder.h" +#include "ISelectionRule.h" +#include "ISingleton.h" +#include "Lattice.h" +#include "LatticeBasis.h" +#include "Layer.h" +#include "LayerDecorator.h" +#include "LayerRoughness.h" +#include "MaterialManager.h" +#include "MesoCrystal.h" +#include "MultiLayer.h" +#include "Particle.h" +#include "Crystal.h" +#include "ParticleDecoration.h" +#include "OpticalFresnel.h" +#include "ParameterPool.h" +#include "ParticleInfo.h" +#include "DiffuseParticleInfo.h" +#include "PythonOutputData.h" +#include "PythonPlusplusHelper.h" +#include "RealParameterWrapper.h" +#include "Transform3D.h" +#include "Units.h" +#include "Types.h" +#include "ICloneable.pypp.h" + +namespace bp = boost::python; + +struct ICloneable_wrapper : ICloneable, bp::wrapper< ICloneable > { + + ICloneable_wrapper( ) + : ICloneable( ) + , bp::wrapper< ICloneable >(){ + // null constructor + + } + + virtual ::ICloneable * clone( ) const { + bp::override func_clone = this->get_override( "clone" ); + return func_clone( ); + } + +}; + +void register_ICloneable_class(){ + + bp::class_< ICloneable_wrapper, boost::noncopyable >( "ICloneable", bp::init< >() ) + .def( + "clone" + , bp::pure_virtual( (::ICloneable * ( ::ICloneable::* )( ) const)(&::ICloneable::clone) ) + , bp::return_value_policy< bp::manage_new_object >() ); + +} diff --git a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp index acad203c63180bb5321239be3ff864ad1ffa8288..6c256bcccf8030339eda3c0f7bfe57d6aa287611 100644 --- a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp +++ b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -133,6 +134,30 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -169,6 +194,18 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_IClusteredParticles_class(){ @@ -204,6 +241,16 @@ void register_IClusteredParticles_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( IClusteredParticles_wrapper::* )( ) const)(&IClusteredParticles_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( IClusteredParticles_wrapper::* )( ) )(&IClusteredParticles_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( IClusteredParticles_wrapper::* )( ) const)(&IClusteredParticles_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -215,6 +262,10 @@ void register_IClusteredParticles_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( IClusteredParticles_wrapper::* )( ) )(&IClusteredParticles_wrapper::default_setParametersAreChanged) ); + , (void ( IClusteredParticles_wrapper::* )( ) )(&IClusteredParticles_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( IClusteredParticles_wrapper::* )( ) const)(&IClusteredParticles_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/ICompositeSample.pypp.cpp b/Core/PythonAPI/src/ICompositeSample.pypp.cpp index 2dc021e61f142719e5219177a33ab9646fadf302..0064cb8ae7f065bce14f119ca6e5672a6b34a9a8 100644 --- a/Core/PythonAPI/src/ICompositeSample.pypp.cpp +++ b/Core/PythonAPI/src/ICompositeSample.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -68,28 +69,64 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl } - virtual bool areParametersChanged( ) { - if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) - return func_areParametersChanged( ); + virtual ::ICompositeSample * clone( ) const { + if( bp::override func_clone = this->get_override( "clone" ) ) + return func_clone( ); else{ - return this->IParameterized::areParametersChanged( ); + return this->ICompositeSample::clone( ); } } - bool default_areParametersChanged( ) { - return IParameterized::areParametersChanged( ); + ::ICompositeSample * default_clone( ) const { + return ICompositeSample::clone( ); } - virtual ::ISample * clone( ) const { - if( bp::override func_clone = this->get_override( "clone" ) ) - return func_clone( ); + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); else{ - return this->ISample::clone( ); + return this->ICompositeSample::size( ); } } - ::ISample * default_clone( ) const { - return ISample::clone( ); + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + + virtual bool areParametersChanged( ) { + if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) + return func_areParametersChanged( ); + else{ + return this->IParameterized::areParametersChanged( ); + } + } + + bool default_areParametersChanged( ) { + return IParameterized::areParametersChanged( ); } virtual ::ParameterPool * createParameterTree( ) const { @@ -146,14 +183,40 @@ void register_ICompositeSample_class(){ bp::class_< ICompositeSample_wrapper, bp::bases< ISample >, boost::noncopyable >( "ICompositeSample", bp::init< >() ) .def( - "areParametersChanged" - , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) - , (bool ( ICompositeSample_wrapper::* )( ) )(&ICompositeSample_wrapper::default_areParametersChanged) ) + "begin_shallow" + , (::std::_List_iterator< ISample* > ( ::ICompositeSample::* )( ) )( &::ICompositeSample::begin_shallow ) ) + .def( + "begin_shallow" + , (::std::_List_const_iterator< ISample* > ( ::ICompositeSample::* )( ) const)( &::ICompositeSample::begin_shallow ) ) .def( "clone" - , (::ISample * ( ::ISample::* )( ) const)(&::ISample::clone) - , (::ISample * ( ICompositeSample_wrapper::* )( ) const)(&ICompositeSample_wrapper::default_clone) + , (::ICompositeSample * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::clone) + , (::ICompositeSample * ( ICompositeSample_wrapper::* )( ) const)(&ICompositeSample_wrapper::default_clone) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "end_shallow" + , (::std::_List_iterator< ISample* > ( ::ICompositeSample::* )( ) )( &::ICompositeSample::end_shallow ) ) + .def( + "end_shallow" + , (::std::_List_const_iterator< ISample* > ( ::ICompositeSample::* )( ) const)( &::ICompositeSample::end_shallow ) ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( ICompositeSample_wrapper::* )( ) )(&ICompositeSample_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( ICompositeSample_wrapper::* )( ) const)(&ICompositeSample_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( ICompositeSample_wrapper::* )( ) const)(&ICompositeSample_wrapper::default_size) ) + .def( + "areParametersChanged" + , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) + , (bool ( ICompositeSample_wrapper::* )( ) )(&ICompositeSample_wrapper::default_areParametersChanged) ) .def( "createParameterTree" , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) diff --git a/Core/PythonAPI/src/IFormFactor.pypp.cpp b/Core/PythonAPI/src/IFormFactor.pypp.cpp index 066917e36031a81578496354177a5e558389a474..e0ff2fb22b877ff6cd11d2b39de4414d0f412454 100644 --- a/Core/PythonAPI/src/IFormFactor.pypp.cpp +++ b/Core/PythonAPI/src/IFormFactor.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -150,16 +151,16 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > { return IFormFactor::isDistributedFormFactor( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual bool areParametersChanged( ) { @@ -263,8 +264,8 @@ void register_IFormFactor_class(){ , (bool ( IFormFactor_wrapper::* )( ) const)(&IFormFactor_wrapper::default_isDistributedFormFactor) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( IFormFactor_wrapper::* )( ::complex_t ) )(&IFormFactor_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( IFormFactor_wrapper::* )( ::complex_t const & ) )(&IFormFactor_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "areParametersChanged" diff --git a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp index d07985e889d990b32002e05b44b6ffb9ca585f02..6584afbc3795c583d6135a91920e355c13257199 100644 --- a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp +++ b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -90,6 +91,18 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn > return func_evaluate_for_q( boost::ref(q) ); } + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactorBorn::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactorBorn::getVolume( ); + } + virtual bool areParametersChanged( ) { if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) return func_areParametersChanged( ); @@ -198,16 +211,16 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn > ISample::print_structure( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactor::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactor::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactor::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual void setParametersAreChanged( ) { @@ -240,6 +253,10 @@ void register_IFormFactorBorn_class(){ "evaluate_for_q" , bp::pure_virtual( (::complex_t ( ::IFormFactorBorn::* )( ::cvector_t const & ) const)(&::IFormFactorBorn::evaluate_for_q) ) , ( bp::arg("q") ) ) + .def( + "getVolume" + , (double ( ::IFormFactorBorn::* )( ) const)(&::IFormFactorBorn::getVolume) + , (double ( IFormFactorBorn_wrapper::* )( ) const)(&IFormFactorBorn_wrapper::default_getVolume) ) .def( "areParametersChanged" , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) @@ -281,8 +298,8 @@ void register_IFormFactorBorn_class(){ , (void ( IFormFactorBorn_wrapper::* )( ) )(&IFormFactorBorn_wrapper::default_print_structure) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactor::* )( ::complex_t ) )(&::IFormFactor::setAmbientRefractiveIndex) - , (void ( IFormFactorBorn_wrapper::* )( ::complex_t ) )(&IFormFactorBorn_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactor::* )( ::complex_t const & ) )(&::IFormFactor::setAmbientRefractiveIndex) + , (void ( IFormFactorBorn_wrapper::* )( ::complex_t const & ) )(&IFormFactorBorn_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "setParametersAreChanged" diff --git a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp index 49a13e94dc04d27467d3583ea7ae02c740c90294..af02eb6771c92fa8b85939d114b3d0ef2079ded5 100644 --- a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp +++ b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -102,16 +103,16 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa return IFormFactorDecorator::getVolume( ); } - virtual void setAmbientRefractiveIndex( ::complex_t refractive_index ) { + virtual void setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { if( bp::override func_setAmbientRefractiveIndex = this->get_override( "setAmbientRefractiveIndex" ) ) - func_setAmbientRefractiveIndex( refractive_index ); + func_setAmbientRefractiveIndex( boost::ref(refractive_index) ); else{ - this->IFormFactorDecorator::setAmbientRefractiveIndex( refractive_index ); + this->IFormFactorDecorator::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } } - void default_setAmbientRefractiveIndex( ::complex_t refractive_index ) { - IFormFactorDecorator::setAmbientRefractiveIndex( refractive_index ); + void default_setAmbientRefractiveIndex( ::complex_t const & refractive_index ) { + IFormFactorDecorator::setAmbientRefractiveIndex( boost::ref(refractive_index) ); } virtual bool areParametersChanged( ) { @@ -238,8 +239,8 @@ void register_IFormFactorDecorator_class(){ , (double ( IFormFactorDecorator_wrapper::* )( ) const)(&IFormFactorDecorator_wrapper::default_getVolume) ) .def( "setAmbientRefractiveIndex" - , (void ( ::IFormFactorDecorator::* )( ::complex_t ) )(&::IFormFactorDecorator::setAmbientRefractiveIndex) - , (void ( IFormFactorDecorator_wrapper::* )( ::complex_t ) )(&IFormFactorDecorator_wrapper::default_setAmbientRefractiveIndex) + , (void ( ::IFormFactorDecorator::* )( ::complex_t const & ) )(&::IFormFactorDecorator::setAmbientRefractiveIndex) + , (void ( IFormFactorDecorator_wrapper::* )( ::complex_t const & ) )(&IFormFactorDecorator_wrapper::default_setAmbientRefractiveIndex) , ( bp::arg("refractive_index") ) ) .def( "areParametersChanged" diff --git a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp index ee58304bd4a397bdc1406cb5d706cd0470c054d6..b1cf7167e0894d74b948b11710b727f776be312c 100644 --- a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp +++ b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/IMaterial.pypp.cpp b/Core/PythonAPI/src/IMaterial.pypp.cpp index cba84feb2d6e20cd25f51a6d54d67c6ba5120a00..013e593dc204e7cccfc510b104d92af14f3adc92 100644 --- a/Core/PythonAPI/src/IMaterial.pypp.cpp +++ b/Core/PythonAPI/src/IMaterial.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/IParameterized.pypp.cpp b/Core/PythonAPI/src/IParameterized.pypp.cpp index 9a7abefdaeab14ae36c6746a5d4177cf285b1e5b..6c311b5f98b384ab0ebbe75d2ecfb14865e45212 100644 --- a/Core/PythonAPI/src/IParameterized.pypp.cpp +++ b/Core/PythonAPI/src/IParameterized.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -68,6 +69,13 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > { } + IParameterized_wrapper(::std::string const & name ) + : IParameterized( name ) + , bp::wrapper< IParameterized >(){ + // constructor + + } + IParameterized_wrapper(::IParameterized const & other ) : IParameterized( boost::ref(other) ) , bp::wrapper< IParameterized >(){ @@ -129,9 +137,9 @@ void register_IParameterized_class(){ { //::IParameterized typedef bp::class_< IParameterized_wrapper > IParameterized_exposer_t; - IParameterized_exposer_t IParameterized_exposer = IParameterized_exposer_t( "IParameterized", bp::no_init ); + IParameterized_exposer_t IParameterized_exposer = IParameterized_exposer_t( "IParameterized", bp::init< >() ); bp::scope IParameterized_scope( IParameterized_exposer ); - IParameterized_exposer.def( bp::init< >() ); + IParameterized_exposer.def( bp::init< std::string const & >(( bp::arg("name") )) ); IParameterized_exposer.def( bp::init< IParameterized const & >(( bp::arg("other") )) ); { //::IParameterized::areParametersChanged diff --git a/Core/PythonAPI/src/ISample.pypp.cpp b/Core/PythonAPI/src/ISample.pypp.cpp index 3123d51fcaab29790ec6ca84469cd4b388741d8a..4003593654f3efa9ecbfbce18b4b36a4bd4562f4 100644 --- a/Core/PythonAPI/src/ISample.pypp.cpp +++ b/Core/PythonAPI/src/ISample.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -68,13 +69,6 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > { } - ISample_wrapper(::ISample const & other ) - : ISample( boost::ref(other) ) - , bp::wrapper< ISample >(){ - // copy constructor - - } - virtual ::ISample * clone( ) const { if( bp::override func_clone = this->get_override( "clone" ) ) return func_clone( ); @@ -151,91 +145,33 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > { void register_ISample_class(){ - { //::ISample - typedef bp::class_< ISample_wrapper, bp::bases< IParameterized > > ISample_exposer_t; - ISample_exposer_t ISample_exposer = ISample_exposer_t( "ISample", bp::init< >() ); - bp::scope ISample_scope( ISample_exposer ); - ISample_exposer.def( bp::init< ISample const & >(( bp::arg("other") )) ); - { //::ISample::clone - - typedef ::ISample * ( ::ISample::*clone_function_type )( ) const; - typedef ::ISample * ( ISample_wrapper::*default_clone_function_type )( ) const; - - ISample_exposer.def( - "clone" - , clone_function_type(&::ISample::clone) - , default_clone_function_type(&ISample_wrapper::default_clone) - , bp::return_value_policy< bp::manage_new_object >() ); - - } - { //::ISample::operator= - - typedef ::ISample & ( ::ISample::*assign_function_type )( ::ISample const & ) ; - - ISample_exposer.def( - "assign" - , assign_function_type( &::ISample::operator= ) - , ( bp::arg("other") ) - , bp::return_self< >() ); - - } - { //::ISample::print_structure - - typedef void ( ::ISample::*print_structure_function_type )( ) ; - typedef void ( ISample_wrapper::*default_print_structure_function_type )( ) ; - - ISample_exposer.def( - "print_structure" - , print_structure_function_type(&::ISample::print_structure) - , default_print_structure_function_type(&ISample_wrapper::default_print_structure) ); - - } - { //::IParameterized::areParametersChanged - - typedef bool ( ::IParameterized::*areParametersChanged_function_type )( ) ; - typedef bool ( ISample_wrapper::*default_areParametersChanged_function_type )( ) ; - - ISample_exposer.def( - "areParametersChanged" - , areParametersChanged_function_type(&::IParameterized::areParametersChanged) - , default_areParametersChanged_function_type(&ISample_wrapper::default_areParametersChanged) ); - - } - { //::IParameterized::createParameterTree - - typedef ::ParameterPool * ( ::IParameterized::*createParameterTree_function_type )( ) const; - typedef ::ParameterPool * ( ISample_wrapper::*default_createParameterTree_function_type )( ) const; - - ISample_exposer.def( - "createParameterTree" - , createParameterTree_function_type(&::IParameterized::createParameterTree) - , default_createParameterTree_function_type(&ISample_wrapper::default_createParameterTree) - , bp::return_value_policy< bp::manage_new_object >() ); - - } - { //::IParameterized::printParameters - - typedef void ( ::IParameterized::*printParameters_function_type )( ) const; - typedef void ( ISample_wrapper::*default_printParameters_function_type )( ) const; - - ISample_exposer.def( - "printParameters" - , printParameters_function_type(&::IParameterized::printParameters) - , default_printParameters_function_type(&ISample_wrapper::default_printParameters) ); - - } - { //::IParameterized::setParametersAreChanged - - typedef void ( ::IParameterized::*setParametersAreChanged_function_type )( ) ; - typedef void ( ISample_wrapper::*default_setParametersAreChanged_function_type )( ) ; - - ISample_exposer.def( - "setParametersAreChanged" - , setParametersAreChanged_function_type(&::IParameterized::setParametersAreChanged) - , default_setParametersAreChanged_function_type(&ISample_wrapper::default_setParametersAreChanged) ); - - } - ISample_exposer.def( bp::self_ns::str( bp::self ) ); - } + bp::class_< ISample_wrapper, bp::bases< IParameterized, ICloneable >, boost::noncopyable >( "ISample", bp::init< >() ) + .def( + "clone" + , (::ISample * ( ::ISample::* )( ) const)(&::ISample::clone) + , (::ISample * ( ISample_wrapper::* )( ) const)(&ISample_wrapper::default_clone) + , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "print_structure" + , (void ( ::ISample::* )( ) )(&::ISample::print_structure) + , (void ( ISample_wrapper::* )( ) )(&ISample_wrapper::default_print_structure) ) + .def( + "areParametersChanged" + , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) + , (bool ( ISample_wrapper::* )( ) )(&ISample_wrapper::default_areParametersChanged) ) + .def( + "createParameterTree" + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) + , (::ParameterPool * ( ISample_wrapper::* )( ) const)(&ISample_wrapper::default_createParameterTree) + , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "printParameters" + , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) + , (void ( ISample_wrapper::* )( ) const)(&ISample_wrapper::default_printParameters) ) + .def( + "setParametersAreChanged" + , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) + , (void ( ISample_wrapper::* )( ) )(&ISample_wrapper::default_setParametersAreChanged) ) + .def( bp::self_ns::str( bp::self ) ); } diff --git a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp index cc73724f6dec49397cf151279c823c516306ec78..87fe751e9d2731f57b06d9fdf38ada3517141667 100644 --- a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp +++ b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -144,7 +145,7 @@ void register_ISampleBuilder_class(){ "buildSample" , (::ISample * ( ::ISampleBuilder::* )( ) const)(&::ISampleBuilder::buildSample) , (::ISample * ( ISampleBuilder_wrapper::* )( ) const)(&ISampleBuilder_wrapper::default_buildSample) - , bp::return_value_policy< bp::reference_existing_object >() ) + , bp::return_value_policy< bp::manage_new_object >() ) .def( "areParametersChanged" , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) diff --git a/Core/PythonAPI/src/ISelectionRule.pypp.cpp b/Core/PythonAPI/src/ISelectionRule.pypp.cpp index 2d7d27d246237dfed73dedb5168f9c2b9aaa00f5..1f437d091b0e38440368fd77499fdba6defb4bfa 100644 --- a/Core/PythonAPI/src/ISelectionRule.pypp.cpp +++ b/Core/PythonAPI/src/ISelectionRule.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp index d2410854569cd67dceafb791fc18e46d3181af74..36610d474022f9b2d22b9eecce79a1aabb0f6dfe 100644 --- a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp +++ b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp index b0cf2b74896e1ac8cb708cd9cfe28534894a8558..bf8a89f9165f4fdb8f7947ee145bb79134bdb3f6 100644 --- a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp +++ b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/Lattice.pypp.cpp b/Core/PythonAPI/src/Lattice.pypp.cpp index 05f4a8c588a0fe4969a001928fa6366b3dea8bf3..5b663f727e509bea6a929cb2f8f8c5263bba429e 100644 --- a/Core/PythonAPI/src/Lattice.pypp.cpp +++ b/Core/PythonAPI/src/Lattice.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/LatticeBasis.pypp.cpp b/Core/PythonAPI/src/LatticeBasis.pypp.cpp index 876c18948f17c2be5a9af2ad2ace613c0fc5a380..a825d450c5c4dea7ef854bb226c9921430b51a4b 100644 --- a/Core/PythonAPI/src/LatticeBasis.pypp.cpp +++ b/Core/PythonAPI/src/LatticeBasis.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -92,6 +93,30 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual ::complex_t const getRefractiveIndex( ) const { if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) ) return func_getRefractiveIndex( ); @@ -164,6 +189,18 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_LatticeBasis_class(){ @@ -182,6 +219,16 @@ void register_LatticeBasis_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( LatticeBasis_wrapper::* )( ) const)(&LatticeBasis_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( LatticeBasis_wrapper::* )( ) )(&LatticeBasis_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( LatticeBasis_wrapper::* )( ) const)(&LatticeBasis_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "getRefractiveIndex" , (::complex_t const ( ::Particle::* )( ) const)(&::Particle::getRefractiveIndex) @@ -206,6 +253,10 @@ void register_LatticeBasis_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( LatticeBasis_wrapper::* )( ) )(&LatticeBasis_wrapper::default_setParametersAreChanged) ); + , (void ( LatticeBasis_wrapper::* )( ) )(&LatticeBasis_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( LatticeBasis_wrapper::* )( ) const)(&LatticeBasis_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/Layer.pypp.cpp b/Core/PythonAPI/src/Layer.pypp.cpp index 9d4a5787afcfc88b3c7ddc753a97124ee0733ed2..014e43c6fbe2cc4abc0f0265c1f5d2a3f4fa71ef 100644 --- a/Core/PythonAPI/src/Layer.pypp.cpp +++ b/Core/PythonAPI/src/Layer.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -202,6 +203,30 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -238,6 +263,18 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_Layer_class(){ @@ -291,6 +328,16 @@ void register_Layer_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( Layer_wrapper::* )( ) const)(&Layer_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( Layer_wrapper::* )( ) )(&Layer_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( Layer_wrapper::* )( ) const)(&Layer_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -302,6 +349,10 @@ void register_Layer_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( Layer_wrapper::* )( ) )(&Layer_wrapper::default_setParametersAreChanged) ); + , (void ( Layer_wrapper::* )( ) )(&Layer_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( Layer_wrapper::* )( ) const)(&Layer_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/LayerDecorator.pypp.cpp b/Core/PythonAPI/src/LayerDecorator.pypp.cpp index f3017f37400dadb7eab1b6328f1d3d2129ac55c6..ab33eb6246017668e82ba4aaf52adec6bbff2c7c 100644 --- a/Core/PythonAPI/src/LayerDecorator.pypp.cpp +++ b/Core/PythonAPI/src/LayerDecorator.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -188,6 +189,30 @@ struct LayerDecorator_wrapper : LayerDecorator, bp::wrapper< LayerDecorator > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -224,6 +249,18 @@ struct LayerDecorator_wrapper : LayerDecorator, bp::wrapper< LayerDecorator > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_LayerDecorator_class(){ @@ -281,6 +318,16 @@ void register_LayerDecorator_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( LayerDecorator_wrapper::* )( ) const)(&LayerDecorator_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( LayerDecorator_wrapper::* )( ) )(&LayerDecorator_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( LayerDecorator_wrapper::* )( ) const)(&LayerDecorator_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -292,6 +339,10 @@ void register_LayerDecorator_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( LayerDecorator_wrapper::* )( ) )(&LayerDecorator_wrapper::default_setParametersAreChanged) ); + , (void ( LayerDecorator_wrapper::* )( ) )(&LayerDecorator_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( LayerDecorator_wrapper::* )( ) const)(&LayerDecorator_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/LayerRoughness.pypp.cpp b/Core/PythonAPI/src/LayerRoughness.pypp.cpp index fed2e5e39b1e7cc5616ee9d2797f2482e578eb8b..424a6277539c37a7208ca5bce8a9e97d8314ed7e 100644 --- a/Core/PythonAPI/src/LayerRoughness.pypp.cpp +++ b/Core/PythonAPI/src/LayerRoughness.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -75,11 +76,16 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > { } - LayerRoughness_wrapper(::LayerRoughness const & other ) - : LayerRoughness( boost::ref(other) ) - , bp::wrapper< LayerRoughness >(){ - // copy constructor + virtual ::LayerRoughness * clone( ) const { + if( bp::override func_clone = this->get_override( "clone" ) ) + return func_clone( ); + else{ + return this->LayerRoughness::clone( ); + } + } + ::LayerRoughness * default_clone( ) const { + return LayerRoughness::clone( ); } virtual bool areParametersChanged( ) { @@ -94,18 +100,6 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > { return IParameterized::areParametersChanged( ); } - virtual ::ISample * clone( ) const { - if( bp::override func_clone = this->get_override( "clone" ) ) - return func_clone( ); - else{ - return this->ISample::clone( ); - } - } - - ::ISample * default_clone( ) const { - return ISample::clone( ); - } - virtual ::ParameterPool * createParameterTree( ) const { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); @@ -158,149 +152,55 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > { void register_LayerRoughness_class(){ - { //::LayerRoughness - typedef bp::class_< LayerRoughness_wrapper > LayerRoughness_exposer_t; - LayerRoughness_exposer_t LayerRoughness_exposer = LayerRoughness_exposer_t( "LayerRoughness", bp::init< >() ); - bp::scope LayerRoughness_scope( LayerRoughness_exposer ); - LayerRoughness_exposer.def( bp::init< double, double, double >(( bp::arg("sigma"), bp::arg("hurstParameter"), bp::arg("latteralCorrLength") )) ); - LayerRoughness_exposer.def( bp::init< LayerRoughness const & >(( bp::arg("other") )) ); - { //::LayerRoughness::getHurstParameter - - typedef double ( ::LayerRoughness::*getHurstParameter_function_type )( ) const; - - LayerRoughness_exposer.def( - "getHurstParameter" - , getHurstParameter_function_type( &::LayerRoughness::getHurstParameter ) ); - - } - { //::LayerRoughness::getLatteralCorrLength - - typedef double ( ::LayerRoughness::*getLatteralCorrLength_function_type )( ) const; - - LayerRoughness_exposer.def( - "getLatteralCorrLength" - , getLatteralCorrLength_function_type( &::LayerRoughness::getLatteralCorrLength ) ); - - } - { //::LayerRoughness::getSigma - - typedef double ( ::LayerRoughness::*getSigma_function_type )( ) const; - - LayerRoughness_exposer.def( - "getSigma" - , getSigma_function_type( &::LayerRoughness::getSigma ) ); - - } - { //::LayerRoughness::operator= - - typedef ::LayerRoughness & ( ::LayerRoughness::*assign_function_type )( ::LayerRoughness const & ) ; - - LayerRoughness_exposer.def( - "assign" - , assign_function_type( &::LayerRoughness::operator= ) - , ( bp::arg("other") ) - , bp::return_self< >() ); - - } - { //::LayerRoughness::setHurstParameter - - typedef void ( ::LayerRoughness::*setHurstParameter_function_type )( double ) ; - - LayerRoughness_exposer.def( - "setHurstParameter" - , setHurstParameter_function_type( &::LayerRoughness::setHurstParameter ) - , ( bp::arg("hurstParameter") ) ); - - } - { //::LayerRoughness::setLatteralCorrLength - - typedef void ( ::LayerRoughness::*setLatteralCorrLength_function_type )( double ) ; - - LayerRoughness_exposer.def( - "setLatteralCorrLength" - , setLatteralCorrLength_function_type( &::LayerRoughness::setLatteralCorrLength ) - , ( bp::arg("latteralCorrLength") ) ); - - } - { //::LayerRoughness::setSigma - - typedef void ( ::LayerRoughness::*setSigma_function_type )( double ) ; - - LayerRoughness_exposer.def( - "setSigma" - , setSigma_function_type( &::LayerRoughness::setSigma ) - , ( bp::arg("sigma") ) ); - - } - { //::IParameterized::areParametersChanged - - typedef bool ( ::IParameterized::*areParametersChanged_function_type )( ) ; - typedef bool ( LayerRoughness_wrapper::*default_areParametersChanged_function_type )( ) ; - - LayerRoughness_exposer.def( - "areParametersChanged" - , areParametersChanged_function_type(&::IParameterized::areParametersChanged) - , default_areParametersChanged_function_type(&LayerRoughness_wrapper::default_areParametersChanged) ); - - } - { //::ISample::clone - - typedef ::ISample * ( ::ISample::*clone_function_type )( ) const; - typedef ::ISample * ( LayerRoughness_wrapper::*default_clone_function_type )( ) const; - - LayerRoughness_exposer.def( - "clone" - , clone_function_type(&::ISample::clone) - , default_clone_function_type(&LayerRoughness_wrapper::default_clone) - , bp::return_value_policy< bp::manage_new_object >() ); - - } - { //::IParameterized::createParameterTree - - typedef ::ParameterPool * ( ::IParameterized::*createParameterTree_function_type )( ) const; - typedef ::ParameterPool * ( LayerRoughness_wrapper::*default_createParameterTree_function_type )( ) const; - - LayerRoughness_exposer.def( - "createParameterTree" - , createParameterTree_function_type(&::IParameterized::createParameterTree) - , default_createParameterTree_function_type(&LayerRoughness_wrapper::default_createParameterTree) - , bp::return_value_policy< bp::manage_new_object >() ); - - } - { //::IParameterized::printParameters - - typedef void ( ::IParameterized::*printParameters_function_type )( ) const; - typedef void ( LayerRoughness_wrapper::*default_printParameters_function_type )( ) const; - - LayerRoughness_exposer.def( - "printParameters" - , printParameters_function_type(&::IParameterized::printParameters) - , default_printParameters_function_type(&LayerRoughness_wrapper::default_printParameters) ); - - } - { //::ISample::print_structure - - typedef void ( ::ISample::*print_structure_function_type )( ) ; - typedef void ( LayerRoughness_wrapper::*default_print_structure_function_type )( ) ; - - LayerRoughness_exposer.def( - "print_structure" - , print_structure_function_type(&::ISample::print_structure) - , default_print_structure_function_type(&LayerRoughness_wrapper::default_print_structure) ); - - } - { //::IParameterized::setParametersAreChanged - - typedef void ( ::IParameterized::*setParametersAreChanged_function_type )( ) ; - typedef void ( LayerRoughness_wrapper::*default_setParametersAreChanged_function_type )( ) ; - - LayerRoughness_exposer.def( - "setParametersAreChanged" - , setParametersAreChanged_function_type(&::IParameterized::setParametersAreChanged) - , default_setParametersAreChanged_function_type(&LayerRoughness_wrapper::default_setParametersAreChanged) ); - - } - LayerRoughness_exposer.def( bp::self_ns::str( bp::self ) ); - } + bp::class_< LayerRoughness_wrapper, boost::noncopyable >( "LayerRoughness", bp::init< >() ) + .def( bp::init< double, double, double >(( bp::arg("sigma"), bp::arg("hurstParameter"), bp::arg("latteralCorrLength") )) ) + .def( + "clone" + , (::LayerRoughness * ( ::LayerRoughness::* )( ) const)(&::LayerRoughness::clone) + , (::LayerRoughness * ( LayerRoughness_wrapper::* )( ) const)(&LayerRoughness_wrapper::default_clone) + , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getHurstParameter" + , (double ( ::LayerRoughness::* )( ) const)( &::LayerRoughness::getHurstParameter ) ) + .def( + "getLatteralCorrLength" + , (double ( ::LayerRoughness::* )( ) const)( &::LayerRoughness::getLatteralCorrLength ) ) + .def( + "getSigma" + , (double ( ::LayerRoughness::* )( ) const)( &::LayerRoughness::getSigma ) ) + .def( + "setHurstParameter" + , (void ( ::LayerRoughness::* )( double ) )( &::LayerRoughness::setHurstParameter ) + , ( bp::arg("hurstParameter") ) ) + .def( + "setLatteralCorrLength" + , (void ( ::LayerRoughness::* )( double ) )( &::LayerRoughness::setLatteralCorrLength ) + , ( bp::arg("latteralCorrLength") ) ) + .def( + "setSigma" + , (void ( ::LayerRoughness::* )( double ) )( &::LayerRoughness::setSigma ) + , ( bp::arg("sigma") ) ) + .def( + "areParametersChanged" + , (bool ( ::IParameterized::* )( ) )(&::IParameterized::areParametersChanged) + , (bool ( LayerRoughness_wrapper::* )( ) )(&LayerRoughness_wrapper::default_areParametersChanged) ) + .def( + "createParameterTree" + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) + , (::ParameterPool * ( LayerRoughness_wrapper::* )( ) const)(&LayerRoughness_wrapper::default_createParameterTree) + , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "printParameters" + , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) + , (void ( LayerRoughness_wrapper::* )( ) const)(&LayerRoughness_wrapper::default_printParameters) ) + .def( + "print_structure" + , (void ( ::ISample::* )( ) )(&::ISample::print_structure) + , (void ( LayerRoughness_wrapper::* )( ) )(&LayerRoughness_wrapper::default_print_structure) ) + .def( + "setParametersAreChanged" + , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) + , (void ( LayerRoughness_wrapper::* )( ) )(&LayerRoughness_wrapper::default_setParametersAreChanged) ) + .def( bp::self_ns::str( bp::self ) ); } diff --git a/Core/PythonAPI/src/MaterialManager.pypp.cpp b/Core/PythonAPI/src/MaterialManager.pypp.cpp index 68199f0132cbe98628a075ab7a06df9e1f472f2d..a50996f69e2b9ef94250baaffdc0054ad39da165 100644 --- a/Core/PythonAPI/src/MaterialManager.pypp.cpp +++ b/Core/PythonAPI/src/MaterialManager.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -64,7 +65,7 @@ void register_MaterialManager_class(){ bp::class_< MaterialManager, bp::bases< ISingleton< MaterialManager > >, boost::noncopyable >( "MaterialManager", bp::no_init ) .def( "addHomogeneousMaterial" - , (::IMaterial const * ( ::MaterialManager::* )( ::std::string const &,::complex_t ) )( &::MaterialManager::addHomogeneousMaterial ) + , (::IMaterial const * ( ::MaterialManager::* )( ::std::string const &,::complex_t const & ) )( &::MaterialManager::addHomogeneousMaterial ) , ( bp::arg("name"), bp::arg("refractive_index") ) , bp::return_value_policy< bp::reference_existing_object >() ) .def( diff --git a/Core/PythonAPI/src/ISingleton_less__MaterialManager__greater_.pypp.cpp b/Core/PythonAPI/src/MaterialManagerSingleton_t.pypp.cpp similarity index 91% rename from Core/PythonAPI/src/ISingleton_less__MaterialManager__greater_.pypp.cpp rename to Core/PythonAPI/src/MaterialManagerSingleton_t.pypp.cpp index bb97ddda15eb95cbb55a7460f884e9f636f2b024..0c0ab97f6cf647726f37c40b874431ad737de994 100644 --- a/Core/PythonAPI/src/ISingleton_less__MaterialManager__greater_.pypp.cpp +++ b/Core/PythonAPI/src/MaterialManagerSingleton_t.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -55,13 +56,13 @@ GCC_DIAG_ON(missing-field-initializers); #include "Transform3D.h" #include "Units.h" #include "Types.h" -#include "ISingleton_less__MaterialManager__greater_.pypp.h" +#include "MaterialManagerSingleton_t.pypp.h" namespace bp = boost::python; -void register_ISingleton_less__MaterialManager__greater__class(){ +void register_MaterialManagerSingleton_t_class(){ - bp::class_< ISingleton< MaterialManager >, boost::noncopyable >( "ISingleton_less__MaterialManager__greater_", bp::no_init ) + bp::class_< ISingleton< MaterialManager >, boost::noncopyable >( "MaterialManagerSingleton_t", bp::no_init ) .def( "instance" , (::MaterialManager & (*)( ))( &::ISingleton< MaterialManager >::instance ) diff --git a/Core/PythonAPI/src/MesoCrystal.pypp.cpp b/Core/PythonAPI/src/MesoCrystal.pypp.cpp index b026ac116e12b218d0fabe581732274a1066f79a..1a85c418b2236e82940fc519b68a74b5f8250f96 100644 --- a/Core/PythonAPI/src/MesoCrystal.pypp.cpp +++ b/Core/PythonAPI/src/MesoCrystal.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -104,6 +105,30 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual ::complex_t const getRefractiveIndex( ) const { if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) ) return func_getRefractiveIndex( ); @@ -176,6 +201,18 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_MesoCrystal_class(){ @@ -195,6 +232,16 @@ void register_MesoCrystal_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( MesoCrystal_wrapper::* )( ) const)(&MesoCrystal_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( MesoCrystal_wrapper::* )( ) )(&MesoCrystal_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( MesoCrystal_wrapper::* )( ) const)(&MesoCrystal_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "getRefractiveIndex" , (::complex_t const ( ::Particle::* )( ) const)(&::Particle::getRefractiveIndex) @@ -219,6 +266,10 @@ void register_MesoCrystal_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( MesoCrystal_wrapper::* )( ) )(&MesoCrystal_wrapper::default_setParametersAreChanged) ); + , (void ( MesoCrystal_wrapper::* )( ) )(&MesoCrystal_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( MesoCrystal_wrapper::* )( ) const)(&MesoCrystal_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/MultiLayer.pypp.cpp b/Core/PythonAPI/src/MultiLayer.pypp.cpp index 3f2bcabbb77b20e8bf70e9c82604699965de29ad..1289a32a4d7299dabdf8c7fc775264515e1f5ba7 100644 --- a/Core/PythonAPI/src/MultiLayer.pypp.cpp +++ b/Core/PythonAPI/src/MultiLayer.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -92,6 +93,30 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -128,6 +153,18 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_MultiLayer_class(){ @@ -150,6 +187,16 @@ void register_MultiLayer_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( MultiLayer_wrapper::* )( ) const)(&MultiLayer_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( MultiLayer_wrapper::* )( ) )(&MultiLayer_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( MultiLayer_wrapper::* )( ) const)(&MultiLayer_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -162,6 +209,10 @@ void register_MultiLayer_class(){ "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) , (void ( MultiLayer_wrapper::* )( ) )(&MultiLayer_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( MultiLayer_wrapper::* )( ) const)(&MultiLayer_wrapper::default_size) ) .def( bp::self_ns::str( bp::self ) ); } diff --git a/Core/PythonAPI/src/OpticalFresnel.pypp.cpp b/Core/PythonAPI/src/OpticalFresnel.pypp.cpp index 6decc83e8a64212f317d1c51e458cff7204d9439..2deeaf5c951b2e3e82c4f9b75fa6f284b2bf1e33 100644 --- a/Core/PythonAPI/src/OpticalFresnel.pypp.cpp +++ b/Core/PythonAPI/src/OpticalFresnel.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -62,7 +63,7 @@ namespace bp = boost::python; void register_OpticalFresnel_class(){ { //::OpticalFresnel - typedef bp::class_< OpticalFresnel > OpticalFresnel_exposer_t; + typedef bp::class_< OpticalFresnel, boost::noncopyable > OpticalFresnel_exposer_t; OpticalFresnel_exposer_t OpticalFresnel_exposer = OpticalFresnel_exposer_t( "OpticalFresnel", bp::init< >() ); bp::scope OpticalFresnel_scope( OpticalFresnel_exposer ); bp::class_< OpticalFresnel::FresnelCoeff >( "FresnelCoeff", bp::init< >() ) @@ -98,7 +99,7 @@ void register_OpticalFresnel_class(){ , (::size_t ( ::OpticalFresnel::MultiLayerCoeff::* )( ) const)( &::OpticalFresnel::MultiLayerCoeff::size ) ); { //::OpticalFresnel::execute - typedef int ( ::OpticalFresnel::*execute_function_type )( ::MultiLayer const &,::kvector_t const &,::OpticalFresnel::MultiLayerCoeff & ) ; + typedef void ( ::OpticalFresnel::*execute_function_type )( ::MultiLayer const &,::kvector_t const &,::OpticalFresnel::MultiLayerCoeff & ) ; OpticalFresnel_exposer.def( "execute" diff --git a/Core/PythonAPI/src/ParameterPool.pypp.cpp b/Core/PythonAPI/src/ParameterPool.pypp.cpp index 65f7be5d4a87ef16cb7702ea14509432c7345a92..6555eeb27a5086fb250e48f9ddb68061af83c843 100644 --- a/Core/PythonAPI/src/ParameterPool.pypp.cpp +++ b/Core/PythonAPI/src/ParameterPool.pypp.cpp @@ -21,6 +21,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -60,14 +61,36 @@ GCC_DIAG_ON(missing-field-initializers); namespace bp = boost::python; -static boost::python::object registerParameter_42aac450584ec1a35a1b3a450dfcae38( ::ParameterPool & inst, ::std::string const & name, unsigned int parpointer ){ - bool result = inst.registerParameter(name, reinterpret_cast< double * >( parpointer )); - return bp::object( result ); -} +struct ParameterPool_wrapper : ParameterPool, bp::wrapper< ParameterPool > { + + ParameterPool_wrapper( ) + : ParameterPool( ) + , bp::wrapper< ParameterPool >(){ + // null constructor + + } + + virtual ::ParameterPool * clone( ) const { + if( bp::override func_clone = this->get_override( "clone" ) ) + return func_clone( ); + else{ + return this->ParameterPool::clone( ); + } + } + + ::ParameterPool * default_clone( ) const { + return ParameterPool::clone( ); + } + + static void registerParameter( ::ParameterPool & inst, ::std::string const & name, unsigned int parpointer ){ + inst.registerParameter(name, reinterpret_cast< double * >( parpointer )); + } + +}; void register_ParameterPool_class(){ - bp::class_< ParameterPool, boost::noncopyable >( "ParameterPool", bp::init< >() ) + bp::class_< ParameterPool_wrapper, bp::bases< ICloneable >, boost::noncopyable >( "ParameterPool", bp::init< >() ) .def( "addParameter" , (bool ( ::ParameterPool::* )( ::std::string const &,::RealParameterWrapper ) )( &::ParameterPool::addParameter ) @@ -77,11 +100,12 @@ void register_ParameterPool_class(){ , (void ( ::ParameterPool::* )( ) )( &::ParameterPool::clear ) ) .def( "clone" - , (::ParameterPool * ( ::ParameterPool::* )( ) )( &::ParameterPool::clone ) + , (::ParameterPool * ( ::ParameterPool::* )( ) const)(&::ParameterPool::clone) + , (::ParameterPool * ( ParameterPool_wrapper::* )( ) const)(&ParameterPool_wrapper::default_clone) , bp::return_value_policy< bp::manage_new_object >() ) .def( "cloneWithPrefix" - , (::ParameterPool * ( ::ParameterPool::* )( ::std::string const & ) )( &::ParameterPool::cloneWithPrefix ) + , (::ParameterPool * ( ::ParameterPool::* )( ::std::string const & ) const)( &::ParameterPool::cloneWithPrefix ) , ( bp::arg("prefix") ) , bp::return_value_policy< bp::reference_existing_object >() ) .def( @@ -90,7 +114,7 @@ void register_ParameterPool_class(){ , ( bp::arg("name") ) ) .def( "registerParameter" - , (boost::python::object (*)( ::ParameterPool &,::std::string const &,unsigned int ))( ®isterParameter_42aac450584ec1a35a1b3a450dfcae38 ) + , (void (*)( ::ParameterPool &,::std::string const &,unsigned int ))( &ParameterPool_wrapper::registerParameter ) , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) ) .def( "setMatchedParametersValue" diff --git a/Core/PythonAPI/src/Particle.pypp.cpp b/Core/PythonAPI/src/Particle.pypp.cpp index 35aa3c6cdc089a138248242a21f631c1eb9e7280..c74732543ffec65a26a8fc0d9cb8d5af8d3d6b70 100644 --- a/Core/PythonAPI/src/Particle.pypp.cpp +++ b/Core/PythonAPI/src/Particle.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,8 +62,8 @@ namespace bp = boost::python; struct Particle_wrapper : Particle, bp::wrapper< Particle > { - Particle_wrapper(::complex_t refractive_index, ::IFormFactor const & p_form_factor ) - : Particle( refractive_index, boost::ref(p_form_factor) ) + Particle_wrapper(::complex_t const & refractive_index, ::IFormFactor const & p_form_factor ) + : Particle( boost::ref(refractive_index), boost::ref(p_form_factor) ) , bp::wrapper< Particle >(){ // constructor @@ -164,6 +165,30 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -200,11 +225,23 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_Particle_class(){ - bp::class_< Particle_wrapper, bp::bases< ICompositeSample >, boost::noncopyable >( "Particle", bp::init< complex_t, IFormFactor const & >(( bp::arg("refractive_index"), bp::arg("p_form_factor") )) ) + bp::class_< Particle_wrapper, bp::bases< ICompositeSample >, boost::noncopyable >( "Particle", bp::init< complex_t const &, IFormFactor const & >(( bp::arg("refractive_index"), bp::arg("p_form_factor") )) ) .def( "clone" , (::Particle * ( ::Particle::* )( ) const)(&::Particle::clone) @@ -242,6 +279,16 @@ void register_Particle_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( Particle_wrapper::* )( ) const)(&Particle_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( Particle_wrapper::* )( ) )(&Particle_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( Particle_wrapper::* )( ) const)(&Particle_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -253,6 +300,10 @@ void register_Particle_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( Particle_wrapper::* )( ) )(&Particle_wrapper::default_setParametersAreChanged) ); + , (void ( Particle_wrapper::* )( ) )(&Particle_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( Particle_wrapper::* )( ) const)(&Particle_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp index 6061e5a8bdc30791babda92caaf027760525508e..747f58a166ab2f17688dda2f4e9f6808f6e3f0ce 100644 --- a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp +++ b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -104,6 +105,30 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -140,6 +165,18 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_ParticleDecoration_class(){ @@ -199,6 +236,16 @@ void register_ParticleDecoration_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( ParticleDecoration_wrapper::* )( ) const)(&ParticleDecoration_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( ParticleDecoration_wrapper::* )( ) )(&ParticleDecoration_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( ParticleDecoration_wrapper::* )( ) const)(&ParticleDecoration_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -210,6 +257,10 @@ void register_ParticleDecoration_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( ParticleDecoration_wrapper::* )( ) )(&ParticleDecoration_wrapper::default_setParametersAreChanged) ); + , (void ( ParticleDecoration_wrapper::* )( ) )(&ParticleDecoration_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( ParticleDecoration_wrapper::* )( ) const)(&ParticleDecoration_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/ParticleInfo.pypp.cpp b/Core/PythonAPI/src/ParticleInfo.pypp.cpp index 9dcbeabf39bf04b40c42cb3ecaa88aee4b272cdd..a1ead3ad7e07162a4ad6069c60b4dc26d5881d14 100644 --- a/Core/PythonAPI/src/ParticleInfo.pypp.cpp +++ b/Core/PythonAPI/src/ParticleInfo.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -97,6 +98,30 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > { return IParameterized::createParameterTree( ); } + virtual ::ICompositeSample * getCompositeSample( ) { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample * default_getCompositeSample( ) { + return ICompositeSample::getCompositeSample( ); + } + + virtual ::ICompositeSample const * getCompositeSample( ) const { + if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) + return func_getCompositeSample( ); + else{ + return this->ICompositeSample::getCompositeSample( ); + } + } + + ::ICompositeSample const * default_getCompositeSample( ) const { + return ICompositeSample::getCompositeSample( ); + } + virtual void printParameters( ) const { if( bp::override func_printParameters = this->get_override( "printParameters" ) ) func_printParameters( ); @@ -133,6 +158,18 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > { IParameterized::setParametersAreChanged( ); } + virtual ::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ICompositeSample::size( ); + } + } + + ::size_t default_size( ) const { + return ICompositeSample::size( ); + } + }; void register_ParticleInfo_class(){ @@ -178,6 +215,16 @@ void register_ParticleInfo_class(){ , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( ParticleInfo_wrapper::* )( ) const)(&ParticleInfo_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample * ( ::ICompositeSample::* )( ) )(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample * ( ParticleInfo_wrapper::* )( ) )(&ParticleInfo_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "getCompositeSample" + , (::ICompositeSample const * ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::getCompositeSample) + , (::ICompositeSample const * ( ParticleInfo_wrapper::* )( ) const)(&ParticleInfo_wrapper::default_getCompositeSample) + , bp::return_value_policy< bp::reference_existing_object >() ) .def( "printParameters" , (void ( ::IParameterized::* )( ) const)(&::IParameterized::printParameters) @@ -189,6 +236,10 @@ void register_ParticleInfo_class(){ .def( "setParametersAreChanged" , (void ( ::IParameterized::* )( ) )(&::IParameterized::setParametersAreChanged) - , (void ( ParticleInfo_wrapper::* )( ) )(&ParticleInfo_wrapper::default_setParametersAreChanged) ); + , (void ( ParticleInfo_wrapper::* )( ) )(&ParticleInfo_wrapper::default_setParametersAreChanged) ) + .def( + "size" + , (::size_t ( ::ICompositeSample::* )( ) const)(&::ICompositeSample::size) + , (::size_t ( ParticleInfo_wrapper::* )( ) const)(&ParticleInfo_wrapper::default_size) ); } diff --git a/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp b/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp index 21727cd2008fa1c15462c53f6c1dc52693ef8a86..03ef3c6a8c6edc3fafa76b02b59b4ececc1077fd 100644 --- a/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp +++ b/Core/PythonAPI/src/PythonInterface_free_functions.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -61,6 +62,17 @@ namespace bp = boost::python; void register_free_functions(){ + { //::Geometry::CrossProduct + + typedef ::Geometry::BasicVector3D< std::complex< double > > ( *CrossProduct_function_type )( ::Geometry::BasicVector3D< std::complex< double > > const &,::Geometry::BasicVector3D< std::complex< double > > const & ); + + bp::def( + "CrossProduct" + , CrossProduct_function_type( &::Geometry::CrossProduct ) + , ( bp::arg("vectorLeft"), bp::arg("vectorRight") ) ); + + } + { //::Geometry::CrossProduct typedef ::Geometry::BasicVector3D< double > ( *CrossProduct_function_type )( ::Geometry::BasicVector3D< double > const &,::Geometry::BasicVector3D< double > const & ); @@ -72,6 +84,17 @@ void register_free_functions(){ } + { //::Geometry::DotProduct + + typedef ::std::complex< double > ( *DotProduct_function_type )( ::Geometry::BasicVector3D< std::complex< double > > const &,::Geometry::BasicVector3D< std::complex< double > > const & ); + + bp::def( + "DotProduct" + , DotProduct_function_type( &::Geometry::DotProduct ) + , ( bp::arg("left"), bp::arg("right") ) ); + + } + { //::Geometry::DotProduct typedef double ( *DotProduct_function_type )( ::Geometry::BasicVector3D< double > const &,::Geometry::BasicVector3D< double > const & ); diff --git a/Core/PythonAPI/src/PythonInterface_global_variables.pypp.cpp b/Core/PythonAPI/src/PythonInterface_global_variables.pypp.cpp index 61773b8355b220ef466b7fc0911dacb9d63677a7..933abd09fc07583dde1c18231c98026a2d659c3c 100644 --- a/Core/PythonAPI/src/PythonInterface_global_variables.pypp.cpp +++ b/Core/PythonAPI/src/PythonInterface_global_variables.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp index 0c2cdb2aa2d80bd2a092f730f312f60720676532..2a21fb1be7753e7b80ab1452a3ff17ffe902bb30 100644 --- a/Core/PythonAPI/src/PythonModule.cpp +++ b/Core/PythonAPI/src/PythonModule.cpp @@ -4,6 +4,7 @@ // the order of 3 guys above is important #include "Crystal.pypp.h" +#include "cvector_t.pypp.h" #include "DiffuseParticleInfo.pypp.h" #include "Experiment.pypp.h" #include "FormFactorCrystal.pypp.h" @@ -17,6 +18,7 @@ #include "FormFactorSphereGaussianRadius.pypp.h" #include "GISASExperiment.pypp.h" #include "HomogeneousMaterial.pypp.h" +#include "ICloneable.pypp.h" #include "IClusteredParticles.pypp.h" #include "ICompositeSample.pypp.h" #include "IFormFactor.pypp.h" @@ -24,19 +26,20 @@ #include "IFormFactorDecorator.pypp.h" #include "IInterferenceFunction.pypp.h" #include "IMaterial.pypp.h" +#include "InterferenceFunction1DParaCrystal.pypp.h" +#include "InterferenceFunctionNone.pypp.h" #include "IParameterized.pypp.h" #include "ISample.pypp.h" #include "ISampleBuilder.pypp.h" #include "ISelectionRule.pypp.h" -#include "ISingleton_less__MaterialManager__greater_.pypp.h" -#include "InterferenceFunction1DParaCrystal.pypp.h" -#include "InterferenceFunctionNone.pypp.h" +#include "kvector_t.pypp.h" #include "Lattice.pypp.h" #include "LatticeBasis.pypp.h" #include "Layer.pypp.h" #include "LayerDecorator.pypp.h" #include "LayerRoughness.pypp.h" #include "MaterialManager.pypp.h" +#include "MaterialManagerSingleton_t.pypp.h" #include "MesoCrystal.pypp.h" #include "MultiLayer.pypp.h" #include "OpticalFresnel.pypp.h" @@ -65,11 +68,10 @@ #include "TranslateX3D.pypp.h" #include "TranslateY3D.pypp.h" #include "TranslateZ3D.pypp.h" -#include "kvector_t.pypp.h" #include "vdouble1d_t.pypp.h" +#include "vector_DiffuseParticleInfoPtr_t.pypp.h" +#include "vector_IFormFactorPtr_t.pypp.h" #include "vector_kvector_t.pypp.h" -#include "vector_less__DiffuseParticleInfo_ptr___greater_.pypp.h" -#include "vector_less__IFormFactor_ptr___greater_.pypp.h" #include "__call_policies.pypp.hpp" #include "PythonListConverter.h" @@ -77,9 +79,10 @@ BOOST_PYTHON_MODULE(libScattCore){ register_vdouble1d_t_class(); - register_vector_less__IFormFactor_ptr___greater__class(); + register_vector_IFormFactorPtr_t_class(); register_vector_kvector_t_class(); - register_vector_less__DiffuseParticleInfo_ptr___greater__class(); + register_vector_DiffuseParticleInfoPtr_t_class(); + register_ICloneable_class(); register_IParameterized_class(); register_ISample_class(); register_ICompositeSample_class(); @@ -103,6 +106,7 @@ BOOST_PYTHON_MODULE(libScattCore){ register_FormFactorSphereGaussianRadius_class(); register_GISASExperiment_class(); register_kvector_t_class(); + register_cvector_t_class(); register_Reflect3D_class(); register_ReflectX3D_class(); register_ReflectY3D_class(); @@ -124,7 +128,7 @@ BOOST_PYTHON_MODULE(libScattCore){ register_IInterferenceFunction_class(); register_ISampleBuilder_class(); register_ISelectionRule_class(); - register_ISingleton_less__MaterialManager__greater__class(); + register_MaterialManagerSingleton_t_class(); register_InterferenceFunction1DParaCrystal_class(); register_InterferenceFunctionNone_class(); register_Lattice_class(); diff --git a/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp b/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp index 2b80c47bd2c26978b548b188d6aec77c79864908..8bf601d0cf7ae1587942cb7dd9d7f4237617c5aa 100644 --- a/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp +++ b/Core/PythonAPI/src/RealParameterWrapper.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/Reflect3D.pypp.cpp b/Core/PythonAPI/src/Reflect3D.pypp.cpp index 25500f04840e9994ff6761f529c547cce2efd934..2f75f33ef5b98f2ca96ce4f9130fe41b3a3108dd 100644 --- a/Core/PythonAPI/src/Reflect3D.pypp.cpp +++ b/Core/PythonAPI/src/Reflect3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/ReflectX3D.pypp.cpp b/Core/PythonAPI/src/ReflectX3D.pypp.cpp index b1cee585502a795830e4fb18580662c34df5248f..f4ee5029189b86f3c437928adb9eea5e5e5fa03b 100644 --- a/Core/PythonAPI/src/ReflectX3D.pypp.cpp +++ b/Core/PythonAPI/src/ReflectX3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/ReflectY3D.pypp.cpp b/Core/PythonAPI/src/ReflectY3D.pypp.cpp index 59dabafd9f3cacfeb2eafcd7a953ecf160eb81d7..8dc4ca141abc93391c06255c4b0490805d638ab4 100644 --- a/Core/PythonAPI/src/ReflectY3D.pypp.cpp +++ b/Core/PythonAPI/src/ReflectY3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/ReflectZ3D.pypp.cpp b/Core/PythonAPI/src/ReflectZ3D.pypp.cpp index 22f6c432a15838f7cfc40ccd86e99469cbbbed36..fff7c48be7079444afcca04eee5811c6fe7652c3 100644 --- a/Core/PythonAPI/src/ReflectZ3D.pypp.cpp +++ b/Core/PythonAPI/src/ReflectZ3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/Rotate3D.pypp.cpp b/Core/PythonAPI/src/Rotate3D.pypp.cpp index fe6196924ad9334a932ed5cc916588ac2f3aa7d6..5c3ae8fb9cb110bb9e630574526af437b962b1bb 100644 --- a/Core/PythonAPI/src/Rotate3D.pypp.cpp +++ b/Core/PythonAPI/src/Rotate3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/RotateX3D.pypp.cpp b/Core/PythonAPI/src/RotateX3D.pypp.cpp index a6d46f4a39be2dbcc0424059958cb924a01fbc22..4c069c9c264dde284b443ca1a4286db3f1b516d0 100644 --- a/Core/PythonAPI/src/RotateX3D.pypp.cpp +++ b/Core/PythonAPI/src/RotateX3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/RotateY3D.pypp.cpp b/Core/PythonAPI/src/RotateY3D.pypp.cpp index b9a7515d8be0dff2ace1de842dcf4b4ebb19f8f5..a9957e057e33e63c4ed9cd507fa6532f04c41894 100644 --- a/Core/PythonAPI/src/RotateY3D.pypp.cpp +++ b/Core/PythonAPI/src/RotateY3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/RotateZ3D.pypp.cpp b/Core/PythonAPI/src/RotateZ3D.pypp.cpp index 6c3c9dbadc4fdf7e7aad4fb0c174ff4dc3a860a0..0013f74bfb192f3545e7def90bc3bd9f2b8e4be7 100644 --- a/Core/PythonAPI/src/RotateZ3D.pypp.cpp +++ b/Core/PythonAPI/src/RotateZ3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/Scale3D.pypp.cpp b/Core/PythonAPI/src/Scale3D.pypp.cpp index c61f5536e2db024283f0a761e50afaa0f2a59bf6..0b05add809c138d7cd46d5684522d3603bcccfd7 100644 --- a/Core/PythonAPI/src/Scale3D.pypp.cpp +++ b/Core/PythonAPI/src/Scale3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/ScaleX3D.pypp.cpp b/Core/PythonAPI/src/ScaleX3D.pypp.cpp index e6630941d449234f3d1a9616d3a447439cd8760f..f8617db6eb12ecee0449fc2e4399b45698a3c1c3 100644 --- a/Core/PythonAPI/src/ScaleX3D.pypp.cpp +++ b/Core/PythonAPI/src/ScaleX3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/ScaleY3D.pypp.cpp b/Core/PythonAPI/src/ScaleY3D.pypp.cpp index e3dd34ad6a39966b5ad41b20568ad404e3c9976a..7a4c14918503821928c0143382b8259ee12be131 100644 --- a/Core/PythonAPI/src/ScaleY3D.pypp.cpp +++ b/Core/PythonAPI/src/ScaleY3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/ScaleZ3D.pypp.cpp b/Core/PythonAPI/src/ScaleZ3D.pypp.cpp index 8cdfb36fe64210cc1a6aad139c16f1c00e799bd6..19786407aa9e0339aed3d125a5f3d7d51bb6676b 100644 --- a/Core/PythonAPI/src/ScaleZ3D.pypp.cpp +++ b/Core/PythonAPI/src/ScaleZ3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp b/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp index 6898273a53178403a91c46c57387fd0acc42127a..9844b5a887d37884a50257236c9dcf4c677d5537 100644 --- a/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp +++ b/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/Transform3D.pypp.cpp b/Core/PythonAPI/src/Transform3D.pypp.cpp index f5b1a740dd7978a6ed4b69cfb7f1ba9e9a2cb4fd..83cec4fdc833341737e13faaccf99c088c25d2ef 100644 --- a/Core/PythonAPI/src/Transform3D.pypp.cpp +++ b/Core/PythonAPI/src/Transform3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/Translate3D.pypp.cpp b/Core/PythonAPI/src/Translate3D.pypp.cpp index 181ba66e4110e9245fb52f43afd76cc2bd44d36f..551ad3f65238f16ea0c5d072ae3a6299da333be4 100644 --- a/Core/PythonAPI/src/Translate3D.pypp.cpp +++ b/Core/PythonAPI/src/Translate3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/TranslateX3D.pypp.cpp b/Core/PythonAPI/src/TranslateX3D.pypp.cpp index c12674edab2c3897ed213581e2f3e5854268642a..40d61a224754489a71b9ca9da679adbcb9a9191d 100644 --- a/Core/PythonAPI/src/TranslateX3D.pypp.cpp +++ b/Core/PythonAPI/src/TranslateX3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/TranslateY3D.pypp.cpp b/Core/PythonAPI/src/TranslateY3D.pypp.cpp index 076aacabea3880b8cdcd49c6667704f0bd0bda25..10b5808c4f356729aad55d54a90e61e291b49fb9 100644 --- a/Core/PythonAPI/src/TranslateY3D.pypp.cpp +++ b/Core/PythonAPI/src/TranslateY3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/TranslateZ3D.pypp.cpp b/Core/PythonAPI/src/TranslateZ3D.pypp.cpp index 799558ff164c68b8b730d276928047cb3ee2e92c..026246b4d852a07098b63c436c24d605ad71680d 100644 --- a/Core/PythonAPI/src/TranslateZ3D.pypp.cpp +++ b/Core/PythonAPI/src/TranslateZ3D.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/cvector_t.pypp.cpp b/Core/PythonAPI/src/cvector_t.pypp.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a0f5f36a74efb02eadc65c22fae148c7704cd986 --- /dev/null +++ b/Core/PythonAPI/src/cvector_t.pypp.cpp @@ -0,0 +1,264 @@ +// This file has been generated by Py++. + +#include "boost/python.hpp" +#include "BasicVector3D.h" +#include "PythonPlusplusHelper.h" +#include "Transform3D.h" +#include "Types.h" +#include "cvector_t.pypp.h" + +namespace bp = boost::python; + +void register_cvector_t_class(){ + + { //::Geometry::BasicVector3D< std::complex< double > > + typedef bp::class_< Geometry::BasicVector3D< std::complex< double > > > cvector_t_exposer_t; + cvector_t_exposer_t cvector_t_exposer = cvector_t_exposer_t( "cvector_t", bp::init< >() ); + bp::scope cvector_t_scope( cvector_t_exposer ); + bp::scope().attr("X") = (int)Geometry::BasicVector3D<std::complex<double> >::X; + bp::scope().attr("Y") = (int)Geometry::BasicVector3D<std::complex<double> >::Y; + bp::scope().attr("Z") = (int)Geometry::BasicVector3D<std::complex<double> >::Z; + bp::scope().attr("NUM_COORDINATES") = (int)Geometry::BasicVector3D<std::complex<double> >::NUM_COORDINATES; + bp::scope().attr("SIZE") = (int)Geometry::BasicVector3D<std::complex<double> >::SIZE; + cvector_t_exposer.def( bp::init< std::complex< double > const &, std::complex< double > const &, std::complex< double > const & >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) ); + { //::Geometry::BasicVector3D< std::complex< double > >::cross + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::Geometry::BasicVector3D< std::complex< double > > ( exported_class_t::*cross_function_type )( ::Geometry::BasicVector3D< std::complex< double > > const & ) const; + + cvector_t_exposer.def( + "cross" + , cross_function_type( &::Geometry::BasicVector3D< std::complex< double > >::cross ) + , ( bp::arg("v") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::dot + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*dot_function_type )( ::Geometry::BasicVector3D< std::complex< double > > const & ) const; + + cvector_t_exposer.def( + "dot" + , dot_function_type( &::Geometry::BasicVector3D< std::complex< double > >::dot ) + , ( bp::arg("v") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::getR + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*getR_function_type )( ) const; + + cvector_t_exposer.def( + "getR" + , getR_function_type( &::Geometry::BasicVector3D< std::complex< double > >::getR ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::mag + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*mag_function_type )( ) const; + + cvector_t_exposer.def( + "mag" + , mag_function_type( &::Geometry::BasicVector3D< std::complex< double > >::mag ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::mag2 + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*mag2_function_type )( ) const; + + cvector_t_exposer.def( + "mag2" + , mag2_function_type( &::Geometry::BasicVector3D< std::complex< double > >::mag2 ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::magxy + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*magxy_function_type )( ) const; + + cvector_t_exposer.def( + "magxy" + , magxy_function_type( &::Geometry::BasicVector3D< std::complex< double > >::magxy ) ); + + } + cvector_t_exposer.def( bp::self *= bp::other< double >() ); + cvector_t_exposer.def( bp::self += bp::self ); + cvector_t_exposer.def( bp::self -= bp::self ); + cvector_t_exposer.def( bp::self /= bp::other< double >() ); + { //::Geometry::BasicVector3D< std::complex< double > >::operator= + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::Geometry::BasicVector3D< std::complex< double > > & ( exported_class_t::*assign_function_type )( ::Geometry::BasicVector3D< std::complex< double > > const & ) ; + + cvector_t_exposer.def( + "assign" + , assign_function_type( &::Geometry::BasicVector3D< std::complex< double > >::operator= ) + , ( bp::arg("v") ) + , bp::return_self< >() ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::operator[] + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*__getitem___function_type )( int ) const; + + cvector_t_exposer.def( + "__getitem__" + , __getitem___function_type( &::Geometry::BasicVector3D< std::complex< double > >::operator[] ) + , ( bp::arg("i") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::operator[] + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > & ( exported_class_t::*__getitem___function_type )( int ) ; + + cvector_t_exposer.def( + "__getitem__" + , __getitem___function_type( &::Geometry::BasicVector3D< std::complex< double > >::operator[] ) + , ( bp::arg("i") ) + , bp::return_internal_reference< >() ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::r + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*r_function_type )( ) const; + + cvector_t_exposer.def( + "r" + , r_function_type( &::Geometry::BasicVector3D< std::complex< double > >::r ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::rho + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*rho_function_type )( ) const; + + cvector_t_exposer.def( + "rho" + , rho_function_type( &::Geometry::BasicVector3D< std::complex< double > >::rho ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::set + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef void ( exported_class_t::*set_function_type )( ::std::complex< double > const &,::std::complex< double > const &,::std::complex< double > const & ) ; + + cvector_t_exposer.def( + "set" + , set_function_type( &::Geometry::BasicVector3D< std::complex< double > >::set ) + , ( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::setLambdaAlphaPhi + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef void ( exported_class_t::*setLambdaAlphaPhi_function_type )( ::std::complex< double > const &,::std::complex< double > const &,::std::complex< double > const & ) ; + + cvector_t_exposer.def( + "setLambdaAlphaPhi" + , setLambdaAlphaPhi_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setLambdaAlphaPhi ) + , ( bp::arg("_lambda"), bp::arg("_alpha"), bp::arg("_phi") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::setX + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef void ( exported_class_t::*setX_function_type )( ::std::complex< double > const & ) ; + + cvector_t_exposer.def( + "setX" + , setX_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setX ) + , ( bp::arg("a") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::setXYZ + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef void ( exported_class_t::*setXYZ_function_type )( ::std::complex< double > const &,::std::complex< double > const &,::std::complex< double > const & ) ; + + cvector_t_exposer.def( + "setXYZ" + , setXYZ_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setXYZ ) + , ( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::setY + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef void ( exported_class_t::*setY_function_type )( ::std::complex< double > const & ) ; + + cvector_t_exposer.def( + "setY" + , setY_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setY ) + , ( bp::arg("a") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::setZ + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef void ( exported_class_t::*setZ_function_type )( ::std::complex< double > const & ) ; + + cvector_t_exposer.def( + "setZ" + , setZ_function_type( &::Geometry::BasicVector3D< std::complex< double > >::setZ ) + , ( bp::arg("a") ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::transform + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::Geometry::BasicVector3D< std::complex< double > > & ( exported_class_t::*transform_function_type )( ::Geometry::Transform3D const & ) ; + + cvector_t_exposer.def( + "transform" + , transform_function_type( &::Geometry::BasicVector3D< std::complex< double > >::transform ) + , ( bp::arg("m") ) + , bp::return_value_policy< bp::reference_existing_object >() ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::x + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*x_function_type )( ) const; + + cvector_t_exposer.def( + "x" + , x_function_type( &::Geometry::BasicVector3D< std::complex< double > >::x ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::y + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*y_function_type )( ) const; + + cvector_t_exposer.def( + "y" + , y_function_type( &::Geometry::BasicVector3D< std::complex< double > >::y ) ); + + } + { //::Geometry::BasicVector3D< std::complex< double > >::z + + typedef Geometry::BasicVector3D< std::complex< double > > exported_class_t; + typedef ::std::complex< double > ( exported_class_t::*z_function_type )( ) const; + + cvector_t_exposer.def( + "z" + , z_function_type( &::Geometry::BasicVector3D< std::complex< double > >::z ) ); + + } + cvector_t_exposer.def( bp::self != bp::self ); + cvector_t_exposer.def( bp::self * bp::self ); + cvector_t_exposer.def( bp::self + bp::self ); + cvector_t_exposer.def( +bp::self ); + cvector_t_exposer.def( bp::self - bp::self ); + cvector_t_exposer.def( -bp::self ); + cvector_t_exposer.def( bp::self / bp::other< std::complex< double > >() ); + cvector_t_exposer.def( bp::self_ns::str( bp::self ) ); + cvector_t_exposer.def( bp::self == bp::self ); + } + +} diff --git a/Core/PythonAPI/src/kvector_t.pypp.cpp b/Core/PythonAPI/src/kvector_t.pypp.cpp index 7d93e6575173f09eef53d06a4829b378229632d2..91913193e24dff838f86a34fd529dca5c96a4f49 100644 --- a/Core/PythonAPI/src/kvector_t.pypp.cpp +++ b/Core/PythonAPI/src/kvector_t.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -70,7 +71,7 @@ void register_kvector_t_class(){ bp::scope().attr("Z") = (int)Geometry::BasicVector3D<double>::Z; bp::scope().attr("NUM_COORDINATES") = (int)Geometry::BasicVector3D<double>::NUM_COORDINATES; bp::scope().attr("SIZE") = (int)Geometry::BasicVector3D<double>::SIZE; - kvector_t_exposer.def( bp::init< double, double, double >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) ); + kvector_t_exposer.def( bp::init< double const &, double const &, double const & >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) ); { //::Geometry::BasicVector3D< double >::angle typedef Geometry::BasicVector3D< double > exported_class_t; @@ -346,7 +347,7 @@ void register_kvector_t_class(){ { //::Geometry::BasicVector3D< double >::set typedef Geometry::BasicVector3D< double > exported_class_t; - typedef void ( exported_class_t::*set_function_type )( double,double,double ) ; + typedef void ( exported_class_t::*set_function_type )( double const &,double const &,double const & ) ; kvector_t_exposer.def( "set" @@ -357,12 +358,12 @@ void register_kvector_t_class(){ { //::Geometry::BasicVector3D< double >::setLambdaAlphaPhi typedef Geometry::BasicVector3D< double > exported_class_t; - typedef void ( exported_class_t::*setLambdaAlphaPhi_function_type )( double,double,double ) ; + typedef void ( exported_class_t::*setLambdaAlphaPhi_function_type )( double const &,double const &,double const & ) ; kvector_t_exposer.def( "setLambdaAlphaPhi" , setLambdaAlphaPhi_function_type( &::Geometry::BasicVector3D< double >::setLambdaAlphaPhi ) - , ( bp::arg("lambda"), bp::arg("alpha"), bp::arg("phi") ) ); + , ( bp::arg("_lambda"), bp::arg("_alpha"), bp::arg("_phi") ) ); } { //::Geometry::BasicVector3D< double >::setMag @@ -423,7 +424,7 @@ void register_kvector_t_class(){ { //::Geometry::BasicVector3D< double >::setX typedef Geometry::BasicVector3D< double > exported_class_t; - typedef void ( exported_class_t::*setX_function_type )( double ) ; + typedef void ( exported_class_t::*setX_function_type )( double const & ) ; kvector_t_exposer.def( "setX" @@ -434,7 +435,7 @@ void register_kvector_t_class(){ { //::Geometry::BasicVector3D< double >::setXYZ typedef Geometry::BasicVector3D< double > exported_class_t; - typedef void ( exported_class_t::*setXYZ_function_type )( double,double,double ) ; + typedef void ( exported_class_t::*setXYZ_function_type )( double const &,double const &,double const & ) ; kvector_t_exposer.def( "setXYZ" @@ -445,7 +446,7 @@ void register_kvector_t_class(){ { //::Geometry::BasicVector3D< double >::setY typedef Geometry::BasicVector3D< double > exported_class_t; - typedef void ( exported_class_t::*setY_function_type )( double ) ; + typedef void ( exported_class_t::*setY_function_type )( double const & ) ; kvector_t_exposer.def( "setY" @@ -456,7 +457,7 @@ void register_kvector_t_class(){ { //::Geometry::BasicVector3D< double >::setZ typedef Geometry::BasicVector3D< double > exported_class_t; - typedef void ( exported_class_t::*setZ_function_type )( double ) ; + typedef void ( exported_class_t::*setZ_function_type )( double const & ) ; kvector_t_exposer.def( "setZ" diff --git a/Core/PythonAPI/src/vdouble1d_t.pypp.cpp b/Core/PythonAPI/src/vdouble1d_t.pypp.cpp index 53db6be9d9fcefc86c116050c21ca9d72ea0c185..2129e40b66912179db99601ec37ba1a632b26955 100644 --- a/Core/PythonAPI/src/vdouble1d_t.pypp.cpp +++ b/Core/PythonAPI/src/vdouble1d_t.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Core/PythonAPI/src/vector_less__DiffuseParticleInfo_ptr___greater_.pypp.cpp b/Core/PythonAPI/src/vector_DiffuseParticleInfoPtr_t.pypp.cpp similarity index 72% rename from Core/PythonAPI/src/vector_less__DiffuseParticleInfo_ptr___greater_.pypp.cpp rename to Core/PythonAPI/src/vector_DiffuseParticleInfoPtr_t.pypp.cpp index f98f45f726aca4997214c9f459cad750be36b666..3842746b10c61971405da6169775667f38bf0c6d 100644 --- a/Core/PythonAPI/src/vector_less__DiffuseParticleInfo_ptr___greater_.pypp.cpp +++ b/Core/PythonAPI/src/vector_DiffuseParticleInfoPtr_t.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -55,17 +56,17 @@ GCC_DIAG_ON(missing-field-initializers); #include "Transform3D.h" #include "Units.h" #include "Types.h" -#include "vector_less__DiffuseParticleInfo_ptr___greater_.pypp.h" +#include "vector_DiffuseParticleInfoPtr_t.pypp.h" namespace bp = boost::python; -void register_vector_less__DiffuseParticleInfo_ptr___greater__class(){ +void register_vector_DiffuseParticleInfoPtr_t_class(){ { //::std::vector< DiffuseParticleInfo* > - typedef bp::class_< std::vector< DiffuseParticleInfo* > > vector_less__DiffuseParticleInfo_ptr___greater__exposer_t; - vector_less__DiffuseParticleInfo_ptr___greater__exposer_t vector_less__DiffuseParticleInfo_ptr___greater__exposer = vector_less__DiffuseParticleInfo_ptr___greater__exposer_t( "vector_less__DiffuseParticleInfo_ptr___greater_" ); - bp::scope vector_less__DiffuseParticleInfo_ptr___greater__scope( vector_less__DiffuseParticleInfo_ptr___greater__exposer ); - vector_less__DiffuseParticleInfo_ptr___greater__exposer.def( bp::vector_indexing_suite< ::std::vector< DiffuseParticleInfo* > >() ); + typedef bp::class_< std::vector< DiffuseParticleInfo* > > vector_DiffuseParticleInfoPtr_t_exposer_t; + vector_DiffuseParticleInfoPtr_t_exposer_t vector_DiffuseParticleInfoPtr_t_exposer = vector_DiffuseParticleInfoPtr_t_exposer_t( "vector_DiffuseParticleInfoPtr_t" ); + bp::scope vector_DiffuseParticleInfoPtr_t_scope( vector_DiffuseParticleInfoPtr_t_exposer ); + vector_DiffuseParticleInfoPtr_t_exposer.def( bp::vector_indexing_suite< ::std::vector< DiffuseParticleInfo* > >() ); } } diff --git a/Core/PythonAPI/src/vector_less__IFormFactor_ptr___greater_.pypp.cpp b/Core/PythonAPI/src/vector_IFormFactorPtr_t.pypp.cpp similarity index 75% rename from Core/PythonAPI/src/vector_less__IFormFactor_ptr___greater_.pypp.cpp rename to Core/PythonAPI/src/vector_IFormFactorPtr_t.pypp.cpp index 355e0497f58587b4c169e5e57cc0ff1a4ef380b1..8cf1b5f343cfdca1bf97ed68d279014c525a1212 100644 --- a/Core/PythonAPI/src/vector_less__IFormFactor_ptr___greater_.pypp.cpp +++ b/Core/PythonAPI/src/vector_IFormFactorPtr_t.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" @@ -55,17 +56,17 @@ GCC_DIAG_ON(missing-field-initializers); #include "Transform3D.h" #include "Units.h" #include "Types.h" -#include "vector_less__IFormFactor_ptr___greater_.pypp.h" +#include "vector_IFormFactorPtr_t.pypp.h" namespace bp = boost::python; -void register_vector_less__IFormFactor_ptr___greater__class(){ +void register_vector_IFormFactorPtr_t_class(){ { //::std::vector< IFormFactor* > - typedef bp::class_< std::vector< IFormFactor* > > vector_less__IFormFactor_ptr___greater__exposer_t; - vector_less__IFormFactor_ptr___greater__exposer_t vector_less__IFormFactor_ptr___greater__exposer = vector_less__IFormFactor_ptr___greater__exposer_t( "vector_less__IFormFactor_ptr___greater_" ); - bp::scope vector_less__IFormFactor_ptr___greater__scope( vector_less__IFormFactor_ptr___greater__exposer ); - vector_less__IFormFactor_ptr___greater__exposer.def( bp::vector_indexing_suite< ::std::vector< IFormFactor* > >() ); + typedef bp::class_< std::vector< IFormFactor* > > vector_IFormFactorPtr_t_exposer_t; + vector_IFormFactorPtr_t_exposer_t vector_IFormFactorPtr_t_exposer = vector_IFormFactorPtr_t_exposer_t( "vector_IFormFactorPtr_t" ); + bp::scope vector_IFormFactorPtr_t_scope( vector_IFormFactorPtr_t_exposer ); + vector_IFormFactorPtr_t_exposer.def( bp::vector_indexing_suite< ::std::vector< IFormFactor* > >() ); } } diff --git a/Core/PythonAPI/src/vector_kvector_t.pypp.cpp b/Core/PythonAPI/src/vector_kvector_t.pypp.cpp index 29f652ea080c36c75fe01ccbaba33c70e16b162e..f01b4d99fc2f6aa9c9813c8b4279bee11c67dab9 100644 --- a/Core/PythonAPI/src/vector_kvector_t.pypp.cpp +++ b/Core/PythonAPI/src/vector_kvector_t.pypp.cpp @@ -20,6 +20,7 @@ GCC_DIAG_ON(missing-field-initializers); #include "FormFactorSphereGaussianRadius.h" #include "GISASExperiment.h" #include "HomogeneousMaterial.h" +#include "ICloneable.h" #include "IClusteredParticles.h" #include "ICompositeSample.h" #include "IFormFactor.h" diff --git a/Macros/BoostPythonGenerator/codepatch.py b/Macros/BoostPythonGenerator/codepatch.py deleted file mode 100644 index e6fd3445e22acf5d96595b64ec6f0ad0c9ae9edc..0000000000000000000000000000000000000000 --- a/Macros/BoostPythonGenerator/codepatch.py +++ /dev/null @@ -1,41 +0,0 @@ -# patch py++ generated files to get rid from compilation warnings -# -# replace #include "boost/python.hpp" -# with -# include "Macros.h" -# GCC_DIAG_OFF(unused-parameter); -# GCC_DIAG_OFF(missing-field-initializers); -# include "boost/python.hpp" -# GCC_DIAG_ON(unused-parameter); -# GCC_DIAG_ON(missing-field-initializers); - -import os -import sys -import glob - - -OutputTempDir = "./output" -files =glob.glob(OutputTempDir+"/*.*"); -print files - - -for ff in files: - print ff - fin = file(ff,"r") - fout = file("tmp.tmp","w") - for line in fin: - if "boost/python.hpp" in line: - fout.write("#include \"Macros.h\"\n") - fout.write("GCC_DIAG_OFF(unused-parameter);\n") - fout.write("GCC_DIAG_OFF(missing-field-initializers);\n") - fout.write("#include \"boost/python.hpp\"\n") - fout.write("#include \"boost/python/suite/indexing/vector_indexing_suite.hpp\"\n") - fout.write("GCC_DIAG_ON(unused-parameter);\n") - fout.write("GCC_DIAG_ON(missing-field-initializers);\n") - elif "vector_indexing_suite.hpp" in line: - continue - else: - fout.write(line) - fout.close() - fin.close() - os.system("mv tmp.tmp "+ff) diff --git a/Macros/BoostPythonGenerator/runinstall.py b/Macros/BoostPythonGenerator/runinstall.py new file mode 100644 index 0000000000000000000000000000000000000000..84cedd7f155af95fdee5dfd08c3a283be0903f7c --- /dev/null +++ b/Macros/BoostPythonGenerator/runinstall.py @@ -0,0 +1,186 @@ +# see codegenerator.py + +import os +import sys +import glob + + +#------------------------------------------------------------- +# generating python_module.pri for qt-creator +#------------------------------------------------------------- +def GenerateProjectFile(OutputTempDir, files_inc, files_src): + python_pri_file = OutputTempDir+"/python_module.pri" + fout = open(python_pri_file, 'w') + fout.write("HEADERS += \\ \n") + # existing files (written by human being) + fout.write(" PythonAPI/inc/PythonListConverter.h \\ \n") + fout.write(" PythonAPI/inc/PythonModule.h \\ \n") + fout.write(" PythonAPI/inc/PythonOutputData.h \\ \n") + fout.write(" PythonAPI/inc/PythonPlusplusHelper.h \\ \n") + # automatically generated files + for i_file in range(0,len(files_inc)): + delim = " \\" + if i_file == len(files_inc)-1: + delim = " " + ff = files_inc[i_file] + ff = ff.replace(OutputTempDir,"PythonAPI/inc") + fout.write(" "+ff+delim+"\n") + fout.write("\n") + fout.write("SOURCES += \\ \n") + # existing files (written by human being) + fout.write(" PythonAPI/src/PythonModule.cpp \\ \n") + fout.write(" PythonAPI/src/PythonListConverter.cpp \\ \n") + fout.write(" PythonAPI/src/PythonOutputData.cpp \\ \n") + fout.write(" PythonAPI/src/PythonPlusplusHelper.cpp \\ \n") + # automatically generated files + for i_file in range(0,len(files_src)): + delim = " \\" + if i_file == len(files_src)-1: + delim = " " + ff = files_src[i_file] + ff = ff.replace(OutputTempDir,"PythonAPI/src") + fout.write(" "+ff+delim+"\n") + fout.write("\n") + + fout.write("INCLUDEPATH += ./PythonAPI/inc \n") + fout.write("DEPENDPATH += ./PythonAPI/inc \n") + fout.close() + return python_pri_file + + +#------------------------------------------------------------- +# generating python module main cpp file +#------------------------------------------------------------- +def GenerateModuleFile(OutputTempDir, files_inc, files_src): + # generating own PythonModule.cpp + python_module_file = OutputTempDir+"/PythonModule.cpp" + fout = open(python_module_file, 'w') + fout.write("#include \"Python.h\"\n") + fout.write("#define PY_ARRAY_UNIQUE_SYMBOL scatt_ARRAY_API \n") + fout.write("#include \"numpy/arrayobject.h\"\n") + fout.write("// the order of 3 guys above is important\n") + fout.write("\n") + #fout.write("#include \"PythonModule.h\"\n") + for ff in files_inc: + ff = ff.replace(OutputTempDir+"/","") + fout.write("#include \""+ff+"\" \n") + fout.write("\n") + fout.write("#include \"PythonListConverter.h\"\n") + fout.write("\n") + fout.write("BOOST_PYTHON_MODULE(libScattCore){\n") + fout.write("\n") + # adding register lines + #for ff in files_inc: + #fout2 = open(ff,'r') + #for line in fout2: + #if "register_" in line: + #line = line.replace("void "," ") + #fout.write(line) + + # copying register lines from automaticaly generated module file to our manually generated + old_python_module_file = OutputTempDir+"/PythonInterface.main.cpp" + fin = open(old_python_module_file,'r') + for line in fin: + if "register_" in line: + fout.write(line) + fin.close() + + fout.write("\n") + fout.write(" register_python2cpp_converters();\n") + fout.write("\n") + fout.write(" import_array();\n") + fout.write(" /* IMPORTANT\n") + fout.write(" this is initialisation function from C-API of python-numpy package. It has to be called once in the\n") + fout.write(" initialisation section of the module (i.e. here), when module is going to use any of python numpy C-API.\n") + fout.write(" Additional rule: when initialisation of the module, and functions that use python-numpy C-API are located in\n") + fout.write(" different files (different compilation units) - and this is exactly our case - additional defines has\n") + fout.write(" to be inserted before #include \"numpy/arrayobject.h\". See explanations\n") + fout.write(" http://docs.scipy.org/doc/numpy/reference/c-api.array.html#import_array\n") + fout.write(" */\n") + fout.write("}\n") + + fout.close() + return python_module_file + + +#------------------------------------------------------------- +# patching generated files to get rid warnings from boost +#------------------------------------------------------------- +def PatchFiles(files): + for ff in files: + print ff + fin = file(ff,"r") + fout = file("tmp.tmp","w") + for line in fin: + if "boost/python.hpp" in line: + fout.write("#include \"Macros.h\"\n") + fout.write("GCC_DIAG_OFF(unused-parameter);\n") + fout.write("GCC_DIAG_OFF(missing-field-initializers);\n") + fout.write("#include \"boost/python.hpp\"\n") + fout.write("#include \"boost/python/suite/indexing/vector_indexing_suite.hpp\"\n") + fout.write("GCC_DIAG_ON(unused-parameter);\n") + fout.write("GCC_DIAG_ON(missing-field-initializers);\n") + elif "vector_indexing_suite.hpp" in line: + continue + else: + fout.write(line) + fout.close() + fin.close() + os.system("mv tmp.tmp "+ff) + + +#------------------------------------------------------------- +# copying files to the project directory +#------------------------------------------------------------- +def CopyFiles(files, InstallDir): + copycommand='cp ' + # copying files + overwriteAnswer='' + for f in files: + fileName = os.path.basename(f) + + # different output directory for source and headers + outputName='' + if '.cpp' in fileName: + outputName=InstallDir+"/src/"+fileName + elif '.h' in fileName: + outputName=InstallDir+"/inc/"+fileName + elif '.pri' in fileName: + outputName=InstallDir+"/../"+fileName + #print "XXX",f, outputName + + # check file existance + if os.path.exists(outputName) and overwriteAnswer != 'a': + prompt="File '"+outputName+"' exists, Overwrite? [y/a/n] " + overwriteAnswer=raw_input(prompt) + + if (overwriteAnswer == 'y' or overwriteAnswer=='a') or not os.path.exists(outputName): + command = copycommand + f + " " + outputName + print command + os.system(command) + + else: + continue + + +#------------------------------------------------------------- +# InstallCode() +#------------------------------------------------------------- +def InstallCode(OutputTempDir, InstallDir): + files_inc =glob.glob(OutputTempDir+"/*.pypp.h"); + files_inc+= glob.glob(OutputTempDir+"/__call_policies.pypp.hpp"); + files_src = glob.glob(OutputTempDir+"/*.pypp.cpp"); + files = files_inc+files_src + + python_pri_file = GenerateProjectFile(OutputTempDir, files_inc, files_src) + files.append(python_pri_file) + + python_module_file = GenerateModuleFile(OutputTempDir, files_inc, files_src) + files.append(python_module_file) + + PatchFiles(files) + + CopyFiles(files, InstallDir) + + + diff --git a/Macros/BoostPythonGenerator/runpyplusplus.py b/Macros/BoostPythonGenerator/runpyplusplus.py new file mode 100644 index 0000000000000000000000000000000000000000..d044e635879de1ac7fa5ed66f236871e959fa6fc --- /dev/null +++ b/Macros/BoostPythonGenerator/runpyplusplus.py @@ -0,0 +1,429 @@ +# see codegenerator.py + +import os +import sys +import glob +from pyplusplus import module_builder +from pyplusplus.module_builder import call_policies +from pyplusplus import messages +from pyplusplus import file_writers +from pygccxml.declarations.matchers import access_type_matcher_t +from pygccxml.declarations.matchers import virtuality_type_matcher_t +from pygccxml import declarations +from pyplusplus import function_transformers as FT + + +ModuleName = 'PythonInterface' +nOutputFiles = 8 # generated code for classes will be splitted in this number of files + +# list of files to analyse and corresponding functions with rules for analysis +myFiles=[ + 'BasicVector3D.h', + #'Experiment.h', + #'FormFactorCrystal.h', + #'FormFactorCylinder.h', + #'FormFactorDecoratorDebyeWaller.h', + #'FormFactorFullSphere.h', + #'FormFactorGauss.h', + #'FormFactorLorentz.h', + #'FormFactorPrism3.h', + #'FormFactorPyramid.h', + #'FormFactorSphereGaussianRadius.h', + #'GISASExperiment.h', + #'HomogeneousMaterial.h', + #'IClusteredParticles.h', + #'ICompositeSample.h', + #'IFormFactor.h', + #'IFormFactorBorn.h', + #'IFormFactorDecorator.h', + #'IInterferenceFunction.h', + #'InterferenceFunctionNone.h', + #'InterferenceFunction1DParaCrystal.h', + #'IMaterial.h', + #'IParameterized.h', + #'ISample.h', + #'ISampleBuilder.h', + #'ISelectionRule.h', + #'ISingleton.h', + #'Lattice.h', + #'LatticeBasis.h', + #'Layer.h', + #'LayerDecorator.h', + #'LayerRoughness.h', + #'MaterialManager.h', + #'MesoCrystal.h', + #'MultiLayer.h', + #'Particle.h', + #'Crystal.h', + #'ParticleDecoration.h', + #'OpticalFresnel.h', + #'ParameterPool.h', + #'ParticleInfo.h', + #'DiffuseParticleInfo.h', + #'PythonOutputData.h', + 'PythonPlusplusHelper.h', + #'RealParameterWrapper.h', + 'Transform3D.h', + #'Units.h', + 'Types.h', +] + +# list of include directories +myIncludes = ['../../Core/Samples/inc','../../Core/FormFactors/inc','../../Core/Algorithms/inc','../../Core/Tools/inc','../../Core/PythonAPI/inc','../../Core/Geometry/inc'] + + +# ------------------------------------------------------------------- +# AdditionalRules +# ------------------------------------------------------------------- +def AdditionalRules(mb): + + # --- BasicVector3D.h ----------------------------------------------- + if "BasicVector3D.h" in myFiles: + ##cl = mb.class_("BasicVector3D<std::complex<double> >") + mb.classes(lambda decl: 'Geometry::BasicVector3D<std::complex<double> >' in decl.decl_string ).exclude() + mb.free_operators( lambda decl: 'Geometry::BasicVector3D<std::complex<double> >' in decl.decl_string ).exclude() + mb.free_functions( lambda decl: 'Geometry::BasicVector3D<std::complex<double> >' in decl.decl_string ).exclude() + + # --- Experiment.h -------------------------------------------------- + if "Experiment.h" in myFiles: + cl = mb.class_( "Experiment" ) + cl.constructors( lambda decl: bool( decl.arguments ) ).exclude() # exclude non-default constructors + cl.member_functions().exclude() + cl.member_function("runSimulation").include() + cl.member_function("normalize").include() + cl.member_function("setBeamParameters").include() + cl.member_function("setBeamIntensity").include() + cl.member_function("setSample").include() + cl.member_function("setSampleBuilder").include() + + # --- FormFactorCylinder.h ------------------------------------------ + #if "FormFactorCylinder.h" in myFiles: + #cl = mb.class_( "FormFactorCylinder" ) + + # --- FormFactorDecoratorDebyeWaller.h ------------------------------ + #if "FormFactorDecoratorDebyeWaller" in myFiles: + #cl = mb.class_( "FormFactorDecoratorDebyeWaller" ) + + # --- FormFactorFullSphere.h ---------------------------------------- + #if "FormFactorFullSphere.h" in myFiles: + #cl = mb.class_( "FormFactorFullSphere" ) + + # --- FormFactorPyramid.h ------------------------------------------- + #if "FormFactorPyramid.h" in myFiles: + #cl = mb.class_( "FormFactorPyramid" ) + + # --- FormFactorSphereGaussianRadius.h ------------------------------ + if "FormFactorSphereGaussianRadius.h" in myFiles: + cl = mb.class_( "FormFactorSphereGaussianRadius" ) + cl.member_functions("createDistributedFormFactors").exclude() + + # --- GISASExperiment.h --------------------------------------------- + if "GISASExperiment.h" in myFiles: + cl = mb.class_( "GISASExperiment" ) + cl.member_function( "setDetectorResolutionFunction" ).exclude() + + # --- HomogeneousMaterial.h ----------------------------------------- + #if "HomogeneousMaterial.h" in myFiles: + #cl = mb.class_( "HomogeneousMaterial" ) + + # --- IClusteredParticles.h ----------------------------------------- + #if "IClusteredParticles.h" in myFiles: + #cl.constructors( lambda decl: bool( decl.arguments ) ).exclude() # exclude non-default constructors + #cl.member_function("createTotalFormFactor").call_policies = call_policies.return_value_policy(call_policies.manage_new_object ) + + # --- ICompositeSample.h -------------------------------------------- + #if "ICompositeSample.h" in myFiles: + #cl = mb.class_( "ICompositeSample" ) + #cl.constructors( lambda decl: bool( decl.arguments ) ).exclude() # exclude non-default constructors + #cl.member_functions().exclude() + + # --- IFormFactor.h ------------------------------------------------- + #if "IFormFactor.h" in myFiles: + #cl = mb.class_( "IFormFactor" ) + + # --- IFormFactorBorn.h --------------------------------------------- + #if "IFormFactorBorn.h" in myFiles: + #cl = mb.class_( "IFormFactorBorn" ) + + # --- IFormFactorBornSeparable.h ------------------------------------ + #if "IFormFactorBornSeparable.h" in myFiles: + #cl = mb.class_( "IFormFactorBornSeparable" ) + + # --- IFormFactorDecorator.h ---------------------------------------- + #if "IFormFactorDecorator.h" in myFiles: + #cl = mb.class_( "IFormFactorDecorator" ) + + # --- IInterferenceFunction.h --------------------------------------- + #if "IInterferenceFunction.h" in myFiles: + #cl = mb.class_( "IInterferenceFunction" ) + + # --- InterferenceFunctionNone.h ------------------------------------ + #if "InterferenceFunctionNone.h" in myFiles: + #cl = mb.class_( "InterferenceFunctionNone" ) + + # --- InterferenceFunction1DParaCrystal.h --------------------------- + #if "InterferenceFunction1DParaCrystal.h" in myFiles: + #cl = mb.class_( "InterferenceFunction1DParaCrystal" ) + + # --- IMaterial.h --------------------------------------------------- + #if "IMaterial.h" in myFiles: + #cl = mb.class_( "IMaterial" ) + + # --- IParameterized.h ---------------------------------------------- + #if "IParameterized.h" in myFiles: + #cl = mb.class_( "IParameterized" ) + #cl.member_functions().exclude() + #cl.member_function( "createParameterTree" ).include() + #cl.member_function( "addParametersToExternalPool" ).include() + + # --- ISingleton.h -------------------------------------------------- + #if "ISingleton.h" in myFiles: + #cl = mb.class_( "ISingleton" ) + + # --- ISample.h ----------------------------------------------------- + if "ISample.h" in myFiles: + cl = mb.class_( "ISample" ) + cl.member_functions().exclude() + cl.member_function( "clone" ).include() + cl.member_function("print_structure").include() + + # --- ISampleBuilder.h ---------------------------------------------- + if "ISampleBuilder.h" in myFiles: + cl = mb.class_( "ISampleBuilder" ) + cl.member_functions().exclude() + cl.member_function( "buildSample" ).include() + cl.member_function( "buildSample" ).call_policies = call_policies.return_value_policy( call_policies.manage_new_object ) + + # --- Lattice.h ----------------------------------------------------- + if "Lattice.h" in myFiles: + cl = mb.class_( "Lattice" ) + cl.member_functions().exclude() + cl.member_function("getBasisVectorA").include() + cl.member_function("getBasisVectorB").include() + cl.member_function("getBasisVectorC").include() + cl.member_function("createTrigonalLattice").include() + cl.member_function("createTrigonalLattice").call_policies = call_policies.return_value_policy(call_policies.return_by_value ) + cl.member_function("setSelectionRule").include() + + # --- LatticeBasis.h ------------------------------------------------ + if "LatticeBasis.h" in myFiles: + cl = mb.class_( "LatticeBasis" ) + cl.constructors( lambda decl: bool( decl.arguments ) ).exclude() # exclude non-default constructors + cl.member_functions().exclude() + cl.member_function("addParticle").include() + + # --- Layer.h ------------------------------------------------------- + if "Layer.h" in myFiles: + cl = mb.class_( "Layer" ) + cl.member_function( "createDWBASimulation" ).exclude() + # we need to include back setMaterial methods since they have pointers in argument list (and our default policy is to exclude them) + for fun in cl.member_functions(): + if fun.name == "setMaterial": + fun.include() + print fun + # including back constructors with pointers (general policy is to exclude them) + cl.constructors().include() + + # --- LayerDecorator.h ---------------------------------------------- + if "LayerDecorator.h" in myFiles: + cl = mb.class_( "LayerDecorator" ) + cl.member_function( "createDiffuseDWBASimulation").exclude() + cl.member_function( "createDWBASimulation").exclude() + cl.member_function( "createStrategy").exclude() + + # --- LayerRoughness.h ---------------------------------------------- + if "LayerRoughness.h" in myFiles: + cl = mb.class_( "LayerRoughness" ) + cl.member_function( "getSpectralFun" ).exclude() + cl.member_function( "getCorrFun" ).exclude() + + # --- MaterialManager.h --------------------------------------------- + if "MaterialManager.h" in myFiles: + cl = mb.class_( "MaterialManager" ) + cl.constructors().exclude() + + # --- MesoCrystal.h ------------------------------------------------- + if "MesoCrystal.h" in myFiles: + cl = mb.class_( "MesoCrystal" ) + cl.member_functions( ).exclude() # excluding all member functions, leaving only constructors + + # --- MultiLayer.h -------------------------------------------------- + if "MultiLayer.h" in myFiles: + cl = mb.class_( "MultiLayer" ) + cl.member_functions( ).exclude() + cl.member_function( "addLayer" ).include() + cl.member_function( "addLayer" ).include() + cl.member_function( "addLayerWithTopRoughness" ).include() + + # --- Particle.h ---------------------------------------------------- + if "Particle.h" in myFiles: + cl = mb.class_( "Particle" ) + cl.member_function( "createDiffuseParticleInfo" ).exclude() + cl.member_function( "createDistributedParticles" ).exclude() + + # --- Crystal.h ----------------------------------------------------- + #if "Crystal.h" in myFiles: + #cl = mb.class_( "Crystal" ) + + # --- ParticleDecoration.h ------------------------------------------ + if "ParticleDecoration.h" in myFiles: + cl = mb.class_( "ParticleDecoration" ) + cl.constructors( lambda decl: bool( decl.arguments ) ).exclude() # exclude non-default constructors + cl.member_function("createStrategy").exclude() + + # --- OpticalFresnel.h ---------------------------------------------- + #if "OpticalFresnel.h" in myFiles: + #cl = mb.class_( "OpticalFresnel" ) + + # --- Point3D.h ----------------------------------------------------- + #if "Point3D.h" in myFiles: + #cl = mb.class_( "Point3D<double>" ) + + # --- ParameterPool.h ----------------------------------------------- + if "ParameterPool.h" in myFiles: + cl = mb.class_( "ParameterPool" ) + cl.member_function("registerParameter").include() + cl.member_function("registerParameter").add_transformation( FT.from_address( 1 ) ) + cl.member_function("getMatchedParameters").exclude() + + # --- PythonOutputData.h -------------------------------------------- + if "PythonOutputData.h" in myFiles: + # these functions returns PyObject, the empty custom policy is the only way I know + mb.free_function('GetOutputData').call_policies = call_policies.custom_call_policies("") + mb.free_function('GetOutputDataAxis').call_policies = call_policies.custom_call_policies("") + + # --- PythonPlusplusHelper.h ---------------------------------------- + if "PythonPlusplusHelper.h" in myFiles: + cl = mb.class_( "PythonPlusplusHelper" ) + cl.exclude() # given class is only to teach pyplusplus to templates, but we do not need class itself to be visible in python, excluding it... + + # --- RealParameterWrapper.h ---------------------------------------- + if "RealParameterWrapper.h" in myFiles: + cl = mb.class_('RealParameterWrapper') # given class is only to teach pyplusplus to templates, but we do not need class itself to be visible in python, excluding it... + cl.member_functions().exclude() + cl.member_function("setValue").include() + cl.member_function("getValue").include() + cl.member_function("isNull").include() + + # --- Transform3D.h ------------------------------------------------- + if "Transform3D.h" in myFiles: + # removing mentioning of Point3D from constructors and member_functions + mb.class_( "Point3D<double>").exclude() + TransformClasses={"Transform3D","Reflect3D","Translate3D", "Scale3D", "Rotate3D"} + for clname in TransformClasses: + cl = mb.class_(clname) + cl.constructors(lambda decl: 'Point3D' in decl.decl_string, allow_empty=True ).exclude() + cl.member_functions(lambda decl: 'Point3D' in decl.decl_string, allow_empty=True ).exclude() + + # --- Types.h ------------------------------------------------------- + if "Types.h" in myFiles: + cl = mb.class_("KVectorContainer") + cl.exclude() + + +def RunPyPlusPlus(OutputTempDir): + from pyplusplus.file_writers.balanced_files import balanced_files_t + balanced_files_t.HEADER_EXT='.h' + balanced_files_t.SOURCE_EXT='.cpp' + from pyplusplus.file_writers.multiple_files import multiple_files_t + multiple_files_t.HEADER_EXT='.pypp.h' + multiple_files_t.SOURCE_EXT='.pypp.cpp' + + #GCCXML_COMPILER="/opt/local/bin/g++" + #GCCXML_CXXFLAGS="" + + myIncludes.append('/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7') + myIncludes.append('/opt/local/include/') + mb = module_builder.module_builder_t(files=myFiles, include_paths=myIncludes, gccxml_path='/opt/local/bin', cflags="-m64") + #mb = module_builder.module_builder_t(files=myFiles, include_paths=myIncludes, gccxml_path='/opt/local/bin') + + # --------------------------------------------------------- + # common properties + # --------------------------------------------------------- + mb.always_expose_using_scope = True + + # Generated code containing errors will not compile on + mem_funs = mb.calldefs () + mem_funs.create_with_signature = True + + # Exclude protected and private that are not pure virtual (we still have to expose pure virtual functions to have them overriden in the wrapper) + query = declarations.access_type_matcher_t( 'private' ) & ~declarations.virtuality_type_matcher_t( declarations.VIRTUALITY_TYPES.PURE_VIRTUAL ) + mb.global_ns.calldefs( query, allow_empty=True ).exclude() + query = declarations.access_type_matcher_t( 'protected' ) & ~declarations.virtuality_type_matcher_t( declarations.VIRTUALITY_TYPES.PURE_VIRTUAL ) + mb.global_ns.calldefs( query, allow_empty=True ).exclude() + + # excluding generation of methods for implicit conversion + mb.constructors().allow_implicit_conversion = False + + # return policy for singletons, clone and create methods + classes = mb.classes(); + for cl in classes: + cl.member_functions('instance', allow_empty=True).call_policies = call_policies.return_value_policy( call_policies.reference_existing_object ) + cl.member_functions('clone', allow_empty=True).call_policies = call_policies.return_value_policy( call_policies.manage_new_object ) + cl.member_functions( lambda x: x.name.startswith('create'), allow_empty=True ).call_policies = call_policies.return_value_policy( call_policies.manage_new_object ) + + # excluding constructors which have pointers in argument list + for cl in classes: + for ctor in cl.constructors(allow_empty=True): + for arg in ctor.arguments: + if declarations.type_traits.is_pointer(arg.type): + ctor.exclude() + + # excluding member functions if they have pointers in argument list + for cl in classes: + for fun in cl.member_functions(allow_empty=True): + has_pointers = False + for arg in fun.arguments: + if declarations.type_traits.is_pointer(arg.type): + has_pointers = True + if has_pointers: + fun.exclude(); + + # --------------------------------------------------------- + # calling class individual parsing properties + # --------------------------------------------------------- + AdditionalRules(mb) + + # set the default return policies (for references/pointers) on classes if it wasn't already been done for + mem_funs = mb.calldefs() + for mem_fun in mem_funs: + if mem_fun.call_policies: + continue + if not mem_fun.call_policies and (declarations.is_reference(mem_fun.return_type) or declarations.is_pointer(mem_fun.return_type) ): + mem_fun.call_policies = call_policies.return_value_policy(call_policies.reference_existing_object ) + + # disabling some warnings + messages.disable( + messages.W1020 # Warnings 1020 - 1031 are all about why Py++ generates wrapper for class X + , messages.W1021 + , messages.W1022 + , messages.W1023 + , messages.W1024 + , messages.W1025 + , messages.W1026 + , messages.W1027 + , messages.W1028 + , messages.W1029 + , messages.W1030 + , messages.W1031 + #, messages.W1035 + #, messages.W1040 + #, messages.W1038 + #, messages.W1041 + #, messages.W1036 # pointer to Python immutable member + #, messages.W1033 # unnamed variables + #, messages.W1018 # expose unnamed classes + #, messages.W1049 # returns reference to local variable + #, messages.W1014 # unsupported '=' operator + ) + + # --------------------------------------------------------- + # generating output + # --------------------------------------------------------- + mb.build_code_creator( module_name=ModuleName) + mb.code_creator.user_defined_directories.append( os.path.abspath('./') ) + if nOutputFiles > 0: + mb.split_module( OutputTempDir) + #mb.balanced_split_module( OutputTempDir, nOutputFiles) + else: + mb.write_module( "tmp.cpp")