Salome HOME
23617: EDF 14133 - Complete Merge Nodes / Merge Elements operations
[modules/smesh.git] / idl / SMESH_MeshEditor.idl
index 85ba8b73ea59558b9a18ba746b96dfe5998b4945..482f8e9b6c909fe169983565ad044fd3979d6e7b 100644 (file)
@@ -723,7 +723,7 @@ module SMESH
                                     in  boolean             SeparateCornersAndMedium)
       raises (SALOME::SALOME_Exception);
 
-    void FindCoincidentNodesOnPartBut (in  SMESH_IDSource      SubMeshOrGroup,
+    void FindCoincidentNodesOnPartBut (in  ListOfIDSources     SubMeshOrGroup,
                                        in  double              Tolerance,
                                        out array_of_long_array GroupsOfNodes,
                                        in  ListOfIDSources     ExceptSubMeshOrGroups,
@@ -740,7 +740,8 @@ module SMESH
      * \param MeshOrSubMeshOrGroup Mesh or SubMesh, or Group of elements for searching.
      * \return List of groups of equal elements.
      */
-    void FindEqualElements (in  SMESH_IDSource      MeshOrSubMeshOrGroup,
+    void FindEqualElements (in  ListOfIDSources     MeshOrSubMeshOrGroup,
+                            in  ListOfIDSources     ExceptSubMeshOrGroups,
                             out array_of_long_array GroupsOfElementsID) 
       raises (SALOME::SALOME_Exception);
 
@@ -748,7 +749,8 @@ module SMESH
      * \brief Merge elements in each given group.
      * \param GroupsOfElementsID Groups of elements for merging.
      */
-    void MergeElements(in array_of_long_array GroupsOfElementsID) 
+    void MergeElements(in array_of_long_array    GroupsOfElementsID,
+                       in SMESH::ListOfIDSources ElementsToKeep) 
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -798,8 +800,8 @@ module SMESH
     long ProjectPoint(in double         x,
                       in double         y,
                       in double         z,
-                      in SMESH_IDSource meshObject,
                       in ElementType    type,
+                      in SMESH_IDSource meshObject,
                       out double_array  projecton)
       raises (SALOME::SALOME_Exception);
 
@@ -822,6 +824,18 @@ module SMESH
     boolean IsCoherentOrientation2D()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Partition given 1D elements into groups of contiguous edges.
+     * A node where number of meeting edges != 2 is a group end.
+     * An optional startNode is used to orient groups it belongs to.
+     * \return a list of edge groups and a list of corresponding node groups.
+     *         If a group is closed, the first and last nodes of the group are same.
+     */
+    array_of_long_array Get1DBranches( in SMESH_IDSource       edges,
+                                       in long                 startNode,
+                                       out array_of_long_array nodeGroups)
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Return sharp edges of faces and non-manifold ones. 
      * Optionally add existing edges. Angle is in degrees.
@@ -1295,6 +1309,17 @@ module SMESH
     void MakePolyLine(inout ListOfPolySegments segments,
                       in    string             groupName)
       raises (SALOME::SALOME_Exception);
+
+    /*!
+     * \brief Create a slot of given width around given 1D elements lying on a triangle mesh.
+     *        The slot is consrtucted by cutting faces by cylindrical surfaces made
+     *        around each segment. Segments are expected to be created by MakePolyLine().
+     * \return Edges located at the slot boundary
+     */
+    ListOfEdges MakeSlot( in SMESH_GroupBase segments,
+                          in double          width )
+      raises (SALOME::SALOME_Exception);
+
   };
 };