mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-13 18:20:34 +05:00
Compute Progress bar
+ virtual double GetProgress() const; + double GetProgressByTic() const; + int& GetComputeCost() { return _computeCost; } + int _computeCost; //!< "compute cost" of shapes being Compute()d + int _progressTic; //!< counter of calls from SMESH_Mesh::GetComputeProgress() + double _progress; //!< progress of Compute() [0.,1.]
This commit is contained in:
parent
fc8ad974ab
commit
fad96c2870
@ -175,7 +175,7 @@ const SMESH_Algo::Features& SMESH_Algo::GetFeatures( const std::string& algoType
|
||||
SMESH_Algo::SMESH_Algo (int hypId, int studyId, SMESH_Gen * gen)
|
||||
: SMESH_Hypothesis(hypId, studyId, gen)
|
||||
{
|
||||
gen->_mapAlgo[hypId] = this;
|
||||
//gen->_mapAlgo[hypId] = this;
|
||||
|
||||
_onlyUnaryInput = _requireDiscreteBoundary = _requireShape = true;
|
||||
_quadraticMesh = _supportSubmeshes = false;
|
||||
@ -205,28 +205,28 @@ SMESH_0D_Algo::SMESH_0D_Algo(int hypId, int studyId, SMESH_Gen* gen)
|
||||
{
|
||||
_shapeType = (1 << TopAbs_VERTEX);
|
||||
_type = ALGO_0D;
|
||||
gen->_map0D_Algo[hypId] = this;
|
||||
//gen->_map0D_Algo[hypId] = this;
|
||||
}
|
||||
SMESH_1D_Algo::SMESH_1D_Algo(int hypId, int studyId, SMESH_Gen* gen)
|
||||
: SMESH_Algo(hypId, studyId, gen)
|
||||
{
|
||||
_shapeType = (1 << TopAbs_EDGE);
|
||||
_type = ALGO_1D;
|
||||
gen->_map1D_Algo[hypId] = this;
|
||||
//gen->_map1D_Algo[hypId] = this;
|
||||
}
|
||||
SMESH_2D_Algo::SMESH_2D_Algo(int hypId, int studyId, SMESH_Gen* gen)
|
||||
: SMESH_Algo(hypId, studyId, gen)
|
||||
{
|
||||
_shapeType = (1 << TopAbs_FACE);
|
||||
_type = ALGO_2D;
|
||||
gen->_map2D_Algo[hypId] = this;
|
||||
//gen->_map2D_Algo[hypId] = this;
|
||||
}
|
||||
SMESH_3D_Algo::SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen)
|
||||
: SMESH_Algo(hypId, studyId, gen)
|
||||
{
|
||||
_shapeType = (1 << TopAbs_SOLID);
|
||||
_type = ALGO_3D;
|
||||
gen->_map3D_Algo[hypId] = this;
|
||||
//gen->_map3D_Algo[hypId] = this;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
@ -681,6 +681,17 @@ void SMESH_Algo::CancelCompute()
|
||||
_error = COMPERR_CANCELED;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*
|
||||
* If possible, returns progress of computation [0.,1.]
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
double SMESH_Algo::GetProgress() const
|
||||
{
|
||||
return _progress;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief store error and comment and then return ( error == COMPERR_OK )
|
||||
@ -728,7 +739,7 @@ SMESH_ComputeErrorPtr SMESH_Algo::GetComputeError() const
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief initialize compute error
|
||||
* \brief initialize compute error before call of Compute()
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
@ -743,6 +754,23 @@ void SMESH_Algo::InitComputeError()
|
||||
_badInputElements.clear();
|
||||
|
||||
_computeCanceled = false;
|
||||
_computeCost = 1;
|
||||
_progressTic = 0;
|
||||
_progress = 0.;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Return compute progress by nb of calls of this method
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
double SMESH_Algo::GetProgressByTic() const
|
||||
{
|
||||
const_cast<SMESH_Algo*>( this )->_progressTic++;
|
||||
double x = 5 * _progressTic;
|
||||
x = ( x < _computeCost ) ? ( x / _computeCost ) : 1.;
|
||||
return 0.9 * sin( x * M_PI / 2 );
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
|
@ -169,6 +169,11 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis
|
||||
*/
|
||||
virtual void CancelCompute();
|
||||
|
||||
/*!
|
||||
* \brief If possible, returns progress of computation [0.,1.]
|
||||
*/
|
||||
virtual double GetProgress() const;
|
||||
|
||||
/*!
|
||||
* \brief evaluates size of prospective mesh on a shape
|
||||
* \param aMesh - the mesh
|
||||
@ -224,14 +229,23 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis
|
||||
*/
|
||||
virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
|
||||
virtual bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0);
|
||||
|
||||
/*!
|
||||
* \brief return compute error
|
||||
*/
|
||||
SMESH_ComputeErrorPtr GetComputeError() const;
|
||||
/*!
|
||||
* \brief initialize compute error
|
||||
* \brief initialize compute error before call of Compute()
|
||||
*/
|
||||
void InitComputeError();
|
||||
/*!
|
||||
* \brief Return compute progress by nb of calls of this method
|
||||
*/
|
||||
double GetProgressByTic() const;
|
||||
/*!
|
||||
* Return a storage of "compute cost" of shapes being Compute()d.
|
||||
*/
|
||||
int& GetComputeCost() { return _computeCost; }
|
||||
|
||||
public:
|
||||
// ==================================================================
|
||||
@ -407,8 +421,12 @@ protected:
|
||||
std::list<const SMDS_MeshElement*> _badInputElements; //!< to explain COMPERR_BAD_INPUT_MESH
|
||||
|
||||
volatile bool _computeCanceled; //!< is set to True while computing to stop it
|
||||
int _computeCost; //!< "compute cost" of shapes being Compute()d
|
||||
int _progressTic; //!< counter of calls from SMESH_Mesh::GetComputeProgress()
|
||||
double _progress; //!< progress of Compute() [0.,1.]
|
||||
};
|
||||
|
||||
|
||||
class SMESH_EXPORT SMESH_0D_Algo: public SMESH_Algo
|
||||
{
|
||||
public:
|
||||
|
Loading…
Reference in New Issue
Block a user