From: eap Date: Tue, 23 Jul 2013 12:52:05 +0000 (+0000) Subject: Progress bar X-Git-Tag: V7_3_0a1~39 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=72ea55dd0235e587a5cd551a835c14ebefdab98e;p=plugins%2Fnetgenplugin.git Progress bar + virtual double GetProgress() const; --- diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.cxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.cxx index 1187fe2..d6d1a27 100644 --- a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.cxx +++ b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.cxx @@ -125,24 +125,38 @@ bool NETGENPlugin_NETGEN_2D::CheckHypothesis (SMESH_Mesh& aMesh, bool NETGENPlugin_NETGEN_2D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape) { -#ifdef WITH_SMESH_CANCEL_COMPUTE netgen::multithread.terminate = 0; -#endif NETGENPlugin_Mesher mesher(&aMesh, aShape, /*is3D = */false); mesher.SetParameters(dynamic_cast(_hypothesis)); mesher.SetParameters(dynamic_cast(_hypothesis)); mesher.SetViscousLayers2DAssigned( _isViscousLayers2D ); + mesher.SetSelfPointer( &_mesher ); return mesher.Compute(); } -#ifdef WITH_SMESH_CANCEL_COMPUTE +//============================================================================= +/*! + * Terminate Compute() + */ +//============================================================================= + void NETGENPlugin_NETGEN_2D::CancelCompute() { SMESH_Algo::CancelCompute(); netgen::multithread.terminate = 1; } -#endif + +//================================================================================ +/*! + * \brief Return progress of Compute() [0.,1] + */ +//================================================================================ + +double NETGENPlugin_NETGEN_2D::GetProgress() const +{ + return _mesher ? _mesher->GetProgress(this, &_progressTic) : 0; +} //============================================================================= /*! diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.hxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.hxx index 86e864f..bbeff68 100644 --- a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.hxx +++ b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D.hxx @@ -34,8 +34,8 @@ #include "SMESH_Algo.hxx" #include "SMESH_Mesh.hxx" -#include "StdMeshers_MaxElementVolume.hxx" -#include "Utils_SALOME_Exception.hxx" + +class NETGENPlugin_Mesher; class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D: public SMESH_2D_Algo { @@ -50,9 +50,10 @@ public: virtual bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); -#ifdef WITH_SMESH_CANCEL_COMPUTE virtual void CancelCompute(); -#endif + + virtual double GetProgress() const; + virtual bool Evaluate(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape, MapShapeNbElems& aResMap); @@ -60,6 +61,7 @@ public: protected: const SMESHDS_Hypothesis* _hypothesis; bool _isViscousLayers2D; + NETGENPlugin_Mesher * _mesher; }; #endif