From f24982a58fe4a9b0a77cee0136ff0b890c50b4f8 Mon Sep 17 00:00:00 2001 From: Jean-Francois Remacle <jean-francois.remacle@uclouvain.be> Date: Wed, 23 Dec 2009 00:07:57 +0000 Subject: [PATCH] ugly fix for bindings on MAC ... yet it works --- Geo/GModel.cpp | 7 ++++++- Numeric/fullMatrix.cpp | 9 ++++++++- Solver/dgConservationLaw.cpp | 2 -- Solver/dgConservationLawAdvection.cpp | 7 ++++++- Solver/dgConservationLawPerfectGas.cpp | 7 ++++++- Solver/dgConservationLawShallowWater2d.cpp | 6 +++++- Solver/dgConservationLawWaveEquation.cpp | 6 +++++- Solver/dgSlopeLimiter.cpp | 4 ++-- Solver/dgSystemOfEquations.cpp | 9 +++++++-- Solver/function.cpp | 6 +++++- 10 files changed, 50 insertions(+), 13 deletions(-) diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 3b2617342a..1f16e39ba2 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -1380,12 +1380,17 @@ void GModel::save(std::string fileName){ #ifdef HAVE_LUA #include "Bindings.h" +static GModel *myConstructorPtr(){ + return new GModel; +} void GModel::registerBindings(binding *b){ classBinding *cb = b->addClass<GModel>("GModel"); methodBinding *cm; cm = cb->addMethod("mesh",&GModel::mesh); cm = cb->addMethod("load",&GModel::load); cm = cb->addMethod("save",&GModel::save); - cb->setConstructor(constructorPtr<GModel>); + // cb->setConstructor(constructorPtr<GModel>); + // FIXME AGAIN !!!!!!!! JF + cb->setConstructor(myConstructorPtr); } #endif diff --git a/Numeric/fullMatrix.cpp b/Numeric/fullMatrix.cpp index d15f985431..25c4bc3af1 100644 --- a/Numeric/fullMatrix.cpp +++ b/Numeric/fullMatrix.cpp @@ -292,6 +292,12 @@ bool fullMatrix<double>::svd(fullMatrix<double> &V, fullVector<double> &S) #endif #include "Bindings.h" + +// I DID FIX IT FOR NOW ... SHOULD BE BETTER -- JF +static fullMatrix<double> *myConstructorPtr(int a0, int a1){ + return new fullMatrix<double>(a0,a1); +} + template<> void fullMatrix<double>::registerBindings(binding *b){ classBinding *cb = b->addClass<fullMatrix<double> >("fullMatrix"); @@ -302,5 +308,6 @@ void fullMatrix<double>::registerBindings(binding *b){ cb->addMethod("set",&fullMatrix<double>::set); cb->addMethod("gemm",&fullMatrix<double>::gemm); // FIXME DOES NOT COMPILE ON MAC - cb->setConstructor(constructorPtr<fullMatrix<double>,int,int>); + cb->setConstructor(myConstructorPtr); + // cb->setConstructor(constructorPtr<fullMatrix<double>,int,int>); } diff --git a/Solver/dgConservationLaw.cpp b/Solver/dgConservationLaw.cpp index fce315c2a3..d66c9dfe82 100644 --- a/Solver/dgConservationLaw.cpp +++ b/Solver/dgConservationLaw.cpp @@ -71,8 +71,6 @@ void dgConservationLaw::registerBindings(binding *b){ cb->addMethod("newOutsideValueBoundary",&dgConservationLaw::newOutsideValueBoundary); } - - void dgBoundaryCondition::registerBindings(binding *b){ classBinding *cb = b->addClass<dgBoundaryCondition>("dgBoundaryCondition"); } diff --git a/Solver/dgConservationLawAdvection.cpp b/Solver/dgConservationLawAdvection.cpp index a8b02efa19..adedf3a207 100644 --- a/Solver/dgConservationLawAdvection.cpp +++ b/Solver/dgConservationLawAdvection.cpp @@ -95,8 +95,13 @@ dgConservationLawAdvection::dgConservationLawAdvection(std::string vFunctionName #include "Bindings.h" +static dgConservationLawAdvection *myConstructorPtr(std::string a,std::string b){ + return new dgConservationLawAdvection(a,b); +} + void dgConservationLawAdvectionRegisterBindings (binding *b){ classBinding *cb = b->addClass<dgConservationLawAdvection>("dgConservationLawAdvection"); - cb->setConstructor(constructorPtr<dgConservationLawAdvection,std::string,std::string>); + // cb->setConstructor(constructorPtr<dgConservationLawAdvection,std::string,std::string>); + cb->setConstructor(myConstructorPtr); cb->setParentClass<dgConservationLaw>(); } diff --git a/Solver/dgConservationLawPerfectGas.cpp b/Solver/dgConservationLawPerfectGas.cpp index 5a21432eea..756a397c54 100644 --- a/Solver/dgConservationLawPerfectGas.cpp +++ b/Solver/dgConservationLawPerfectGas.cpp @@ -312,10 +312,15 @@ class dgBoundaryConditionPerfectGasLaw2dFreeStream : public dgBoundaryCondition #include "Bindings.h" +static dgPerfectGasLaw2d *myConstructorPtr(){ + return new dgPerfectGasLaw2d ; +} + void dgPerfectGasLaw2dRegisterBindings (binding *b){ classBinding *cb = b->addClass<dgPerfectGasLaw2d>("dgPerfectGasLaw2d"); methodBinding *cm; cb->addMethod("newWallBoundary",&dgPerfectGasLaw2d::newWallBoundary); - cb->setConstructor(constructorPtr<dgPerfectGasLaw2d>); + // cb->setConstructor(constructorPtr<dgPerfectGasLaw2d>); + cb->setConstructor(myConstructorPtr); cb->setParentClass<dgConservationLaw>(); } diff --git a/Solver/dgConservationLawShallowWater2d.cpp b/Solver/dgConservationLawShallowWater2d.cpp index de798d27b0..aefa83bed3 100644 --- a/Solver/dgConservationLawShallowWater2d.cpp +++ b/Solver/dgConservationLawShallowWater2d.cpp @@ -141,10 +141,14 @@ dgBoundaryCondition *dgConservationLawShallowWater2d::newBoundaryWall(){ } #include "Bindings.h" +static dgConservationLawShallowWater2d *myConstructorPtr(){ + return new dgConservationLawShallowWater2d; +} void dgConservationLawShallowWater2dRegisterBindings (binding *b){ classBinding *cb = b->addClass<dgConservationLawShallowWater2d>("dgConservationLawShallowWater2d"); methodBinding *cm; cb->addMethod("newBoundaryWall",&dgConservationLawShallowWater2d::newBoundaryWall); - cb->setConstructor(constructorPtr<dgConservationLawShallowWater2d>); + // cb->setConstructor(constructorPtr<dgConservationLawShallowWater2d>); + cb->setConstructor(myConstructorPtr); cb->setParentClass<dgConservationLaw>(); } diff --git a/Solver/dgConservationLawWaveEquation.cpp b/Solver/dgConservationLawWaveEquation.cpp index 583b79c7e0..cf9e894a32 100644 --- a/Solver/dgConservationLawWaveEquation.cpp +++ b/Solver/dgConservationLawWaveEquation.cpp @@ -136,10 +136,14 @@ dgBoundaryCondition *dgConservationLawWaveEquation::newBoundaryWall()const{ } #include "Bindings.h" +static dgConservationLawWaveEquation *myConstructorPtr(int d){ + return new dgConservationLawWaveEquation (d); +} void dgConservationLawWaveEquationRegisterBindings(binding *b){ classBinding *cb = b->addClass<dgConservationLawWaveEquation> ("dgConservationLawWaveEquation"); methodBinding *cm; cb->addMethod("newBoundaryWall",&dgConservationLawWaveEquation::newBoundaryWall); - cb->setConstructor(constructorPtr<dgConservationLawWaveEquation,int>); + // cb->setConstructor(constructorPtr<dgConservationLawWaveEquation,int>); + cb->setConstructor(myConstructorPtr); cb->setParentClass<dgConservationLaw>(); } diff --git a/Solver/dgSlopeLimiter.cpp b/Solver/dgSlopeLimiter.cpp index 379172738e..b0b11effaf 100644 --- a/Solver/dgSlopeLimiter.cpp +++ b/Solver/dgSlopeLimiter.cpp @@ -5,8 +5,8 @@ //---------------------------------------------------------------------------------- bool dgSlopeLimiter::apply ( dgDofContainer &solution, - std::vector<dgGroupOfElements*> &eGroups, - std::vector<dgGroupOfFaces*> &fGroups) + std::vector<dgGroupOfElements*> &eGroups, + std::vector<dgGroupOfFaces*> &fGroups) { //WARNING FOR ONLY 1 GROUP OF FACES diff --git a/Solver/dgSystemOfEquations.cpp b/Solver/dgSystemOfEquations.cpp index df6070965a..60983b9eac 100644 --- a/Solver/dgSystemOfEquations.cpp +++ b/Solver/dgSystemOfEquations.cpp @@ -38,14 +38,19 @@ void dgSystemOfEquations::setConservationLaw (dgConservationLaw *law){ } #include "Bindings.h" + +static dgSystemOfEquations *myConstructorPtr(GModel* gm){ + return new dgSystemOfEquations(gm); +} + void dgSystemOfEquations::registerBindings(binding *b){ classBinding *cb = b->addClass<dgSystemOfEquations>("dgSystemOfEquations"); cb->setDescription("a class to rule them all :-) -- bad description, this class will be removed anyway"); - cb->setConstructor(constructorPtr<dgSystemOfEquations,GModel*>); + cb->setConstructor(myConstructorPtr); methodBinding *cm; cm = cb->addMethod("setConservationLaw",&dgSystemOfEquations::setConservationLaw); cm->setArgNames("law",NULL); - cm->setDescription("set the conservation law this system solve"); + cm->setDescription("set the conservation law this system solves"); cm = cb->addMethod("setup",&dgSystemOfEquations::setup); cm->setDescription("allocate and init internal stuff, call this function after setOrder and setLaw and before anything else on this instance"); cm = cb->addMethod("exportSolution",&dgSystemOfEquations::exportSolution); diff --git a/Solver/function.cpp b/Solver/function.cpp index 209fddc2a2..3a1189d9ab 100644 --- a/Solver/function.cpp +++ b/Solver/function.cpp @@ -147,11 +147,15 @@ void function::registerDefaultFunctions() function::add("XYZ", new functionXYZ); } +static functionConstant *myConstructorPtr(fullMatrix<double>*m){ + return new functionConstant(m); +} void function::registerBindings(binding *b){ classBinding *cb = b->addClass<function>("function"); cb->addMethod("getName",&function::getName); cb = b->addClass<functionConstant>("functionConstant"); - cb->setConstructor(constructorPtr<functionConstant,fullMatrix<double>*>); + cb->setConstructor(myConstructorPtr); + // cb->setConstructor(constructorPtr<functionConstant,fullMatrix<double>*>); cb->setParentClass<function>(); } -- GitLab