Salome HOME
PAL7933. Add static IsApplicableHypothesis()
[modules/smesh.git] / src / SMESH / SMESH_subMesh.hxx
index 937479da749c4e9d40dbdc1eea690cdfdb7a580c..8251c6b940a3918ab772e171eb675237c9e2e9d4 100644 (file)
@@ -58,6 +58,8 @@ class SMESH_subMesh
   //   bool Contains(const TopoDS_Shape & aSubShape)
   //     throw (SALOME_Exception);
 
+  SMESH_Mesh* GetFather() { return _father; }
+  
   SMESHDS_SubMesh * GetSubMeshDS();
 
   SMESHDS_SubMesh* CreateSubMeshDS();
@@ -70,7 +72,7 @@ class SMESH_subMesh
 
   const TopoDS_Shape & GetSubShape();
 
-  bool _vertexSet;                     // only for vertex subMesh, set to false for dim > 0
+//  bool _vertexSet;                   // only for vertex subMesh, set to false for dim > 0
 
   enum compute_state
   {
@@ -91,7 +93,8 @@ class SMESH_subMesh
   enum compute_event
   {
     MODIF_HYP, MODIF_ALGO_STATE, COMPUTE,
-    CLEAN, CLEANDEP, SUBMESH_COMPUTED, SUBMESH_RESTORED
+    CLEAN, CLEANDEP, SUBMESH_COMPUTED, SUBMESH_RESTORED,
+    MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
     };
 
   SMESH_Hypothesis::Hypothesis_Status
@@ -118,10 +121,16 @@ class SMESH_subMesh
   // return true if theHypothesis can be attached to me:
   // its dimention is checked
 
-  bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const;
+  static bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
+                                    const TopAbs_ShapeEnum  theShapeType);
+
+  bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const
+  { return IsApplicableHypotesis( theHypothesis, _subShape.ShapeType() ); }
   // return true if theHypothesis can be used to mesh me:
   // its shape type is checked
   
+  SMESH_Hypothesis::Hypothesis_Status CheckConcurentHypothesis (const int theHypType);
+  // check if there are several applicable hypothesis on fathers
 
  protected:
   void InsertDependence(const TopoDS_Shape aSubShape);
@@ -149,16 +158,13 @@ class SMESH_subMesh
                           const TopoDS_Shape& theCollection);
   // Apply theAlgo to all subshapes in theCollection
 
-  SMESH_Hypothesis::Hypothesis_Status CheckConcurentHypothesis (const int theHypType);
-  // check if there are several applicable hypothesis on fathers
-
-  int GetNbAttached(const TopoDS_Shape&      theShape,
-                    const SMESH_Hypothesis * theHyp,
-                    const bool               theAlgos = false);
-  // return nb of hypotheses attached to theShape.
+  const SMESH_Hypothesis* GetSimilarAttached(const TopoDS_Shape&      theShape,
+                                             const SMESH_Hypothesis * theHyp,
+                                             const int                theHypType = 0);
+  // return a hypothesis attached to theShape.
   // If theHyp is provided, similar but not same hypotheses
-  // are countered; else only applicable ones are countered
-  // depending on theAlgos flag
+  // is returned; else an applicable ones having theHypType
+  // is returned
   
   TopoDS_Shape _subShape;
   SMESHDS_Mesh * _meshDS;
@@ -166,12 +172,9 @@ class SMESH_subMesh
   int _Id;
   SMESH_Mesh *_father;
   map < int, SMESH_subMesh * >_mapDepend;
-  //map < int, SMESH_subMesh * >_mapDependants;
   bool _dependenceAnalysed;
-  //bool _dependantsFound;
 
   int _algoState;
-  //int _oldAlgoState;
   int _computeState;
 
 };