Salome HOME
PAL16202,16203 (Propagation 1D on edges group)
[modules/smesh.git] / src / SMESH_SWIG / smeshDC.py
index fce525a9ed4e097ecec6300e86a106e3a2950274..aea2f0569c9b38a9bf98cddf7cd36a18c169bbb0 100644 (file)
@@ -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()