Salome HOME
Fix for
[modules/smesh.git] / src / SMESH / SMESH_subMesh.hxx
index 937479da749c4e9d40dbdc1eea690cdfdb7a580c..e8f1175756eee4c27d297400648ec6d6aa7d35e9 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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();
@@ -68,9 +70,9 @@ class SMESH_subMesh
   const map < int, SMESH_subMesh * >&DependsOn();
   //const map < int, SMESH_subMesh * >&Dependants();
 
-  const TopoDS_Shape & GetSubShape();
+  const TopoDS_Shape & GetSubShape() const;
 
-  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, SUBMESH_COMPUTED, SUBMESH_RESTORED,
+    MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
     };
 
   SMESH_Hypothesis::Hypothesis_Status
@@ -100,17 +103,13 @@ class SMESH_subMesh
   SMESH_Hypothesis::Hypothesis_Status
     SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
 
-  int GetAlgoState() { return _algoState; }
+  int GetAlgoState() const { return _algoState; }
+  int GetComputeState() const { return _computeState; };
 
   void DumpAlgoState(bool isMain);
 
   bool ComputeStateEngine(int event);
 
-  int GetComputeState()
-  {
-    return _computeState;
-  };
-
   bool IsConform(const SMESH_Algo* theAlgo);
   // check if a conform mesh will be produced by the Algo
 
@@ -118,10 +117,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 +154,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 +168,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;
 
 };