]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESH/SMESH_Algo.hxx
Salome HOME
Generalize "Cancel Compute" mechanism to be able to report
[modules/smesh.git] / src / SMESH / SMESH_Algo.hxx
index 275505fb564088a287f5eaccf3aed05ddb3a2bd2..580445b48057b0cc1c100d6ef30f66ce65cbdde0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -118,9 +118,9 @@ public:
     * \param aShape - the shape
     * \retval bool - is a success
     *
-    * Algorithms that !NeedDescretBoundary() || !OnlyUnaryInput() are
+    * Algorithms that !NeedDiscreteBoundary() || !OnlyUnaryInput() are
     * to set SMESH_ComputeError returned by SMESH_submesh::GetComputeError()
-    * to report problematic subshapes
+    * to report problematic sub-shapes
    */
   virtual bool Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) = 0;
 
@@ -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
@@ -219,14 +221,14 @@ public:
   // an input temporary shape that is neither MainShape nor
   // its child.
 
-  bool NeedDescretBoundary() const { return _requireDescretBoundary; }
+  bool NeedDiscreteBoundary() const { return _requireDiscreteBoundary; }
   // 3 - is a Dim-1 mesh prerequisite
 
   bool NeedShape() const { return _requireShape; }
   // 4 - is shape existance required
 
   bool SupportSubmeshes() const { return _supportSubmeshes; }
-  // 5 - whether supports submeshes if !NeedDescretBoundary()
+  // 5 - whether supports submeshes if !NeedDiscreteBoundary()
 
 
 public:
@@ -365,11 +367,11 @@ protected:
 
   // Algo features influencing which Compute() and how is called:
   // in what turn and with what input shape.
-  // This fields must be redefined if necessary by each descendant at constructor.
+  // These fields must be redefined if necessary by each descendant at constructor.
   bool _onlyUnaryInput;         // mesh one shape of GetDim() at once. Default TRUE
-  bool _requireDescretBoundary; // GetDim()-1 mesh must be present. Default TRUE
+  bool _requireDiscreteBoundary; // GetDim()-1 mesh must be present. Default TRUE
   bool _requireShape;           // work with GetDim()-1 mesh bound to geom only. Default TRUE
-  bool _supportSubmeshes;       // if !_requireDescretBoundary. Default FALSE
+  bool _supportSubmeshes;       // if !_requireDiscreteBoundary. Default FALSE
 
   // quadratic mesh creation required,
   // is usually set trough SMESH_MesherHelper::IsQuadraticSubMesh()
@@ -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