Salome HOME
Progress bar
authoreap <eap@opencascade.com>
Tue, 23 Jul 2013 12:52:05 +0000 (12:52 +0000)
committereap <eap@opencascade.com>
Tue, 23 Jul 2013 12:52:05 +0000 (12:52 +0000)
+  virtual double GetProgress() const;

src/NETGENPlugin/NETGENPlugin_NETGEN_2D.cxx
src/NETGENPlugin/NETGENPlugin_NETGEN_2D.hxx

index 1187fe2c6f37d69fc5994d0ed024898dac924baf..d6d1a270e358698ad911dcee05428417eec088b0 100644 (file)
@@ -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<const NETGENPlugin_Hypothesis*>(_hypothesis));
   mesher.SetParameters(dynamic_cast<const NETGENPlugin_SimpleHypothesis_2D*>(_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;
+}
 
 //=============================================================================
 /*!
index 86e864f333c3f7ea384dbeefa7ff3c03b53eedac..bbeff68de06a2b1e4aa99abe39317623b4f0adac 100644 (file)
@@ -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