Salome HOME
IPAL 0051561: Hexotic algorithm fail
[modules/smesh.git] / src / SMESH / SMESH_subMesh.hxx
index 3e01fccb6611b8d351b25b76c832206a37a0e24a..355107186a0bbb14d3b36fafbf5134b67337dea9 100644 (file)
@@ -59,7 +59,9 @@ typedef boost::shared_ptr< SMDS_Iterator<SMESH_subMesh*> > SMESH_subMeshIterator
 class SMESH_EXPORT SMESH_subMesh
 {
  public:
-  SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
+  SMESH_subMesh(int                  Id,
+                SMESH_Mesh *         father,
+                SMESHDS_Mesh *       meshDS,
                 const TopoDS_Shape & aSubShape);
   virtual ~ SMESH_subMesh();
 
@@ -67,7 +69,8 @@ class SMESH_EXPORT SMESH_subMesh
 
   SMESH_Mesh* GetFather() { return _father; }
   
-  SMESHDS_SubMesh * GetSubMeshDS();
+  SMESHDS_SubMesh *       GetSubMeshDS();
+  const SMESHDS_SubMesh * GetSubMeshDS() const;
 
   SMESHDS_SubMesh* CreateSubMeshDS();
   // Explicit SMESHDS_SubMesh creation method, required for persistence mechanism
@@ -77,7 +80,6 @@ class SMESH_EXPORT SMESH_subMesh
   SMESH_Algo* GetAlgo() const;
 
   const std::map < int, SMESH_subMesh * >& DependsOn();
-  //const map < int, SMESH_subMesh * >&Dependants();
   /*!
    * \brief Return iterator on the submeshes this one depends on
    */
@@ -90,11 +92,11 @@ class SMESH_EXPORT SMESH_subMesh
   {
     NOT_READY, READY_TO_COMPUTE,
     COMPUTE_OK, FAILED_TO_COMPUTE
-    };
+  };
   enum algo_state
   {
     NO_ALGO, MISSING_HYP, HYP_OK
-    };
+  };
   enum algo_event
   {
     ADD_HYP          , ADD_ALGO,
@@ -102,16 +104,13 @@ class SMESH_EXPORT SMESH_subMesh
     ADD_FATHER_HYP   , ADD_FATHER_ALGO,
     REMOVE_FATHER_HYP, REMOVE_FATHER_ALGO,
     MODIF_HYP
-    };
+  };
   enum compute_event
   {
-    MODIF_ALGO_STATE, COMPUTE,
-#ifdef WITH_SMESH_CANCEL_COMPUTE
-    COMPUTE_CANCELED,
-#endif
+    MODIF_ALGO_STATE, COMPUTE, COMPUTE_CANCELED,
     CLEAN, SUBMESH_COMPUTED, SUBMESH_RESTORED, SUBMESH_LOADED,
     MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
-    };
+  };
   enum event_type
   {
     ALGO_EVENT, COMPUTE_EVENT
@@ -142,6 +141,13 @@ class SMESH_EXPORT SMESH_subMesh
    */
   EventListenerData* GetEventListenerData(EventListener* listener) const;
 
+  /*!
+   * \brief Return an event listener data
+    * \param listenerName - the listener name
+    * \retval EventListenerData* - found data, maybe NULL
+   */
+  EventListenerData* GetEventListenerData(const std::string& listenerName) const;
+
   /*!
    * \brief Unregister the listener and delete it and it's data
     * \param listener - the event listener to delete
@@ -282,7 +288,9 @@ protected:
    * \brief Update compute_state by _computeError
     * \retval bool - false if there are errors
    */
-  bool checkComputeError(SMESH_Algo* theAlgo, const TopoDS_Shape& theShape=TopoDS_Shape());
+  bool checkComputeError(SMESH_Algo*         theAlgo,
+                         const bool          theComputeOK,
+                         const TopoDS_Shape& theShape=TopoDS_Shape());
 
   /*!
    * \brief Return a hypothesis attached to theShape.