Salome HOME
PR: tools for crack meshing : detection of elements affected by node duplication...
[modules/smesh.git] / src / SMESH_I / SMESH_MeshEditor_i.hxx
index 15233798bb907aad3d7f598c4d1a0de3ae4b997b..7030afa9c899b6a28a2aaa98bff66ac09df8f970 100644 (file)
@@ -743,6 +743,22 @@ public:
   CORBA::Boolean DoubleNodeElemGroupsInRegion( const SMESH::ListOfGroups& theElems,
                                                const SMESH::ListOfGroups& theNodesNot,
                                                GEOM::GEOM_Object_ptr      theShape );
+
+  /*!
+   * \brief Identify the elements that will be affected by node duplication (actual duplication is not performed.
+   * This method is the first step of DoubleNodeElemGroupsInRegion.
+   * \param theElems - list of groups of elements (edges or faces) to be replicated
+   * \param theNodesNot - list of groups of nodes not to replicated
+   * \param theShape - shape to detect affected elements (element which geometric center
+   *        located on or inside shape).
+   *        The replicated nodes should be associated to affected elements.
+   * \return groups of affected elements
+   * \sa DoubleNodeElemGroupsInRegion()
+   */
+  SMESH::ListOfGroups* AffectedElemGroupsInRegion( const SMESH::ListOfGroups& theElems,
+                                                   const SMESH::ListOfGroups& theNodesNot,
+                                                   GEOM::GEOM_Object_ptr      theShape );
+
   /*!
    * \brief Double nodes on shared faces between groups of volumes and create flat elements on demand.
    * The list of groups must describe a partition of the mesh volumes.
@@ -767,6 +783,19 @@ public:
    */
   CORBA::Boolean CreateFlatElementsOnFacesGroups( const SMESH::ListOfGroups& theGroupsOfFaces );
 
+  /*!
+   *  \brief identify all the elements around a geom shape, get the faces delimiting the hole
+   *  Build groups of volume to remove, groups of faces to replace on the skin of the object,
+   *  groups of faces to remove insidethe object, (idem edges).
+   *  Build ordered list of nodes at the border of each group of faces to replace (to be used to build a geom subshape)
+   */
+  void CreateHoleSkin(CORBA::Double radius,
+                      GEOM::GEOM_Object_ptr theShape,
+                      const char* groupName,
+                      const SMESH::double_array& theNodesCoords,
+                      SMESH::array_of_long_array_out GroupsOfNodes)
+  throw (SALOME::SALOME_Exception);
+
   /*!
    * \brief Generated skin mesh (containing 2D cells) from 3D mesh
    * The created 2D mesh elements based on nodes of free faces of boundary volumes