Salome HOME
[bos #20282] EDF 22320 - general compute fails
[modules/smesh.git] / src / SMESH_I / SMESH_MeshEditor_i.cxx
index 5ae3c6a6e0cef61d72acfa2773dd632497943ff9..3330950a2acf244f0ebda8d92d64dfc560b91a93 100644 (file)
@@ -1069,6 +1069,12 @@ CORBA::Long SMESH_MeshEditor_i::AddPolygonalFace (const SMESH::long_array & IDsO
     if ( ! ( nodes[i] = getMeshDS()->FindNode( IDsOfNodes[i] )))
       return 0;
 
+  if ( NbNodes == 0 )
+  {
+    INFOS("Polygon without nodes is forbidden");
+    return 0;
+  }
+
   const SMDS_MeshElement* elem = getMeshDS()->AddPolygonalFace(nodes);
 
   // Update Python script
@@ -1098,6 +1104,12 @@ CORBA::Long SMESH_MeshEditor_i::AddQuadPolygonalFace (const SMESH::long_array &
   for (int i = 0; i < NbNodes; i++)
     nodes[i] = getMeshDS()->FindNode(IDsOfNodes[i]);
 
+  if ( NbNodes == 0 )
+  {
+    INFOS("Polygon without nodes is forbidden");
+    return 0;
+  }
+
   const SMDS_MeshElement* elem = getMeshDS()->AddQuadPolygonalFace(nodes);
 
   // Update Python script
@@ -1954,6 +1966,8 @@ void SMESH_MeshEditor_i::QuadTo4Tri (SMESH::SMESH_IDSource_ptr theObject)
   getEditor().QuadTo4Tri( faces );
   TPythonDump() << this << ".QuadTo4Tri( " << theObject << " )";
 
+  declareMeshModified( /*isReComputeSafe=*/false );
+
   SMESH_CATCH( SMESH::throwCorbaException );
 }