diff --git a/Core/Algorithms/inc/Beam.h b/Core/Algorithms/inc/Beam.h index fd88590b67646475d1de5345b9733ac238a2308b..7b8d182aaf8412031c380e8e71d129884512ecb1 100644 --- a/Core/Algorithms/inc/Beam.h +++ b/Core/Algorithms/inc/Beam.h @@ -15,8 +15,9 @@ //! @date Jun 21, 2012 #include "Types.h" +#include "IParameterized.h" -class Beam +class Beam : public IParameterized { public: Beam(); @@ -32,6 +33,9 @@ public: void setIntensity(double intensity) { m_intensity = intensity; } protected: + //! initialize pool parameters, i.e. register some of class members for later access via parameter pool + virtual void init_parameters(); + cvector_t m_central_k; double m_intensity; }; diff --git a/Core/Algorithms/inc/Detector.h b/Core/Algorithms/inc/Detector.h index f96f5121b74d0f7779b0124e933359b0b5c1a6c6..e4816d4bf4ef19696a139c19aa8dde609df9c198 100644 --- a/Core/Algorithms/inc/Detector.h +++ b/Core/Algorithms/inc/Detector.h @@ -16,10 +16,12 @@ #include "NamedVector.h" #include "IDetectorResolution.h" +#include "IParameterized.h" + #include <vector> -class Detector +class Detector : public IParameterized { public: Detector(); @@ -31,7 +33,11 @@ public: void clear(); void setDetectorResolution(IDetectorResolution *p_detector_resolution) { mp_detector_resolution = p_detector_resolution; } void applyDetectorResolution(OutputData<double> *p_intensity_map) const; + protected: + //! initialize pool parameters, i.e. register some of class members for later access via parameter pool + virtual void init_parameters(); + bool isCorrectAxisIndex(size_t index) const { return index<getDimension(); } private: std::vector<NamedVector<double> > m_axes; diff --git a/Core/Algorithms/inc/ISampleBuilder.h b/Core/Algorithms/inc/ISampleBuilder.h index 359755d57223e56e65d9f2f30d708e94ebd22da6..e459ff7b727a1068fa3b0b84788ae52e9dfa8c19 100644 --- a/Core/Algorithms/inc/ISampleBuilder.h +++ b/Core/Algorithms/inc/ISampleBuilder.h @@ -23,7 +23,7 @@ public: ISampleBuilder() { setName("SampleBuilder"); } virtual ~ISampleBuilder() {} - virtual ISample *buildSample() const=0; + virtual ISample *buildSample() const { throw; } protected: }; diff --git a/Core/Algorithms/src/Beam.cpp b/Core/Algorithms/src/Beam.cpp index 4df7f6ba72d4bb4b3a6a9d64b9aa83d001bc0cca..64378ebe0dfaed993f4dec2fc67e7519045f8b3d 100644 --- a/Core/Algorithms/src/Beam.cpp +++ b/Core/Algorithms/src/Beam.cpp @@ -3,6 +3,8 @@ Beam::Beam() : m_intensity(1.0) { + setName("Beam"); + init_parameters(); } void Beam::setCentralK(const cvector_t& k_i) @@ -17,4 +19,8 @@ void Beam::setCentralK(double lambda, double alpha_i, double phi_i) m_central_k = k_i; } - +void Beam::init_parameters() +{ + getParameterPool()->clear(); + getParameterPool()->registerParameter("intensity", &m_intensity); +} diff --git a/Core/Algorithms/src/Detector.cpp b/Core/Algorithms/src/Detector.cpp index 42732ac7bd0458f5dad7233811fa4457c8c80b24..49b1eca66341412c727c532081b1d4ed87417a76 100644 --- a/Core/Algorithms/src/Detector.cpp +++ b/Core/Algorithms/src/Detector.cpp @@ -4,6 +4,8 @@ Detector::Detector() : mp_detector_resolution(0) { + setName("Detector"); + init_parameters(); } Detector::~Detector() @@ -35,3 +37,7 @@ void Detector::applyDetectorResolution( mp_detector_resolution->applyDetectorResolution(p_intensity_map); } } + +void Detector::init_parameters() +{ +} diff --git a/Core/Algorithms/src/Experiment.cpp b/Core/Algorithms/src/Experiment.cpp index 596f656d83e2036a57e7b90ae73ca6f996a87e8d..0855922bcac914975c33b993b198fa54f742832d 100644 --- a/Core/Algorithms/src/Experiment.cpp +++ b/Core/Algorithms/src/Experiment.cpp @@ -119,11 +119,17 @@ std::string Experiment::addParametersToExternalPool(std::string path, // add own parameters std::string new_path = IParameterized::addParametersToExternalPool(path, external_pool, copy_number); + // add parameters of the beam + m_beam.addParametersToExternalPool(new_path, external_pool, -1); + + // add parameters of the detector + m_detector.addParametersToExternalPool(new_path, external_pool, -1); + // add parameters of the sample builder if (mp_sample_builder) { mp_sample_builder->addParametersToExternalPool(new_path, external_pool, -1); } - // add parameters of the sample + // add parameters of the sample (only in the case without sample builder) else if (mp_sample) { std::string sample_path = new_path + mp_sample->getName(); mp_sample->addParametersToExternalPool(sample_path, external_pool, -1); diff --git a/Core/PythonAPI/src/PythonInterface_classes_1.cpp b/Core/PythonAPI/src/PythonInterface_classes_1.cpp index caf1220214c293eaae493cd0f2ca28a51789c92d..7373e1f23253432fc076620085d5244ea370b723 100644 --- a/Core/PythonAPI/src/PythonInterface_classes_1.cpp +++ b/Core/PythonAPI/src/PythonInterface_classes_1.cpp @@ -20,7 +20,9 @@ #include "InterferenceFunctionNone.h" #include "InterferenceFunction1DParaCrystal.h" #include "IMaterial.h" +#include "IParameterized.h" #include "ISample.h" +#include "ISampleBuilder.h" #include "ISingleton.h" #include "Lattice.h" #include "LatticeBasis.h" @@ -46,6 +48,36 @@ namespace bp = boost::python; +struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > { + + IParameterized_wrapper( ) + : IParameterized( ) + , bp::wrapper< IParameterized >(){ + // null constructor + + } + + IParameterized_wrapper(::IParameterized const & other ) + : IParameterized( boost::ref(other) ) + , bp::wrapper< IParameterized >(){ + // copy constructor + + } + + virtual ::ParameterPool * createParameterTree( ) const { + if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) + return func_createParameterTree( ); + else{ + return this->IParameterized::createParameterTree( ); + } + } + + ::ParameterPool * default_createParameterTree( ) const { + return IParameterized::createParameterTree( ); + } + +}; + struct ISample_wrapper : ISample, bp::wrapper< ISample > { ISample_wrapper( ) @@ -74,18 +106,6 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > { return ISample::clone( ); } - virtual ::ParameterPool * createParameterTree( ) const { - if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) - return func_createParameterTree( ); - else{ - return this->ISample::createParameterTree( ); - } - } - - ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); - } - virtual void walk_and_print( ) { if( bp::override func_walk_and_print = this->get_override( "walk_and_print" ) ) func_walk_and_print( ); @@ -98,6 +118,18 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > { ISample::walk_and_print( ); } + virtual ::ParameterPool * createParameterTree( ) const { + if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) + return func_createParameterTree( ); + else{ + return this->IParameterized::createParameterTree( ); + } + } + + ::ParameterPool * default_createParameterTree( ) const { + return IParameterized::createParameterTree( ); + } + }; struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSample > { @@ -125,12 +157,12 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -194,12 +226,12 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -284,12 +316,12 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -324,12 +356,12 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -364,12 +396,12 @@ struct DiffuseParticleInfo_wrapper : DiffuseParticleInfo, bp::wrapper< DiffusePa if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -419,6 +451,18 @@ struct Experiment_wrapper : Experiment, bp::wrapper< Experiment > { Experiment::runSimulation( ); } + virtual ::ParameterPool * createParameterTree( ) const { + if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) + return func_createParameterTree( ); + else{ + return this->IParameterized::createParameterTree( ); + } + } + + ::ParameterPool * default_createParameterTree( ) const { + return IParameterized::createParameterTree( ); + } + }; struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > { @@ -516,12 +560,12 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -585,12 +629,12 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn > if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual double getHeight( ) const { @@ -716,12 +760,12 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -859,12 +903,12 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -997,12 +1041,12 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -1123,12 +1167,12 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss > if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -1242,11 +1286,51 @@ void register_classes_1(){ vector_less__DiffuseParticleInfo_ptr___greater__exposer.def( bp::vector_indexing_suite< ::std::vector< DiffuseParticleInfo* > >() ); } + { //::IParameterized + typedef bp::class_< IParameterized_wrapper > IParameterized_exposer_t; + IParameterized_exposer_t IParameterized_exposer = IParameterized_exposer_t( "IParameterized", bp::no_init ); + bp::scope IParameterized_scope( IParameterized_exposer ); + IParameterized_exposer.def( bp::init< >() ); + IParameterized_exposer.def( bp::init< IParameterized const & >(( bp::arg("other") )) ); + { //::IParameterized::createParameterTree + + typedef ::ParameterPool * ( ::IParameterized::*createParameterTree_function_type )( ) const; + typedef ::ParameterPool * ( IParameterized_wrapper::*default_createParameterTree_function_type )( ) const; + + IParameterized_exposer.def( + "createParameterTree" + , createParameterTree_function_type(&::IParameterized::createParameterTree) + , default_createParameterTree_function_type(&IParameterized_wrapper::default_createParameterTree) + , bp::return_value_policy< bp::manage_new_object >() ); + + } + { //::IParameterized::getParameterPool + + typedef ::ParameterPool * ( ::IParameterized::*getParameterPool_function_type )( ) ; + + IParameterized_exposer.def( + "getParameterPool" + , getParameterPool_function_type( &::IParameterized::getParameterPool ) + , bp::return_value_policy< bp::reference_existing_object >() ); + + } + { //::IParameterized::operator= + + typedef ::IParameterized & ( ::IParameterized::*assign_function_type )( ::IParameterized const & ) ; + + IParameterized_exposer.def( + "assign" + , assign_function_type( &::IParameterized::operator= ) + , ( bp::arg("other") ) + , bp::return_self< >() ); + + } + } + { //::ISample - typedef bp::class_< ISample_wrapper > ISample_exposer_t; - ISample_exposer_t ISample_exposer = ISample_exposer_t( "ISample", bp::no_init ); + 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_exposer.def( bp::init< ISample const & >(( bp::arg("other") )) ); { //::ISample::clone @@ -1259,18 +1343,6 @@ void register_classes_1(){ , default_clone_function_type(&ISample_wrapper::default_clone) , bp::return_value_policy< bp::manage_new_object >() ); - } - { //::ISample::createParameterTree - - typedef ::ParameterPool * ( ::ISample::*createParameterTree_function_type )( ) const; - typedef ::ParameterPool * ( ISample_wrapper::*default_createParameterTree_function_type )( ) const; - - ISample_exposer.def( - "createParameterTree" - , createParameterTree_function_type(&::ISample::createParameterTree) - , default_createParameterTree_function_type(&ISample_wrapper::default_createParameterTree) - , bp::return_value_policy< bp::manage_new_object >() ); - } { //::ISample::operator= @@ -1293,6 +1365,18 @@ void register_classes_1(){ , walk_and_print_function_type(&::ISample::walk_and_print) , default_walk_and_print_function_type(&ISample_wrapper::default_walk_and_print) ); + } + { //::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 >() ); + } ISample_exposer.def( bp::self_ns::str( bp::self ) ); } @@ -1305,7 +1389,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( ICompositeSample_wrapper::* )( ) const)(&ICompositeSample_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1336,7 +1420,7 @@ void register_classes_1(){ , ( bp::arg("refractive_index") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( IClusteredParticles_wrapper::* )( ) const)(&IClusteredParticles_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1384,7 +1468,7 @@ void register_classes_1(){ , ( bp::arg("dw_factor") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( Crystal_wrapper::* )( ) const)(&Crystal_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1605,7 +1689,7 @@ void register_classes_1(){ , ( bp::arg("transform") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( ParticleInfo_wrapper::* )( ) const)(&ParticleInfo_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1643,7 +1727,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( DiffuseParticleInfo_wrapper::* )( ) const)(&DiffuseParticleInfo_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1651,7 +1735,7 @@ void register_classes_1(){ , (void ( ::ISample::* )( ) )(&::ISample::walk_and_print) , (void ( DiffuseParticleInfo_wrapper::* )( ) )(&DiffuseParticleInfo_wrapper::default_walk_and_print) ); - bp::class_< Experiment_wrapper, boost::noncopyable >( "Experiment", bp::init< >() ) + bp::class_< Experiment_wrapper, bp::bases< IParameterized >, boost::noncopyable >( "Experiment", bp::init< >() ) .def( "normalize" , (void ( ::Experiment::* )( ) )(&::Experiment::normalize) @@ -1671,7 +1755,12 @@ void register_classes_1(){ .def( "setSample" , (void ( ::Experiment::* )( ::ISample * ) )( &::Experiment::setSample ) - , ( bp::arg("p_sample") ) ); + , ( bp::arg("p_sample") ) ) + .def( + "createParameterTree" + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) + , (::ParameterPool * ( Experiment_wrapper::* )( ) const)(&Experiment_wrapper::default_createParameterTree) + , bp::return_value_policy< bp::manage_new_object >() ); bp::class_< IFormFactor_wrapper, bp::bases< ISample >, boost::noncopyable >( "IFormFactor", bp::init< >() ) .def( @@ -1711,7 +1800,7 @@ void register_classes_1(){ , ( bp::arg("refractive_index") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( IFormFactor_wrapper::* )( ) const)(&IFormFactor_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1741,7 +1830,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( IFormFactorBorn_wrapper::* )( ) const)(&IFormFactorBorn_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1789,7 +1878,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorCrystal_wrapper::* )( ) const)(&FormFactorCrystal_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1840,7 +1929,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorCylinder_wrapper::* )( ) const)(&FormFactorCylinder_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1891,7 +1980,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorFullSphere_wrapper::* )( ) const)(&FormFactorFullSphere_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1936,7 +2025,7 @@ void register_classes_1(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorGauss_wrapper::* )( ) const)(&FormFactorGauss_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( diff --git a/Core/PythonAPI/src/PythonInterface_classes_2.cpp b/Core/PythonAPI/src/PythonInterface_classes_2.cpp index 0f2a7a975a406046c1c95a0ca91b4f5827f29a47..2ff81897167864ebbe051976a15972dba3e100f5 100644 --- a/Core/PythonAPI/src/PythonInterface_classes_2.cpp +++ b/Core/PythonAPI/src/PythonInterface_classes_2.cpp @@ -19,7 +19,9 @@ #include "InterferenceFunctionNone.h" #include "InterferenceFunction1DParaCrystal.h" #include "IMaterial.h" +#include "IParameterized.h" #include "ISample.h" +#include "ISampleBuilder.h" #include "ISingleton.h" #include "Lattice.h" #include "LatticeBasis.h" @@ -101,12 +103,12 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -244,12 +246,12 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -375,12 +377,12 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -478,6 +480,18 @@ struct GISASExperiment_wrapper : GISASExperiment, bp::wrapper< GISASExperiment > GISASExperiment::runSimulation( ); } + virtual ::ParameterPool * createParameterTree( ) const { + if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) + return func_createParameterTree( ); + else{ + return this->IParameterized::createParameterTree( ); + } + } + + ::ParameterPool * default_createParameterTree( ) const { + return IParameterized::createParameterTree( ); + } + }; void register_classes_2(){ @@ -501,7 +515,7 @@ void register_classes_2(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorLorentz_wrapper::* )( ) const)(&FormFactorLorentz_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -553,7 +567,7 @@ void register_classes_2(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorPrism3_wrapper::* )( ) const)(&FormFactorPrism3_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -601,7 +615,7 @@ void register_classes_2(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( FormFactorPyramid_wrapper::* )( ) const)(&FormFactorPyramid_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -642,7 +656,12 @@ void register_classes_2(){ , ( bp::arg("n_phi"), bp::arg("phi_f_min"), bp::arg("phi_f_max"), bp::arg("n_alpha"), bp::arg("alpha_f_min"), bp::arg("alpha_f_max"), bp::arg("isgisaxs_style")=(bool)(false) ) ) .def( "smearIntensityFromZAxisTilting" - , (void ( ::GISASExperiment::* )( ) )( &::GISASExperiment::smearIntensityFromZAxisTilting ) ); + , (void ( ::GISASExperiment::* )( ) )( &::GISASExperiment::smearIntensityFromZAxisTilting ) ) + .def( + "createParameterTree" + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) + , (::ParameterPool * ( GISASExperiment_wrapper::* )( ) const)(&GISASExperiment_wrapper::default_createParameterTree) + , bp::return_value_policy< bp::manage_new_object >() ); { //::Geometry::BasicVector3D< double > typedef bp::class_< Geometry::BasicVector3D< double > > kvector_t_exposer_t; @@ -1161,4 +1180,7 @@ void register_classes_2(){ bp::class_< Geometry::TranslateX3D, bp::bases< Geometry::Translate3D > >( "TranslateX3D", bp::init< >() ) .def( bp::init< double >(( bp::arg("x") )) ); + bp::class_< Geometry::TranslateY3D, bp::bases< Geometry::Translate3D > >( "TranslateY3D", bp::init< >() ) + .def( bp::init< double >(( bp::arg("y") )) ); + } diff --git a/Core/PythonAPI/src/PythonInterface_classes_3.cpp b/Core/PythonAPI/src/PythonInterface_classes_3.cpp index 033f0c6590d57c2169402227777e397d7b46cc6a..bd7929ed6d3757d5cc8ca8ad466900a1edba143a 100644 --- a/Core/PythonAPI/src/PythonInterface_classes_3.cpp +++ b/Core/PythonAPI/src/PythonInterface_classes_3.cpp @@ -19,7 +19,9 @@ #include "InterferenceFunctionNone.h" #include "InterferenceFunction1DParaCrystal.h" #include "IMaterial.h" +#include "IParameterized.h" #include "ISample.h" +#include "ISampleBuilder.h" #include "ISingleton.h" #include "Lattice.h" #include "LatticeBasis.h" @@ -92,12 +94,12 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t evaluate( ::cvector_t const & k_i, ::cvector_t const & k_f, double alpha_i, double alpha_f ) const { @@ -178,12 +180,12 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -200,6 +202,48 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte }; +struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > { + + ISampleBuilder_wrapper(ISampleBuilder const & arg ) + : ISampleBuilder( arg ) + , bp::wrapper< ISampleBuilder >(){ + // copy constructor + + } + + ISampleBuilder_wrapper( ) + : ISampleBuilder( ) + , bp::wrapper< ISampleBuilder >(){ + // null constructor + + } + + virtual ::ISample * buildSample( ) const { + if( bp::override func_buildSample = this->get_override( "buildSample" ) ) + return func_buildSample( ); + else{ + return this->ISampleBuilder::buildSample( ); + } + } + + ::ISample * default_buildSample( ) const { + return ISampleBuilder::buildSample( ); + } + + virtual ::ParameterPool * createParameterTree( ) const { + if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) + return func_createParameterTree( ); + else{ + return this->IParameterized::createParameterTree( ); + } + } + + ::ParameterPool * default_createParameterTree( ) const { + return IParameterized::createParameterTree( ); + } + +}; + struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCrystal, bp::wrapper< InterferenceFunction1DParaCrystal > { InterferenceFunction1DParaCrystal_wrapper(double peak_distance, double width, double corr_length=0.0 ) @@ -237,12 +281,12 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -296,12 +340,12 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper< if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -403,12 +447,12 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -438,12 +482,12 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t const getRefractiveIndex( ) const { @@ -605,12 +649,12 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -736,12 +780,12 @@ struct LayerDecorator_wrapper : LayerDecorator, bp::wrapper< LayerDecorator > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -797,12 +841,12 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -832,12 +876,12 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual ::complex_t const getRefractiveIndex( ) const { @@ -903,12 +947,12 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > { if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -950,12 +994,12 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) return func_createParameterTree( ); else{ - return this->ISample::createParameterTree( ); + return this->IParameterized::createParameterTree( ); } } ::ParameterPool * default_createParameterTree( ) const { - return ISample::createParameterTree( ); + return IParameterized::createParameterTree( ); } virtual void walk_and_print( ) { @@ -974,9 +1018,6 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec void register_classes_3(){ - bp::class_< Geometry::TranslateY3D, bp::bases< Geometry::Translate3D > >( "TranslateY3D", bp::init< >() ) - .def( bp::init< double >(( bp::arg("y") )) ); - bp::class_< Geometry::TranslateZ3D, bp::bases< Geometry::Translate3D > >( "TranslateZ3D", bp::init< >() ) .def( bp::init< double >(( bp::arg("z") )) ); @@ -1061,7 +1102,7 @@ void register_classes_3(){ , bp::return_value_policy< bp::manage_new_object >() ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( IFormFactorDecorator_wrapper::* )( ) const)(&IFormFactorDecorator_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1096,7 +1137,7 @@ void register_classes_3(){ , ( bp::arg("q") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( IInterferenceFunction_wrapper::* )( ) const)(&IInterferenceFunction_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1104,6 +1145,18 @@ void register_classes_3(){ , (void ( ::ISample::* )( ) )(&::ISample::walk_and_print) , (void ( IInterferenceFunction_wrapper::* )( ) )(&IInterferenceFunction_wrapper::default_walk_and_print) ); + bp::class_< ISampleBuilder_wrapper, bp::bases< IParameterized > >( "ISampleBuilder", bp::init< >() ) + .def( + "buildSample" + , (::ISample * ( ::ISampleBuilder::* )( ) const)(&::ISampleBuilder::buildSample) + , (::ISample * ( ISampleBuilder_wrapper::* )( ) const)(&ISampleBuilder_wrapper::default_buildSample) + , bp::return_value_policy< bp::reference_existing_object >() ) + .def( + "createParameterTree" + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) + , (::ParameterPool * ( ISampleBuilder_wrapper::* )( ) const)(&ISampleBuilder_wrapper::default_createParameterTree) + , bp::return_value_policy< bp::manage_new_object >() ); + bp::class_< ISingleton< MaterialManager >, boost::noncopyable >( "ISingleton_less__MaterialManager__greater_", bp::no_init ) .def( "instance" @@ -1124,7 +1177,7 @@ void register_classes_3(){ , ( bp::arg("q") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( InterferenceFunction1DParaCrystal_wrapper::* )( ) const)(&InterferenceFunction1DParaCrystal_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1145,7 +1198,7 @@ void register_classes_3(){ , ( bp::arg("q") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( InterferenceFunctionNone_wrapper::* )( ) const)(&InterferenceFunctionNone_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1153,6 +1206,27 @@ void register_classes_3(){ , (void ( ::ISample::* )( ) )(&::ISample::walk_and_print) , (void ( InterferenceFunctionNone_wrapper::* )( ) )(&InterferenceFunctionNone_wrapper::default_walk_and_print) ); + bp::class_< KVectorContainer >( "KVectorContainer", bp::init< bp::optional< int > >(( bp::arg("buff_size")=(int)(3) )) ) + .def( + "begin" + , (::__gnu_cxx::__normal_iterator< Geometry::BasicVector3D< double >, std::vector< Geometry::BasicVector3D<double> > > ( ::KVectorContainer::* )( ) const)( &::KVectorContainer::begin ) ) + .def( + "clear" + , (void ( ::KVectorContainer::* )( ) )( &::KVectorContainer::clear ) ) + .def( + "end" + , (::__gnu_cxx::__normal_iterator< Geometry::BasicVector3D< double >, std::vector< Geometry::BasicVector3D<double> > > ( ::KVectorContainer::* )( ) const)( &::KVectorContainer::end ) ) + .def( + "print" + , (void ( ::KVectorContainer::* )( ) )( &::KVectorContainer::print ) ) + .def( + "push_back" + , (void ( ::KVectorContainer::* )( ::kvector_t const & ) )( &::KVectorContainer::push_back ) + , ( bp::arg("k") ) ) + .def( + "size" + , (::size_t ( ::KVectorContainer::* )( ) )( &::KVectorContainer::size ) ); + bp::class_< Lattice >( "Lattice", bp::init< >() ) .def( bp::init< kvector_t const &, kvector_t const &, kvector_t const & >(( bp::arg("a1"), bp::arg("a2"), bp::arg("a3") )) ) .def( bp::init< Lattice const & >(( bp::arg("lattice") )) ) @@ -1203,7 +1277,7 @@ void register_classes_3(){ , ( bp::arg("refractive_index") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( Particle_wrapper::* )( ) const)(&Particle_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1218,7 +1292,7 @@ void register_classes_3(){ , ( bp::arg("particle"), bp::arg("positions") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( LatticeBasis_wrapper::* )( ) const)(&LatticeBasis_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1279,7 +1353,7 @@ void register_classes_3(){ , ( bp::arg("thickness") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( Layer_wrapper::* )( ) const)(&Layer_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1333,7 +1407,7 @@ void register_classes_3(){ , ( bp::arg("thickness") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( LayerDecorator_wrapper::* )( ) const)(&LayerDecorator_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1427,14 +1501,14 @@ void register_classes_3(){ , bp::return_value_policy< bp::manage_new_object >() ); } - { //::ISample::createParameterTree + { //::IParameterized::createParameterTree - typedef ::ParameterPool * ( ::ISample::*createParameterTree_function_type )( ) const; + typedef ::ParameterPool * ( ::IParameterized::*createParameterTree_function_type )( ) const; typedef ::ParameterPool * ( LayerRoughness_wrapper::*default_createParameterTree_function_type )( ) const; LayerRoughness_exposer.def( "createParameterTree" - , createParameterTree_function_type(&::ISample::createParameterTree) + , createParameterTree_function_type(&::IParameterized::createParameterTree) , default_createParameterTree_function_type(&LayerRoughness_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ); @@ -1472,7 +1546,7 @@ void register_classes_3(){ bp::class_< MesoCrystal_wrapper, bp::bases< Particle >, boost::noncopyable >( "MesoCrystal", bp::init< IClusteredParticles const &, IFormFactor & >(( bp::arg("particle_structure"), bp::arg("form_factor") )) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( MesoCrystal_wrapper::* )( ) const)(&MesoCrystal_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1504,7 +1578,7 @@ void register_classes_3(){ , ( bp::arg("layer"), bp::arg("roughness") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( MultiLayer_wrapper::* )( ) const)(&MultiLayer_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( @@ -1734,7 +1808,7 @@ void register_classes_3(){ , ( bp::arg("surface_density") ) ) .def( "createParameterTree" - , (::ParameterPool * ( ::ISample::* )( ) const)(&::ISample::createParameterTree) + , (::ParameterPool * ( ::IParameterized::* )( ) const)(&::IParameterized::createParameterTree) , (::ParameterPool * ( ParticleDecoration_wrapper::* )( ) const)(&ParticleDecoration_wrapper::default_createParameterTree) , bp::return_value_policy< bp::manage_new_object >() ) .def( diff --git a/Core/PythonAPI/src/PythonInterface_free_functions.cpp b/Core/PythonAPI/src/PythonInterface_free_functions.cpp index 951b8fe68d53e6c8ee98c6c782e385749be2df3c..3f00d19944d8dc4a5ebeaa28306a51985b879833 100644 --- a/Core/PythonAPI/src/PythonInterface_free_functions.cpp +++ b/Core/PythonAPI/src/PythonInterface_free_functions.cpp @@ -19,7 +19,9 @@ #include "InterferenceFunctionNone.h" #include "InterferenceFunction1DParaCrystal.h" #include "IMaterial.h" +#include "IParameterized.h" #include "ISample.h" +#include "ISampleBuilder.h" #include "ISingleton.h" #include "Lattice.h" #include "LatticeBasis.h" diff --git a/Core/PythonAPI/src/PythonInterface_global_variables.cpp b/Core/PythonAPI/src/PythonInterface_global_variables.cpp index 1e39e0af3e5c6848a868457cbada079dcec3a4ed..ee758f1f9e335c15dbd6f0fe005006da1bccf3b4 100644 --- a/Core/PythonAPI/src/PythonInterface_global_variables.cpp +++ b/Core/PythonAPI/src/PythonInterface_global_variables.cpp @@ -19,7 +19,9 @@ #include "InterferenceFunctionNone.h" #include "InterferenceFunction1DParaCrystal.h" #include "IMaterial.h" +#include "IParameterized.h" #include "ISample.h" +#include "ISampleBuilder.h" #include "ISingleton.h" #include "Lattice.h" #include "LatticeBasis.h" diff --git a/Macros/BoostPythonGenerator/codegenerator.py b/Macros/BoostPythonGenerator/codegenerator.py index 5d384f699382b678ce0d7dd08f7c95f37dac66e1..04abfa67eb4251ab42a58fa0f7cf91dc1a50fae7 100644 --- a/Macros/BoostPythonGenerator/codegenerator.py +++ b/Macros/BoostPythonGenerator/codegenerator.py @@ -43,7 +43,9 @@ myFiles=[ 'InterferenceFunctionNone.h', 'InterferenceFunction1DParaCrystal.h', 'IMaterial.h', + 'IParameterized.h', 'ISample.h', + 'ISampleBuilder.h', 'ISingleton.h', 'Lattice.h', 'LatticeBasis.h', @@ -219,6 +221,15 @@ def RulesInterferenceFunction1DParaCrystal(mb): #def RulesIMaterial(mb): +# ------------------------------------------------------------------- +# IParameterized.h +# ------------------------------------------------------------------- +def RulesIParameterized(mb): + cl = mb.class_( "IParameterized" ) + cl.member_functions().exclude() + cl.member_function( "createParameterTree" ).include() + cl.member_function( "addParametersToExternalPool" ).include() + # ------------------------------------------------------------------- # ISingleton.h # ------------------------------------------------------------------- @@ -234,7 +245,15 @@ def RulesISample(mb): cl.member_functions().exclude() cl.member_function( "clone" ).include() cl.member_function("walk_and_print").include() - cl.member_function("createParameterTree").include() + + +# ------------------------------------------------------------------- +# ISampleBuilder.h +# ------------------------------------------------------------------- +def RulesISampleBuilder(mb): + cl = mb.class_( "ISampleBuilder" ) + cl.member_functions().exclude() + cl.member_function( "buildSample" ).include() # ------------------------------------------------------------------- @@ -675,4 +694,4 @@ def main(): if __name__ == '__main__': main() - \ No newline at end of file +