Salome HOME
Update copyright information
[modules/smesh.git] / src / StdMeshers / StdMeshers_Propagation.hxx
index 3f6fb714a6adb52335322aa1e35f866c97976c86..12abb1a8324a36bc99cc1efce7ab2ac27498fc50 100644 (file)
@@ -1,6 +1,7 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003  CEA
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
 //  This library is free software; you can redistribute it and/or
 //  modify it under the terms of the GNU Lesser General Public
 //  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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+//  SMESH SMESH : implementaion of SMESH idl descriptions
 //  File   : StdMeshers_Propagation.hxx
 //  Module : SMESH
 //  $Header$
-
+//
 #ifndef _SMESH_PROPAGATION_HXX_
 #define _SMESH_PROPAGATION_HXX_
 
 #include "SMESH_StdMeshers.hxx"
 
 #include "SMESH_Hypothesis.hxx"
+#include "SMESH_subMeshEventListener.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
+#include <TopoDS_Edge.hxx>
+
+
+// =======================================================================
+/*!
+ * \brief Propagation hypothesis
+ */
+// =======================================================================
+
 class STDMESHERS_EXPORT StdMeshers_Propagation:public SMESH_Hypothesis
 {
  public:
@@ -45,6 +55,22 @@ class STDMESHERS_EXPORT StdMeshers_Propagation:public SMESH_Hypothesis
 
   static std::string GetName ();
 
+  /*!
+   * \brief Set EventListener managing propagation of hypotheses
+    * \param subMesh - edge submesh to set event listener on
+   * 
+   * 1D algo is expected to call this method from it's SetEventListener()
+   */
+  static void SetPropagationMgr(SMESH_subMesh* subMesh);
+
+  /*!
+   * \brief Return an edge from which hypotheses are propagated
+    * \param theMesh - mesh
+    * \param theEdge - edge to which hypotheses are propagated
+    * \retval TopoDS_Edge - source edge, also passing orientation
+   */
+  static TopoDS_Edge GetPropagationSource(SMESH_Mesh& theMesh, const TopoDS_Shape& theEdge);
+
   /*!
    * \brief Initialize my parameter values by the mesh built on the geometry
     * \param theMesh - the built mesh
@@ -55,5 +81,4 @@ class STDMESHERS_EXPORT StdMeshers_Propagation:public SMESH_Hypothesis
    */
   virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
 };
-
 #endif