#include <TopTools_MapOfShape.hxx>
#include <TopoDS_Iterator.hxx>
+#include "SMESH_TryCatch.hxx" // include after OCCT headers!
+
#include "Utils_ExceptHandlers.hxx"
#include <boost/thread/thread.hpp>
{
if ( SMESH_subMesh *sm = GetSubMeshContaining( GetShapeToMesh() ) )
{
- SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/true,
- /*complexShapeFirst=*/true);
- while ( smIt->more() )
- {
- sm = smIt->next();
- sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
- }
+ sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
+ sm->ComputeSubMeshStateEngine( SMESH_subMesh::CLEAN );
+ sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
+ sm->ComputeSubMeshStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
}
}
_isModified = false;
bool theAutoDimension)
throw(SALOME_Exception)
{
- Unexpect aCatch(SalomeException);
+ SMESH_TRY;
DriverMED_W_SMESHDS_Mesh myWriter;
myWriter.SetFile ( file, MED::EVersion(theVersion) );
}
// Perform export
myWriter.Perform();
+
+ SMESH_CATCH( SMESH::throwSalomeEx );
}
//================================================================================
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 );