X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2FsmeshDC.py;h=aea2f0569c9b38a9bf98cddf7cd36a18c169bbb0;hp=fce525a9ed4e097ecec6300e86a106e3a2950274;hb=0a33c4aa9857b20dd724e8d1ac2cdbea387b8e37;hpb=8407274e7b3575f269432f68d928067aad419bc0 diff --git a/src/SMESH_SWIG/smeshDC.py b/src/SMESH_SWIG/smeshDC.py index fce525a9e..aea2f0569 100644 --- a/src/SMESH_SWIG/smeshDC.py +++ b/src/SMESH_SWIG/smeshDC.py @@ -306,7 +306,7 @@ class smeshDC(SMESH._objref_SMESH_Gen): if CritType in [FT_BelongToGeom, FT_BelongToPlane, FT_BelongToGenSurface, FT_BelongToCylinder, FT_LyingOnGeom]: # Check treshold - if isinstance(aTreshold, self.geompyD.GEOM._objref_GEOM_Object): + if isinstance(aTreshold, geompyDC.GEOM._objref_GEOM_Object): aCriterion.ThresholdStr = GetName(aTreshold) aCriterion.ThresholdID = salome.ObjectToID(aTreshold) else: @@ -411,13 +411,16 @@ omniORB.registerObjref(SMESH._objref_SMESH_Gen._NP_RepositoryId, smeshDC) class Mesh_Algorithm: # @class Mesh_Algorithm # @brief Class Mesh_Algorithm - def __init__(self,smesh): - self.smesh=smesh - self.mesh = 0 - self.geom = 0 - self.subm = 0 - self.algo = 0 - hypos = {} + + hypos = {} + + #def __init__(self,smesh): + # self.smesh=smesh + def __init__(self): + self.mesh = None + self.geom = None + self.subm = None + self.algo = None def FindHypothesis(self,hypname, args): key = "%s %s %s" % (self.__class__.__name__, hypname, args) @@ -457,7 +460,7 @@ class Mesh_Algorithm: def Create(self, mesh, geom, hypo, so="libStdMeshersEngine.so"): if geom is None: raise RuntimeError, "Attemp to create " + hypo + " algoritm on None shape" - algo = self.mesh.smeshpyD.CreateHypothesis(hypo, so) + algo = mesh.smeshpyD.CreateHypothesis(hypo, so) self.Assign(algo, mesh, geom) return self.algo @@ -479,7 +482,7 @@ class Mesh_Algorithm: self.algo = algo status = mesh.mesh.AddHypothesis(self.geom, self.algo) - TreatHypoStatus( status, algo.GetName(), GetName(algo), True ) + TreatHypoStatus( status, algo.GetName(), GetName(self.geom), True ) ## Private method def Hypothesis(self, hyp, args=[], so="libStdMeshersEngine.so", UseExisting=0): @@ -505,7 +508,7 @@ class Mesh_Algorithm: SetName(hypo, hyp + a) pass status = self.mesh.mesh.AddHypothesis(self.geom, hypo) - TreatHypoStatus( status, hyp, GetName(hypo), 0 ) + TreatHypoStatus( status, GetName(hypo), GetName(self.geom), 0 ) return hypo @@ -521,6 +524,8 @@ class Mesh_Segment(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Segment.algo: Mesh_Segment.algo = self.Create(mesh, geom, "Regular_1D") else: @@ -606,7 +611,7 @@ class Mesh_Segment(Mesh_Algorithm): store_geom = self.geom if vertex: if type(vertex) is types.IntType: - vertex = self.mesh.geompyD.SubShapeAllSorted(self.geom,self.mesh.geompyD.ShapeType["VERTEX"])[vertex] + vertex = self.mesh.geompyD.SubShapeAllSorted(self.geom, geompyDC.ShapeType["VERTEX"])[vertex] pass self.geom = vertex pass @@ -694,6 +699,8 @@ class Mesh_Triangle(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, algoType, geom=0): + Mesh_Algorithm.__init__(self) + if algoType == MEFISTO: if not Mesh_Triangle.algoMEF: Mesh_Triangle.algoMEF = self.Create(mesh, geom, "MEFISTO_2D") @@ -854,6 +861,8 @@ class Mesh_Quadrangle(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Quadrangle.algo: Mesh_Quadrangle.algo = self.Create(mesh, geom, "Quadrangle_2D") else: @@ -884,6 +893,8 @@ class Mesh_Tetrahedron(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, algoType, geom=0): + Mesh_Algorithm.__init__(self) + if algoType == NETGEN: if not Mesh_Tetrahedron.algoNET: Mesh_Tetrahedron.algoNET = self.Create(mesh, geom, "NETGEN_3D", "libNETGENEngine.so") @@ -988,6 +999,8 @@ class Mesh_Hexahedron(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Hexahedron.algo: Mesh_Hexahedron.algo = self.Create(mesh, geom, "Hexa_3D") else: @@ -1013,6 +1026,8 @@ class Mesh_Netgen(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, is3D, geom=0): + Mesh_Algorithm.__init__(self) + if noNETGENPlugin: print "Warning: NETGENPlugin module has not been imported." @@ -1055,6 +1070,8 @@ class Mesh_Projection1D(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Projection1D.algo: Mesh_Projection1D.algo = self.Create(mesh, geom, "Projection_1D") else: @@ -1093,6 +1110,8 @@ class Mesh_Projection2D(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Projection2D.algo: Mesh_Projection2D.algo = self.Create(mesh, geom, "Projection_2D") else: @@ -1137,6 +1156,8 @@ class Mesh_Projection3D(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Projection3D.algo: Mesh_Projection3D.algo = self.Create(mesh, geom, "Projection_3D") else: @@ -1183,6 +1204,8 @@ class Mesh_Prism3D(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_Prism3D.algo: Mesh_Prism3D.algo = self.Create(mesh, geom, "Prism_3D") else: @@ -1201,6 +1224,8 @@ class Mesh_RadialPrism3D(Mesh_Algorithm): ## Private constructor. def __init__(self, mesh, geom=0): + Mesh_Algorithm.__init__(self) + if not Mesh_RadialPrism3D.algo: Mesh_RadialPrism3D.algo = self.Create(mesh, geom, "RadialPrism_3D") else: @@ -1525,22 +1550,25 @@ class Mesh: allReasons = "" for err in errors: if err.isGlobalAlgo: - glob = " global " + glob = "global" else: - glob = " local " + glob = "local" pass - dim = str(err.algoDim) - if err.name == MISSING_ALGO: - reason = glob + dim + "D algorithm is missing" - elif err.name == MISSING_HYPO: - name = '"' + err.algoName + '"' - reason = glob + dim + "D algorithm " + name + " misses " + dim + "D hypothesis" - elif err.name == NOT_CONFORM_MESH: - reason = "Global \"Not Conform mesh allowed\" hypothesis is missing" - elif err.name == BAD_PARAM_VALUE: - name = '"' + err.algoName + '"' - reason = "Hypothesis of" + glob + dim + "D algorithm " + name +\ - " has a bad parameter value" + dim = err.algoDim + name = err.algoName + if len(name) == 0: + reason = '%s %sD algorithm is missing' % (glob, dim) + elif err.state == HYP_MISSING: + reason = ('%s %sD algorithm "%s" misses %sD hypothesis' + % (glob, dim, name, dim)) + elif err.state == HYP_NOTCONFORM: + reason = 'Global "Not Conform mesh allowed" hypothesis is missing' + elif err.state == HYP_BAD_PARAMETER: + reason = ('Hypothesis of %s %sD algorithm "%s" has a bad parameter value' + % ( glob, dim, name )) + elif err.state == HYP_BAD_GEOMETRY: + reason = ('%s %sD algorithm "%s" is assigned to geometry mismatching' + 'its expectation' % ( glob, dim, name )) else: reason = "For unknown reason."+\ " Revise Mesh.Compute() implementation in smesh.py!" @@ -1868,6 +1896,12 @@ class Mesh: def ClearLog(self): self.mesh.ClearLog() + def SetAutoColor(self, color): + self.mesh.SetAutoColor(color) + + def GetAutoColor(self): + return self.mesh.GetAutoColor() + ## Get the internal Id def GetId(self): return self.mesh.GetId()