Salome HOME
bos #20082: Set reverse edge in GeometricProgression fails V9_6_0a2
authorjfa <jfa@opencascade.com>
Tue, 6 Oct 2020 12:46:44 +0000 (15:46 +0300)
committerjfa <jfa@opencascade.com>
Tue, 6 Oct 2020 12:46:44 +0000 (15:46 +0300)
src/SMESH_SWIG/smesh_algorithm.py

index 8ee3718..e9867dc 100644 (file)
@@ -440,6 +440,18 @@ class Mesh_Algorithm:
         for i in reverseList:
             if isinstance( i, int ):
                 s = geompy.GetSubShape(self.mesh.geom, [i])
+
+                #bos #20082 begin:
+                if s is None and type(self.geom) != geomBuilder.GEOM._objref_GEOM_Object:
+                    # try to get the SHAPERSTUDY engine directly, as GetGen does not work because of
+                    # simplification of access in geomBuilder: omniORB.registerObjref
+                    from SHAPERSTUDY_utils import getEngine
+                    gen = getEngine()
+                    if gen:
+                        aShapeOp = gen.GetIShapesOperations()
+                        s = aShapeOp.GetSubShape(self.mesh.geom, i)
+                #bos #20082 end
+
                 if s.GetShapeType() != geomBuilder.GEOM.EDGE:
                     raise TypeError("Not EDGE index given")
                 resList.append( i )