Salome HOME
22502: [CEA 1070] "Convert to quadratic" does not work if some edges are not set...
authoreap <eap@opencascade.com>
Tue, 4 Mar 2014 12:04:11 +0000 (16:04 +0400)
committereap <eap@opencascade.com>
Tue, 4 Mar 2014 12:04:11 +0000 (16:04 +0400)
 Fix a case of a node on VERTEX not belonging to EDGE the segment of node is on

src/SMESH/SMESH_MesherHelper.cxx

index 98339a18911a2089883a54dd7ef7d19dd9b610ba..ded66ca31447cd9704fe13988619cc7a2f69c033 100644 (file)
@@ -1423,8 +1423,15 @@ const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1,
       return getMediumNodeOnComposedWire(n1,n2,force3d);
     }
     E = TopoDS::Edge(meshDS->IndexToShape( edgeID = pos.first ));
-    u[0] = GetNodeU(E,n1,n2, force3d ? 0 : &uvOK[0]);
-    u[1] = GetNodeU(E,n2,n1, force3d ? 0 : &uvOK[1]);
+    try {
+      u[0] = GetNodeU(E,n1,n2, force3d ? 0 : &uvOK[0]);
+      u[1] = GetNodeU(E,n2,n1, force3d ? 0 : &uvOK[1]);
+    }
+    catch ( Standard_Failure& f )
+    {
+      // issue 22502 / a node is on VERTEX not belonging to E
+      return getMediumNodeOnComposedWire(n1,n2,force3d);
+    }
   }
 
   if ( !force3d & uvOK[0] && uvOK[1] )