Salome HOME
Small fixes in sphinx documentation of python plugins:
[modules/smesh.git] / idl / SMESH_MeshEditor.idl
index 5cb9c85cc791c1a9c4d5bc1df6e357a1a71823f1..482f8e9b6c909fe169983565ad044fd3979d6e7b 100644 (file)
@@ -80,9 +80,19 @@ module SMESH
   };
   typedef sequence<PolySegment> ListOfPolySegments;
 
+  // face edge defined by two nodes + optional medium node
+  struct FaceEdge
+  {
+    long node1;
+    long node2;
+    long medium;
+  };
+  typedef sequence<FaceEdge> ListOfEdges;
+
 
   /*!
    * This interface makes modifications on the Mesh - removing elements and nodes etc.
+   * Also provides some analysis functions.
    */
   interface SMESH_MeshEditor
   {
@@ -713,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,
@@ -730,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);
 
@@ -738,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);
 
     /*!
@@ -788,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);
 
@@ -812,6 +824,25 @@ 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.
+     */
+    ListOfEdges FindSharpEdges(in double angle, in boolean addExistingEdges)
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Returns all or only closed FreeBorder's.
      */
@@ -1278,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);
+
   };
 };