mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-18 12:40:33 +05:00
Generalize "Cancel Compute" mechanism to be able to report
"Computation canceled" instead of "Algorithm failed" as failure reason + volatile bool _computeCanceled; //!< is set to True while computing to stop it
This commit is contained in:
parent
0a45cd504a
commit
7c5dc4f006
@ -682,11 +682,17 @@ bool SMESH_Algo::Compute(SMESH_Mesh & /*aMesh*/, SMESH_MesherHelper* /*aHelper*/
|
||||
return error( COMPERR_BAD_INPUT_MESH, "Mesh built on shape expected");
|
||||
}
|
||||
|
||||
#ifdef WITH_SMESH_CANCEL_COMPUTE
|
||||
//=======================================================================
|
||||
//function : CancelCompute
|
||||
//purpose : Sets _computeCanceled to true. It's usage depends on
|
||||
// * implementation of a particular mesher.
|
||||
//=======================================================================
|
||||
|
||||
void SMESH_Algo::CancelCompute()
|
||||
{
|
||||
_computeCanceled = true;
|
||||
_error = COMPERR_CANCELED;
|
||||
}
|
||||
#endif
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
@ -748,6 +754,8 @@ void SMESH_Algo::InitComputeError()
|
||||
if ( (*elem)->GetID() < 1 )
|
||||
delete *elem;
|
||||
_badInputElements.clear();
|
||||
|
||||
_computeCanceled = false;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
|
@ -134,9 +134,11 @@ public:
|
||||
*/
|
||||
virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper);
|
||||
|
||||
#ifdef WITH_SMESH_CANCEL_COMPUTE
|
||||
/*!
|
||||
* \brief Sets _computeCanceled to true. It's usage depends on
|
||||
* implementation of a particular mesher.
|
||||
*/
|
||||
virtual void CancelCompute();
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* \brief evaluates size of prospective mesh on a shape
|
||||
@ -378,6 +380,8 @@ protected:
|
||||
int _error; //!< SMESH_ComputeErrorName or anything algo specific
|
||||
std::string _comment; //!< any text explaining what is wrong in Compute()
|
||||
std::list<const SMDS_MeshElement*> _badInputElements; //!< to explain COMPERR_BAD_INPUT_MESH
|
||||
|
||||
volatile bool _computeCanceled; //!< is set to True while computing to stop it
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user