From f68bcab02263e8a74411841b6caac6705e0ff417 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 7 Mar 2012 15:06:37 +0000 Subject: [PATCH] 0021308: Remove hard-coded dependency of the external mesh plugins from the SMESH module Bind methods creating algorithms (defined by plugins) to the class Mesh --- src/SMESH_SWIG/smesh.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/SMESH_SWIG/smesh.py b/src/SMESH_SWIG/smesh.py index 8179247d6..2a9dcfa3d 100644 --- a/src/SMESH_SWIG/smesh.py +++ b/src/SMESH_SWIG/smesh.py @@ -36,12 +36,30 @@ import geompy import smeshDC from smeshDC import * +# get instance of class smeshDC smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH") smesh.init_smesh(salome.myStudy,geompy.geom) -# Export the methods of smeshD +# load plugins +from smeshDC import Mesh, algoCreator +for pluginName in os.environ["SMESH_MeshersList"].split(":"): + + pluginName += "DC" + exec("from %s import *" % pluginName ) + exec("import %s" % pluginName ) + plugin = eval(pluginName) + + # add methods creating algorithms to Mesh + for k in dir(plugin): + if k[0] == '_':continue + algo = getattr(plugin,k) + if type( algo ).__name__ == 'classobj' and hasattr( algo, "meshMethod"): + if not hasattr( Mesh, algo.meshMethod ): + setattr( Mesh, algo.meshMethod, algoCreator()) + getattr( Mesh, algo.meshMethod ).add( algo ) + +# Export the methods of smeshDC for k in dir(smesh): if k[0] == '_':continue globals()[k]=getattr(smesh,k) del k - -- 2.39.2