{
if ( SMESH_subMesh *sm = GetSubMeshContaining( GetShapeToMesh() ) )
{
+ sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
+ sm->ComputeSubMeshStateEngine( SMESH_subMesh::CLEAN );
sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
- sm->ComputeStateEngine( SMESH_subMesh::CLEAN ); // for event listeners (issue 0020918)
-
- SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/false,
- /*complexShapeFirst=*/true);
- while ( smIt->more() )
- {
- sm = smIt->next();
- sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
- }
+ sm->ComputeSubMeshStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
}
}
_isModified = false;
std::string medfilename(file);
medfilename += ".med";
std::string cmd;
-#ifdef WNT
+#ifdef WIN32
cmd = "%PYTHONBIN% ";
#else
cmd = "python ";
cmd += "\"";
system(cmd.c_str());
ExportMED(medfilename.c_str(), theMeshName, theAutoGroups, 1);
-#ifdef WNT
+#ifdef WIN32
cmd = "%PYTHONBIN% ";
#else
cmd = "python ";
cmd += "from medutilities import convert ; convert(r'" + medfilename + "', 'MED', 'GIBI', 1, r'" + file + "')";
cmd += "\"";
system(cmd.c_str());
-#ifdef WNT
+#ifdef WIN32
cmd = "%PYTHONBIN% ";
#else
cmd = "python ";
algoDoneCost += smToCompute[i]->GetComputeCost();
currentSubIds.Add( smToCompute[i]->GetId() );
}
- double rate = algo->GetProgress();
+ double rate = 0;
+ try
+ {
+ OCC_CATCH_SIGNALS;
+ rate = algo->GetProgress();
+ }
+ catch (...) {
+#ifdef _DEBUG_
+ cerr << "Exception in " << algo->GetName() << "::GetProgress()" << endl;
+#endif
+ }
if ( 0. < rate && rate < 1.001 )
{
computedCost += rate * ( algoDoneCost + algoNotDoneCost );