]> SALOME platform Git repositories - plugins/netgenplugin.git/commitdiff
Salome HOME
Protection before invalid hypothesises for "Evaluate" operation.
authorskl <skl@opencascade.com>
Thu, 6 Aug 2009 12:46:03 +0000 (12:46 +0000)
committerskl <skl@opencascade.com>
Thu, 6 Aug 2009 12:46:03 +0000 (12:46 +0000)
src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx
src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx

index 1bc4ec5975b978dd28709965065e78f0eba63c80..f2ee367e5d91ffea9aacf8a50a270d87fcc5c246 100644 (file)
@@ -471,6 +471,12 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Evaluate(SMESH_Mesh& aMesh,
     tmpMap.Add(E);
     SMESH_subMesh *aSubMesh = aMesh.GetSubMesh(exp.Current());
     MapShapeNbElemsItr anIt = aResMap.find(aSubMesh);
+    if( anIt==aResMap.end() ) {
+      SMESH_subMesh *sm = aMesh.GetSubMesh(F);
+      SMESH_ComputeErrorPtr& smError = sm->GetComputeError();
+      smError.reset( new SMESH_ComputeError(COMPERR_ALGO_FAILED,"Submesh can not be evaluated",this));
+      return false;
+    }
     std::vector<int> aVec = (*anIt).second;
     nb0d += aVec[0];
     nb1d += Max(aVec[1],aVec[2]);
index 751504976ed3bb5be1e348a53bcc11ca981a83ea..33292b48602369f17d03f4b6254e2ff45fc06040 100644 (file)
@@ -657,6 +657,11 @@ bool NETGENPlugin_NETGEN_3D::Evaluate(SMESH_Mesh& aMesh,
     TopoDS_Face F = TopoDS::Face( exp.Current() );
     SMESH_subMesh *sm = aMesh.GetSubMesh(F);
     MapShapeNbElemsItr anIt = aResMap.find(sm);
+    if( anIt==aResMap.end() ) {
+      SMESH_ComputeErrorPtr& smError = sm->GetComputeError();
+      smError.reset( new SMESH_ComputeError(COMPERR_ALGO_FAILED,"Submesh can not be evaluated",this));
+      return false;
+    }
     std::vector<int> aVec = (*anIt).second;
     nbtri += Max(aVec[3],aVec[4]);
     nbqua += Max(aVec[5],aVec[6]);