From 3b3bd5bab117c265fda6e436da5acc1549a17dd0 Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Tue, 15 Oct 2013 11:44:19 +0200 Subject: [PATCH] New method printSampleTree for python users comfort --- App/src/TestMultiLayerRoughness.cpp | 2 +- Core/PythonAPI/src/Crystal.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorBox.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorCone.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorCrystal.pypp.cpp | 23 ++++++ .../PythonAPI/src/FormFactorCylinder.pypp.cpp | 23 ++++++ .../FormFactorDecoratorDebyeWaller.pypp.cpp | 23 ++++++ .../src/FormFactorEllipsoid.pypp.cpp | 23 ++++++ .../src/FormFactorFullSphere.pypp.cpp | 23 ++++++ .../src/FormFactorFullSpheroid.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorGauss.pypp.cpp | 23 ++++++ .../src/FormFactorHemiSpheroid.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorLorentz.pypp.cpp | 23 ++++++ .../src/FormFactorParallelepiped.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorPrism3.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorPrism6.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorPyramid.pypp.cpp | 23 ++++++ Core/PythonAPI/src/FormFactorSphere.pypp.cpp | 23 ++++++ .../FormFactorSphereGaussianRadius.pypp.cpp | 23 ++++++ .../src/IClusteredParticles.pypp.cpp | 23 ++++++ Core/PythonAPI/src/ICompositeSample.pypp.cpp | 23 ++++++ Core/PythonAPI/src/IDecoration.pypp.cpp | 23 ++++++ Core/PythonAPI/src/IFormFactor.pypp.cpp | 23 ++++++ Core/PythonAPI/src/IFormFactorBorn.pypp.cpp | 23 ++++++ .../src/IFormFactorDecorator.pypp.cpp | 23 ++++++ .../src/IInterferenceFunction.pypp.cpp | 23 ++++++ Core/PythonAPI/src/ISample.pypp.cpp | 22 ++++-- ...InterferenceFunction1DParaCrystal.pypp.cpp | 23 ++++++ .../InterferenceFunction2DLattice.pypp.cpp | 23 ++++++ ...InterferenceFunction2DParaCrystal.pypp.cpp | 23 ++++++ .../src/InterferenceFunctionNone.pypp.cpp | 23 ++++++ Core/PythonAPI/src/LatticeBasis.pypp.cpp | 23 ++++++ Core/PythonAPI/src/Layer.pypp.cpp | 23 ++++++ Core/PythonAPI/src/LayerInterface.pypp.cpp | 23 ++++++ Core/PythonAPI/src/LayerRoughness.pypp.cpp | 23 ++++++ Core/PythonAPI/src/MesoCrystal.pypp.cpp | 23 ++++++ Core/PythonAPI/src/MultiLayer.pypp.cpp | 23 ++++++ Core/PythonAPI/src/Particle.pypp.cpp | 23 ++++++ Core/PythonAPI/src/ParticleCoreShell.pypp.cpp | 23 ++++++ .../PythonAPI/src/ParticleDecoration.pypp.cpp | 23 ++++++ Core/PythonAPI/src/ParticleInfo.pypp.cpp | 23 ++++++ .../src/PositionParticleInfo.pypp.cpp | 23 ++++++ Core/Samples/inc/ISample.h | 2 +- Core/Samples/inc/ISampleVisitor.h | 8 +++ Core/Samples/src/ISample.cpp | 25 ++----- Core/Samples/src/LayerRoughness.cpp | 4 +- Core/Tools/inc/SampleMaterialVisitor.h | 2 + Core/Tools/inc/SamplePrintVisitor.h | 3 + Core/Tools/src/SampleMaterialVisitor.cpp | 6 ++ Core/Tools/src/SamplePrintVisitor.cpp | 68 ++++++++---------- Doc/UserManual/Fitting.tex | 3 +- Doc/UserManual/UserManual.pdf | Bin 958725 -> 958819 bytes .../SampleParametersIntro.py | 1 + .../FitCylindersPrisms.py | 4 +- dev-tools/python-bindings/MakePyCore.py | 6 +- 55 files changed, 1005 insertions(+), 71 deletions(-) diff --git a/App/src/TestMultiLayerRoughness.cpp b/App/src/TestMultiLayerRoughness.cpp index 9d8fabba5b0..32c6aa218fe 100644 --- a/App/src/TestMultiLayerRoughness.cpp +++ b/App/src/TestMultiLayerRoughness.cpp @@ -31,7 +31,7 @@ void TestMultiLayerRoughness::execute() ISample *sample = SampleFactory::createSample("MultilayerOffspecTestcase1a"); std::cout << *sample << std::endl; - sample->print_structure(); + sample->printSampleTree(); int npoints=100; double alphaMax = 2.0; diff --git a/Core/PythonAPI/src/Crystal.pypp.cpp b/Core/PythonAPI/src/Crystal.pypp.cpp index 51c6018aa6f..d1a34c04872 100644 --- a/Core/PythonAPI/src/Crystal.pypp.cpp +++ b/Core/PythonAPI/src/Crystal.pypp.cpp @@ -97,6 +97,18 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -267,6 +279,17 @@ void register_Crystal_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&Crystal_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( Crystal_wrapper::*default_printSampleTree_function_type )( ) ; + + Crystal_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&Crystal_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorBox.pypp.cpp b/Core/PythonAPI/src/FormFactorBox.pypp.cpp index f501250e5ed..3928f9bd9d3 100644 --- a/Core/PythonAPI/src/FormFactorBox.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorBox.pypp.cpp @@ -205,6 +205,18 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -449,6 +461,17 @@ void register_FormFactorBox_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorBox_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorBox_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorBox_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorBox_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorCone.pypp.cpp b/Core/PythonAPI/src/FormFactorCone.pypp.cpp index 919c4006e11..dea77269e97 100644 --- a/Core/PythonAPI/src/FormFactorCone.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorCone.pypp.cpp @@ -193,6 +193,18 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -416,6 +428,17 @@ void register_FormFactorCone_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorCone_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorCone_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorCone_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorCone_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp index d053585eb17..f4956ed3ec4 100644 --- a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp @@ -198,6 +198,18 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -433,6 +445,17 @@ void register_FormFactorCrystal_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorCrystal_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorCrystal_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorCrystal_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorCrystal_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp index f1ce4e5aaf2..8e6f648fb3f 100644 --- a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp @@ -229,6 +229,18 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -488,6 +500,17 @@ void register_FormFactorCylinder_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorCylinder_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorCylinder_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorCylinder_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorCylinder_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp index fd5509dd602..b7d22d1b008 100644 --- a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp @@ -193,6 +193,18 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller, IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -416,6 +428,17 @@ void register_FormFactorDecoratorDebyeWaller_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorDecoratorDebyeWaller_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorDecoratorDebyeWaller_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorDecoratorDebyeWaller_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp b/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp index 0a9ca5ce101..cab513c398b 100644 --- a/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp @@ -205,6 +205,18 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -449,6 +461,17 @@ void register_FormFactorEllipsoid_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorEllipsoid_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorEllipsoid_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorEllipsoid_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorEllipsoid_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp index 3815bf96368..3849c05432a 100644 --- a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp @@ -217,6 +217,18 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -464,6 +476,17 @@ void register_FormFactorFullSphere_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorFullSphere_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorFullSphere_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorFullSphere_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorFullSphere_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp index 1e8532d1e79..f11419246f9 100644 --- a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp @@ -193,6 +193,18 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -416,6 +428,17 @@ void register_FormFactorFullSpheroid_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorFullSpheroid_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorFullSpheroid_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorFullSpheroid_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorFullSpheroid_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp index 1e69362b33f..bd0aff53361 100644 --- a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp @@ -212,6 +212,18 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss > IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -448,6 +460,17 @@ void register_FormFactorGauss_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorGauss_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorGauss_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorGauss_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorGauss_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp index 3a6afdf3031..1a300af87c5 100644 --- a/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp @@ -193,6 +193,18 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -416,6 +428,17 @@ void register_FormFactorHemiSpheroid_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorHemiSpheroid_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorHemiSpheroid_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorHemiSpheroid_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorHemiSpheroid_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp index 0f2cc8e1c7f..4b41e00edca 100644 --- a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp @@ -212,6 +212,18 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -448,6 +460,17 @@ void register_FormFactorLorentz_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorLorentz_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorLorentz_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorLorentz_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorLorentz_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp b/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp index f276ca868f6..c639836f9cb 100644 --- a/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp @@ -205,6 +205,18 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper< IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -440,6 +452,17 @@ void register_FormFactorParallelepiped_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorParallelepiped_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorParallelepiped_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorParallelepiped_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorParallelepiped_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp index 607d57b5899..7344a006a55 100644 --- a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp @@ -241,6 +241,18 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -511,6 +523,17 @@ void register_FormFactorPrism3_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorPrism3_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorPrism3_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorPrism3_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorPrism3_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp index c3a6cecfe0e..6958a94f6fc 100644 --- a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp @@ -205,6 +205,18 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -440,6 +452,17 @@ void register_FormFactorPrism6_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorPrism6_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorPrism6_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorPrism6_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorPrism6_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp index 01dbdcc07a9..db82e8d663c 100644 --- a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp @@ -265,6 +265,18 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -558,6 +570,17 @@ void register_FormFactorPyramid_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorPyramid_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorPyramid_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorPyramid_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorPyramid_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorSphere.pypp.cpp index e2bce4183cd..b2b8893a00b 100644 --- a/Core/PythonAPI/src/FormFactorSphere.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorSphere.pypp.cpp @@ -193,6 +193,18 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -416,6 +428,17 @@ void register_FormFactorSphere_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorSphere_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorSphere_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorSphere_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorSphere_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp index 773a20fc76d..e3edc65106a 100644 --- a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp @@ -205,6 +205,18 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius, IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -440,6 +452,17 @@ void register_FormFactorSphereGaussianRadius_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&FormFactorSphereGaussianRadius_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( FormFactorSphereGaussianRadius_wrapper::*default_printSampleTree_function_type )( ) ; + + FormFactorSphereGaussianRadius_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorSphereGaussianRadius_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp index a2715931f22..9d37ca5aea8 100644 --- a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp +++ b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp @@ -102,6 +102,18 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -243,6 +255,17 @@ void register_IClusteredParticles_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&IClusteredParticles_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( IClusteredParticles_wrapper::*default_printSampleTree_function_type )( ) ; + + IClusteredParticles_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&IClusteredParticles_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/ICompositeSample.pypp.cpp b/Core/PythonAPI/src/ICompositeSample.pypp.cpp index deac34055c2..1883f653f63 100644 --- a/Core/PythonAPI/src/ICompositeSample.pypp.cpp +++ b/Core/PythonAPI/src/ICompositeSample.pypp.cpp @@ -90,6 +90,18 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -219,6 +231,17 @@ void register_ICompositeSample_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&ICompositeSample_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( ICompositeSample_wrapper::*default_printSampleTree_function_type )( ) ; + + ICompositeSample_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&ICompositeSample_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/IDecoration.pypp.cpp b/Core/PythonAPI/src/IDecoration.pypp.cpp index 3e9fab2b864..989b8f6475b 100644 --- a/Core/PythonAPI/src/IDecoration.pypp.cpp +++ b/Core/PythonAPI/src/IDecoration.pypp.cpp @@ -120,6 +120,18 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -326,6 +338,17 @@ void register_IDecoration_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&IDecoration_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( IDecoration_wrapper::*default_printSampleTree_function_type )( ) ; + + IDecoration_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&IDecoration_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/IFormFactor.pypp.cpp b/Core/PythonAPI/src/IFormFactor.pypp.cpp index fa9ce0b759a..47eb2f5e967 100644 --- a/Core/PythonAPI/src/IFormFactor.pypp.cpp +++ b/Core/PythonAPI/src/IFormFactor.pypp.cpp @@ -179,6 +179,18 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -398,6 +410,17 @@ void register_IFormFactor_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&IFormFactor_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( IFormFactor_wrapper::*default_printSampleTree_function_type )( ) ; + + IFormFactor_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&IFormFactor_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp index 755886dd432..fc3c5fce9ad 100644 --- a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp +++ b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp @@ -191,6 +191,18 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn > IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -422,6 +434,17 @@ void register_IFormFactorBorn_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&IFormFactorBorn_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( IFormFactorBorn_wrapper::*default_printSampleTree_function_type )( ) ; + + IFormFactorBorn_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&IFormFactorBorn_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp index b4a69b7776e..29b0fd2305d 100644 --- a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp +++ b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp @@ -172,6 +172,18 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -391,6 +403,17 @@ void register_IFormFactorDecorator_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&IFormFactorDecorator_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( IFormFactorDecorator_wrapper::*default_printSampleTree_function_type )( ) ; + + IFormFactorDecorator_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&IFormFactorDecorator_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp index 2220599749c..629e437f138 100644 --- a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp +++ b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp @@ -119,6 +119,18 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -281,6 +293,17 @@ void register_IInterferenceFunction_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&IInterferenceFunction_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( IInterferenceFunction_wrapper::*default_printSampleTree_function_type )( ) ; + + IInterferenceFunction_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&IInterferenceFunction_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/ISample.pypp.cpp b/Core/PythonAPI/src/ISample.pypp.cpp index f0e710456ee..d6893b23933 100644 --- a/Core/PythonAPI/src/ISample.pypp.cpp +++ b/Core/PythonAPI/src/ISample.pypp.cpp @@ -66,6 +66,18 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > { return ISample::getCompositeSample( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual bool areParametersChanged( ) { if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) return func_areParametersChanged( ); @@ -232,13 +244,15 @@ void register_ISample_class(){ , bp::return_value_policy< bp::reference_existing_object >() ); } - { //::ISample::print_structure + { //::ISample::printSampleTree - typedef void ( ::ISample::*print_structure_function_type )( ) ; + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( ISample_wrapper::*default_printSampleTree_function_type )( ) ; ISample_exposer.def( - "print_structure" - , print_structure_function_type( &::ISample::print_structure ) ); + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&ISample_wrapper::default_printSampleTree) ); } { //::IParameterized::areParametersChanged diff --git a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp index 87040827591..6db34fb10b2 100644 --- a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp +++ b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp @@ -133,6 +133,18 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -319,6 +331,17 @@ void register_InterferenceFunction1DParaCrystal_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( InterferenceFunction1DParaCrystal_wrapper::*default_printSampleTree_function_type )( ) ; + + InterferenceFunction1DParaCrystal_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&InterferenceFunction1DParaCrystal_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp index 0c93a4ff106..bb22c253926 100644 --- a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp +++ b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp @@ -133,6 +133,18 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -309,6 +321,17 @@ void register_InterferenceFunction2DLattice_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&InterferenceFunction2DLattice_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( InterferenceFunction2DLattice_wrapper::*default_printSampleTree_function_type )( ) ; + + InterferenceFunction2DLattice_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&InterferenceFunction2DLattice_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp index cbcc2011468..00e15bd8f14 100644 --- a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp +++ b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp @@ -133,6 +133,18 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -351,6 +363,17 @@ void register_InterferenceFunction2DParaCrystal_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( InterferenceFunction2DParaCrystal_wrapper::*default_printSampleTree_function_type )( ) ; + + InterferenceFunction2DParaCrystal_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&InterferenceFunction2DParaCrystal_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp index b3e384add2a..eca6fc43a2f 100644 --- a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp +++ b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp @@ -133,6 +133,18 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper< IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -299,6 +311,17 @@ void register_InterferenceFunctionNone_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&InterferenceFunctionNone_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( InterferenceFunctionNone_wrapper::*default_printSampleTree_function_type )( ) ; + + InterferenceFunctionNone_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&InterferenceFunctionNone_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/LatticeBasis.pypp.cpp b/Core/PythonAPI/src/LatticeBasis.pypp.cpp index fb688ed5758..26f897e179c 100644 --- a/Core/PythonAPI/src/LatticeBasis.pypp.cpp +++ b/Core/PythonAPI/src/LatticeBasis.pypp.cpp @@ -121,6 +121,18 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -296,6 +308,17 @@ void register_LatticeBasis_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&LatticeBasis_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( LatticeBasis_wrapper::*default_printSampleTree_function_type )( ) ; + + LatticeBasis_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&LatticeBasis_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/Layer.pypp.cpp b/Core/PythonAPI/src/Layer.pypp.cpp index ab10dc15397..f2cd2401c72 100644 --- a/Core/PythonAPI/src/Layer.pypp.cpp +++ b/Core/PythonAPI/src/Layer.pypp.cpp @@ -226,6 +226,18 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -465,6 +477,17 @@ void register_Layer_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&Layer_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( Layer_wrapper::*default_printSampleTree_function_type )( ) ; + + Layer_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&Layer_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/LayerInterface.pypp.cpp b/Core/PythonAPI/src/LayerInterface.pypp.cpp index e798f090083..25f05331050 100644 --- a/Core/PythonAPI/src/LayerInterface.pypp.cpp +++ b/Core/PythonAPI/src/LayerInterface.pypp.cpp @@ -78,6 +78,18 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -237,6 +249,17 @@ void register_LayerInterface_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&LayerInterface_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( LayerInterface_wrapper::*default_printSampleTree_function_type )( ) ; + + LayerInterface_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&LayerInterface_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/LayerRoughness.pypp.cpp b/Core/PythonAPI/src/LayerRoughness.pypp.cpp index 96f299af1ae..b0d3ae5398c 100644 --- a/Core/PythonAPI/src/LayerRoughness.pypp.cpp +++ b/Core/PythonAPI/src/LayerRoughness.pypp.cpp @@ -116,6 +116,18 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -337,6 +349,17 @@ void register_LayerRoughness_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&LayerRoughness_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( LayerRoughness_wrapper::*default_printSampleTree_function_type )( ) ; + + LayerRoughness_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&LayerRoughness_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/MesoCrystal.pypp.cpp b/Core/PythonAPI/src/MesoCrystal.pypp.cpp index bb98f62c6db..90ce3058e8d 100644 --- a/Core/PythonAPI/src/MesoCrystal.pypp.cpp +++ b/Core/PythonAPI/src/MesoCrystal.pypp.cpp @@ -109,6 +109,18 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -262,6 +274,17 @@ void register_MesoCrystal_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&MesoCrystal_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( MesoCrystal_wrapper::*default_printSampleTree_function_type )( ) ; + + MesoCrystal_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&MesoCrystal_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/MultiLayer.pypp.cpp b/Core/PythonAPI/src/MultiLayer.pypp.cpp index 952e7ef6edf..fee8dfe46f9 100644 --- a/Core/PythonAPI/src/MultiLayer.pypp.cpp +++ b/Core/PythonAPI/src/MultiLayer.pypp.cpp @@ -97,6 +97,18 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -378,6 +390,17 @@ void register_MultiLayer_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&MultiLayer_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( MultiLayer_wrapper::*default_printSampleTree_function_type )( ) ; + + MultiLayer_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&MultiLayer_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/Particle.pypp.cpp b/Core/PythonAPI/src/Particle.pypp.cpp index 0862c04e8d5..8c6157673d1 100644 --- a/Core/PythonAPI/src/Particle.pypp.cpp +++ b/Core/PythonAPI/src/Particle.pypp.cpp @@ -183,6 +183,18 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -396,6 +408,17 @@ void register_Particle_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&Particle_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( Particle_wrapper::*default_printSampleTree_function_type )( ) ; + + Particle_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&Particle_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp index cb29797283e..f3b09b8f3d9 100644 --- a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp +++ b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp @@ -109,6 +109,18 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -262,6 +274,17 @@ void register_ParticleCoreShell_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&ParticleCoreShell_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( ParticleCoreShell_wrapper::*default_printSampleTree_function_type )( ) ; + + ParticleCoreShell_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&ParticleCoreShell_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp index 8760f2b84a7..e1c5df69ab6 100644 --- a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp +++ b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp @@ -157,6 +157,18 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -397,6 +409,17 @@ void register_ParticleDecoration_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&ParticleDecoration_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( ParticleDecoration_wrapper::*default_printSampleTree_function_type )( ) ; + + ParticleDecoration_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&ParticleDecoration_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/ParticleInfo.pypp.cpp b/Core/PythonAPI/src/ParticleInfo.pypp.cpp index 8abca774819..a725911d6f6 100644 --- a/Core/PythonAPI/src/ParticleInfo.pypp.cpp +++ b/Core/PythonAPI/src/ParticleInfo.pypp.cpp @@ -97,6 +97,18 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > { IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -276,6 +288,17 @@ void register_ParticleInfo_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&ParticleInfo_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( ParticleInfo_wrapper::*default_printSampleTree_function_type )( ) ; + + ParticleInfo_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&ParticleInfo_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp b/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp index 55d6ffaab41..8707bc22e49 100644 --- a/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp +++ b/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp @@ -97,6 +97,18 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio IParameterized::printParameters( ); } + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else + this->ISample::printSampleTree( ); + } + + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + virtual void registerParameter( ::std::string const & name, double * parpointer ) { namespace bpl = boost::python; if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ @@ -257,6 +269,17 @@ void register_PositionParticleInfo_class(){ , printParameters_function_type(&::IParameterized::printParameters) , default_printParameters_function_type(&PositionParticleInfo_wrapper::default_printParameters) ); + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type )( ) ; + typedef void ( PositionParticleInfo_wrapper::*default_printSampleTree_function_type )( ) ; + + PositionParticleInfo_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&PositionParticleInfo_wrapper::default_printSampleTree) ); + } { //::IParameterized::registerParameter diff --git a/Core/Samples/inc/ISample.h b/Core/Samples/inc/ISample.h index 946a7c79090..a2117bafc79 100644 --- a/Core/Samples/inc/ISample.h +++ b/Core/Samples/inc/ISample.h @@ -51,7 +51,7 @@ public: ParameterPool *external_pool, int copy_number=-1) const; - void print_structure(); + virtual void printSampleTree(); friend std::ostream& operator<<(std::ostream& ostr, const ISample& m) { m.print(ostr); return ostr; } diff --git a/Core/Samples/inc/ISampleVisitor.h b/Core/Samples/inc/ISampleVisitor.h index 46e2999df6d..e37c6c598fd 100644 --- a/Core/Samples/inc/ISampleVisitor.h +++ b/Core/Samples/inc/ISampleVisitor.h @@ -38,6 +38,8 @@ class FormFactorCylinder; class FormFactorPrism3; class InterferenceFunction1DParaCrystal; class InterferenceFunction2DParaCrystal; +class LayerRoughness; + //! Interface to visit a sample tree and perform operations on its nodes @@ -108,6 +110,12 @@ public: "ISampleVisitor::visit(InterferenceFunction2DParaCrystal *)"); } + virtual void visit(const LayerRoughness *) { + throw NotImplementedException( + "ISampleVisitor::visit(LayerRoughness *)"); + } + + virtual bool goForward(){ return true; } virtual bool goBack(){ return true; } }; diff --git a/Core/Samples/src/ISample.cpp b/Core/Samples/src/ISample.cpp index 5a6e21b56aa..71910444ff1 100644 --- a/Core/Samples/src/ISample.cpp +++ b/Core/Samples/src/ISample.cpp @@ -18,6 +18,7 @@ #include "ICompositeSample.h" #include "ICompositeIterator.h" #include "Utils.h" +#include "SamplePrintVisitor.h" ISample *ISample::clone() const { @@ -71,28 +72,10 @@ std::string ISample::addParametersToExternalPool( return new_path; } -void ISample::print_structure() +void ISample::printSampleTree() { - std::cout << getName() << " " << this << std::endl; - std::cout << "ISample::print_structure is broken\n"; -/* - if(getCompositeSample()) { - ICompositeIterator it = getCompositeSample()->createIterator(); - it.first(); - while(!it.is_done()) - { - ISample *smp = it.get_current(); - if(smp) { - int nlevel = (int)it.get_level(); - for(int i=0; i<nlevel; i++) std::cout << "... "; - std::cout << (*smp) << std::endl; - } else { - std::cout << "NULL" << std::endl; - } - it.next(); - } - } -*/ + SamplePrintVisitor visitor; + this->accept(&visitor); } bool ISample::containsMagneticMaterial() const diff --git a/Core/Samples/src/LayerRoughness.cpp b/Core/Samples/src/LayerRoughness.cpp index 40acccc5eaf..e2ce6cf4224 100644 --- a/Core/Samples/src/LayerRoughness.cpp +++ b/Core/Samples/src/LayerRoughness.cpp @@ -23,7 +23,7 @@ LayerRoughness::LayerRoughness() , m_hurstParameter(0) , m_latteralCorrLength(0) { - setName("Roughness"); + setName("LayerRoughness"); init_parameters(); } @@ -32,7 +32,7 @@ LayerRoughness::LayerRoughness(double sigma, double hurstParameter, double latte , m_hurstParameter(hurstParameter) , m_latteralCorrLength(latteralCorrLength) { - setName("roughness"); + setName("LayerRoughness"); init_parameters(); } diff --git a/Core/Tools/inc/SampleMaterialVisitor.h b/Core/Tools/inc/SampleMaterialVisitor.h index 098dd5dac69..59cfe9f7e77 100644 --- a/Core/Tools/inc/SampleMaterialVisitor.h +++ b/Core/Tools/inc/SampleMaterialVisitor.h @@ -48,6 +48,8 @@ public: void visit(const InterferenceFunction1DParaCrystal *); void visit(const InterferenceFunction2DParaCrystal *); + void visit(const LayerRoughness *); + std::vector<const IMaterial *> getMaterials() const { return m_materials; } diff --git a/Core/Tools/inc/SamplePrintVisitor.h b/Core/Tools/inc/SamplePrintVisitor.h index 8814cb4dbce..7dda73f257c 100644 --- a/Core/Tools/inc/SamplePrintVisitor.h +++ b/Core/Tools/inc/SamplePrintVisitor.h @@ -23,6 +23,7 @@ public: void visit(const LatticeBasis *sample); void visit(const IFormFactor *sample); + void visit(const FormFactorFullSphere *sample); void visit(const FormFactorPyramid *sample); void visit(const FormFactorCylinder *sample); @@ -32,6 +33,8 @@ public: void visit(const InterferenceFunction1DParaCrystal *); void visit(const InterferenceFunction2DParaCrystal *); + void visit(const LayerRoughness *sample); + bool goForward(); bool goBack(); private: diff --git a/Core/Tools/src/SampleMaterialVisitor.cpp b/Core/Tools/src/SampleMaterialVisitor.cpp index 9d294c68953..7a6992b36a4 100644 --- a/Core/Tools/src/SampleMaterialVisitor.cpp +++ b/Core/Tools/src/SampleMaterialVisitor.cpp @@ -197,6 +197,12 @@ void SampleMaterialVisitor::visit(const InterferenceFunction2DParaCrystal*) "visit(InterferenceFunction2DParaCrystal *)"); } +void SampleMaterialVisitor::visit(const LayerRoughness*) +{ + throw NotImplementedException("SampleMaterialVisitor::" + "visit(LayerRoughness *)"); +} + void SampleMaterialVisitor::addMaterial(const IMaterial* p_material) { if (p_material && std::find(m_materials.begin(), m_materials.end(), diff --git a/Core/Tools/src/SamplePrintVisitor.cpp b/Core/Tools/src/SamplePrintVisitor.cpp index d1b1a415bdf..a4e93a54996 100644 --- a/Core/Tools/src/SamplePrintVisitor.cpp +++ b/Core/Tools/src/SamplePrintVisitor.cpp @@ -25,7 +25,7 @@ void SamplePrintVisitor::visit(const MultiLayer *sample) { assert(sample); std::cout << "----------------------------------------------" << std::endl; - std::cout << get_indent() << "PrintVisitor_MultiLayer " << sample->getName() + std::cout << get_indent() << "MultiLayer " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; @@ -46,47 +46,33 @@ void SamplePrintVisitor::visit(const MultiLayer *sample) void SamplePrintVisitor::visit(const Layer *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_Layer " << sample->getName() + std::cout << get_indent() << "Layer " << sample->getName() << " " << (sample->getMaterial() ? sample->getMaterial()->getName() : "0_MATERIAL") << " " << sample->getRefractiveIndex() << " " << (*sample->getParameterPool()) << std::endl; -} - - -/* -void SamplePrintVisitor::visit(const LayerDecorator *sample) -{ - assert(sample); - std::cout << get_indent() << "PrintVisitor_LayerDecorator " << sample->getName() - << " " << (*sample->getParameterPool()) - << std::endl; - - goForward(); - - const Layer *layer = sample->getDecoratedLayer(); - layer->accept(this); const IDecoration *decoration = sample->getDecoration(); - decoration->accept(this); - - goBack(); + if(decoration) decoration->accept(this); } -*/ + void SamplePrintVisitor::visit(const LayerInterface *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_LayerInterface " << sample->getName() + std::cout << get_indent() << "LayerInterface " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; + const IRoughness *roughness = sample->getRoughness(); + if(roughness) roughness->accept(this); + } void SamplePrintVisitor::visit(const ParticleDecoration *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_ParticleDecoration " << sample->getName() + std::cout << get_indent() << "ParticleDecoration " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; @@ -107,7 +93,7 @@ void SamplePrintVisitor::visit(const ParticleDecoration *sample) void SamplePrintVisitor::visit(const ParticleInfo *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_ParticleInfo " << sample->getName() + std::cout << get_indent() << "ParticleInfo " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; @@ -122,7 +108,7 @@ void SamplePrintVisitor::visit(const ParticleInfo *sample) void SamplePrintVisitor::visit(const Particle *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_Particle " << sample->getName() + std::cout << get_indent() << "Particle " << sample->getName() << " Index:" << sample->getRefractiveIndex() << std::endl; @@ -137,7 +123,7 @@ void SamplePrintVisitor::visit(const Particle *sample) void SamplePrintVisitor::visit(const ParticleCoreShell* sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_ParticleCoreShell " << + std::cout << get_indent() << "ParticleCoreShell " << sample->getName() << std::endl; goForward(); @@ -157,7 +143,7 @@ void SamplePrintVisitor::visit(const ParticleCoreShell* sample) void SamplePrintVisitor::visit(const MesoCrystal* sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_MesoCrystal " << + std::cout << get_indent() << "MesoCrystal " << sample->getName() << std::endl; goForward(); @@ -175,7 +161,7 @@ void SamplePrintVisitor::visit(const MesoCrystal* sample) void SamplePrintVisitor::visit(const Crystal* sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_Crystal " << + std::cout << get_indent() << "Crystal " << sample->getName() << std::endl; goForward(); @@ -189,7 +175,7 @@ void SamplePrintVisitor::visit(const Crystal* sample) void SamplePrintVisitor::visit(const LatticeBasis* sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_LatticeBasis " << + std::cout << get_indent() << "LatticeBasis " << sample->getName() << std::endl; goForward(); @@ -207,7 +193,7 @@ void SamplePrintVisitor::visit(const LatticeBasis* sample) void SamplePrintVisitor::visit(const IFormFactor *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_IFormFactor " << sample->getName() + std::cout << get_indent() << "IFormFactor " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; @@ -217,7 +203,7 @@ void SamplePrintVisitor::visit(const IFormFactor *sample) void SamplePrintVisitor::visit(const FormFactorFullSphere *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_FormFactorFullSphere " << sample->getName() + std::cout << get_indent() << "FormFactorFullSphere " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } @@ -226,7 +212,7 @@ void SamplePrintVisitor::visit(const FormFactorFullSphere *sample) void SamplePrintVisitor::visit(const FormFactorCylinder *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_FormFactorCylinder " << sample->getName() + std::cout << get_indent() << "FormFactorCylinder " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } @@ -235,7 +221,7 @@ void SamplePrintVisitor::visit(const FormFactorCylinder *sample) void SamplePrintVisitor::visit(const FormFactorPyramid *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_FormFactorPyramid " << sample->getName() + std::cout << get_indent() << "FormFactorPyramid " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } @@ -244,7 +230,7 @@ void SamplePrintVisitor::visit(const FormFactorPyramid *sample) void SamplePrintVisitor::visit(const FormFactorPrism3 *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_FormFactorPrism3 " << sample->getName() + std::cout << get_indent() << "FormFactorPrism3 " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } @@ -253,7 +239,7 @@ void SamplePrintVisitor::visit(const FormFactorPrism3 *sample) void SamplePrintVisitor::visit(const IInterferenceFunction *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_IInterferenceFunction " << sample->getName() + std::cout << get_indent() << "IInterferenceFunction " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } @@ -262,7 +248,7 @@ void SamplePrintVisitor::visit(const IInterferenceFunction *sample) void SamplePrintVisitor::visit(const InterferenceFunction1DParaCrystal *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_InterferenceFunction1DParaCrystal" << sample->getName() + std::cout << get_indent() << "InterferenceFunction1DParaCrystal " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } @@ -270,10 +256,18 @@ void SamplePrintVisitor::visit(const InterferenceFunction1DParaCrystal *sample) void SamplePrintVisitor::visit(const InterferenceFunction2DParaCrystal *sample) { assert(sample); - std::cout << get_indent() << "PrintVisitor_InterferenceFunction2DParaCrystal" << sample->getName() + std::cout << get_indent() << "InterferenceFunction2DParaCrystal " << sample->getName() << " " << (*sample->getParameterPool()) << std::endl; } +void SamplePrintVisitor::visit(const LayerRoughness *sample) +{ + assert(sample); + std::cout << get_indent() << "LayerRoughness " << sample->getName() + << " " << (*sample->getParameterPool()) + << std::endl; +} + diff --git a/Doc/UserManual/Fitting.tex b/Doc/UserManual/Fitting.tex index 2c13c694104..a01ffbbf455 100644 --- a/Doc/UserManual/Fitting.tex +++ b/Doc/UserManual/Fitting.tex @@ -160,7 +160,8 @@ fit_suite.setMinimizer(minimizer) where \Code{<Minimizer name>} and \Code{<algorithm>} can be chosen from the first and -second column of Table~\ref{table:fit_minimizers} respectively. +second column of Table~\ref{table:fit_minimizers} respectively. The list of algorithms +can also be obtained using \Code{MinimizerFactory.printCatalogue()} command. \begin{table}[h] diff --git a/Doc/UserManual/UserManual.pdf b/Doc/UserManual/UserManual.pdf index edee993ceeeaa3b1bdbd0a6573530bc1979dc83d..6811f1cdb46a1dcccb2f6fb2cd49b14bbb8e1a00 100644 GIT binary patch delta 7145 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 delta 7049 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 Dr|f%{ diff --git a/Examples/python/fitting/ex001_SampleParametersIntro/SampleParametersIntro.py b/Examples/python/fitting/ex001_SampleParametersIntro/SampleParametersIntro.py index 96b9bad3e75..0d9780bc909 100644 --- a/Examples/python/fitting/ex001_SampleParametersIntro/SampleParametersIntro.py +++ b/Examples/python/fitting/ex001_SampleParametersIntro/SampleParametersIntro.py @@ -57,6 +57,7 @@ def run_simulations(): sample = get_sample() print "The sample contains following parameters ('name':value)" sample.printParameters() + sample.printSampleTree() simulation = get_simulation() diff --git a/Examples/python/fitting/ex002_FitCylindersAndPrisms/FitCylindersPrisms.py b/Examples/python/fitting/ex002_FitCylindersAndPrisms/FitCylindersPrisms.py index f3a14f856d3..585d8540c4c 100644 --- a/Examples/python/fitting/ex002_FitCylindersAndPrisms/FitCylindersPrisms.py +++ b/Examples/python/fitting/ex002_FitCylindersAndPrisms/FitCylindersPrisms.py @@ -135,10 +135,10 @@ def run_fitting(): fitSuite = FitSuite() fitSuite.addSimulationAndRealData(simulation, real_data)#, chiModule) - MinimizerFactory.print_catalogue() + MinimizerFactory.printCatalogue() # setting fitting minimizer - fitSuite.setMinimizer(MinimizerFactory.createMinimizer("Minuit2","Migrad")) #: Minuit2, Migrad + #fitSuite.setMinimizer(MinimizerFactory.createMinimizer("Minuit2","Migrad")) #: Minuit2, Migrad #fitSuite.setMinimizer(MinimizerFactory.createMinimizer ("Minuit2","Simplex")) #fitSuite.setMinimizer(MinimizerFactory.createMinimizer("Minuit2","Combined")) #fitSuite.setMinimizer(MinimizerFactory.createMinimizer ("Minuit2","Scan")) diff --git a/dev-tools/python-bindings/MakePyCore.py b/dev-tools/python-bindings/MakePyCore.py index 96a1c36075b..f20b8133e34 100644 --- a/dev-tools/python-bindings/MakePyCore.py +++ b/dev-tools/python-bindings/MakePyCore.py @@ -125,8 +125,10 @@ def ManualClassTunings(mb): shared_ptrs = mb.decls( lambda decl: decl.name.startswith( 'shared_ptr<' ) ) shared_ptrs.disable_warnings( messages.W1040 ) # ISample - cl = mb.class_('ISample') # given class is only to teach pyplusplus to templates, but we do not need class itself to be visible in python, excluding it... + cl = mb.class_('ISample') cl.member_function("accept").include(); + cl.member_function("printSampleTree").include(); + # ICompositeSample cl = mb.class_('ICompositeSample') cl.member_functions().exclude() @@ -156,7 +158,7 @@ def ManualClassTunings(mb): cl.member_functions().exclude() cl.member_function("addParticle").include() # - 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 = mb.class_('RealParameterWrapper') cl.member_functions().exclude() cl.member_function("setValue").include() cl.member_function("getValue").include() -- GitLab