Salome HOME
Merge branch 'master' into pre/penta18
[modules/smesh.git] / src / SMESH / SMESH_Algo.hxx
index cee45b12ce3693e1ede31b0cc09ea790b9a764fb..ba8c2d356f0a3aad3da622548fbdfcf9405111b6 100644 (file)
@@ -165,6 +165,15 @@ class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis
    */
   virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper);
 
+  /*!
+   * \brief Return true if the algorithm can mesh a given shape
+   *  \param [in] aShape - shape to check
+   *  \param [in] toCheckAll - if true, this check returns OK if all shapes are OK,
+   *              else, returns OK if at least one shape is OK
+   *  \retval bool - \c true by default
+   */
+  virtual bool IsApplicableToShape(const TopoDS_Shape & shape, bool toCheckAll) const;
+
   /*!
    * \brief Sets _computeCanceled to true. It's usage depends on
    *        implementation of a particular mesher.
@@ -255,7 +264,7 @@ public:
   // ==================================================================
 
   // SMESH_Hypothesis::GetDim();
-  // 1 - dimention of target mesh
+  // 1 - dimension of target mesh
 
   bool OnlyUnaryInput() const { return _onlyUnaryInput; }
   // 2 - is collection of tesselatable shapes inacceptable as input;
@@ -269,7 +278,7 @@ public:
   // 3 - is a Dim-1 mesh prerequisite
 
   bool NeedShape() const { return _requireShape; }
-  // 4 - is shape existance required
+  // 4 - is shape existence required
 
   bool SupportSubmeshes() const { return _supportSubmeshes; }
   // 5 - whether supports submeshes if !NeedDiscreteBoundary()
@@ -363,7 +372,7 @@ public:
   /*!
    * \brief Return true if an edge has no 3D curve
    */
-  static bool isDegenerated( const TopoDS_Edge & E );
+  static bool isDegenerated( const TopoDS_Edge & E, const bool checkLength=false );
 
   /*!
    * \brief Return the node built on a vertex