Salome HOME
22316: EDF 2719 SMESH: Split hexas into prisms
[modules/smesh.git] / idl / SMESH_MeshEditor.idl
index 752d689300f2133fe33278fd3b3ed9194a3787f5..13107425dabe993c33c795da970b5c62cf766629 100644 (file)
@@ -323,6 +323,25 @@ module SMESH
     void SplitVolumesIntoTetra(in SMESH_IDSource elems, in short methodFlags)
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * \brief Split hexahedra into triangular prisms
+     *  \param elems - elements to split
+     *  \param facetToSplitNormal - normal used to find a facet of hexahedron
+     *         to split into triangles. Location of this vector is used to 
+     *         find a hexahedron whose facets are tested using direction of this vector.
+     *  \param methodFlags - flags passing splitting method:
+     *         1 - split the hexahedron into 2 prisms
+     *         2 - split the hexahedron into 4 prisms
+     *  \param allDomains - if \c False, only hexahedra adjacent to one closest
+     *         to \a facetToSplitNormal location are split, else \a facetToSplitNormal
+     *         is used to find the facet to split in all domains present in \a elems.
+     */
+    void SplitHexahedraIntoPrisms(in SMESH_IDSource    elems, 
+                                  in short             methodFlags,
+                                  in SMESH::AxisStruct facetToSplitNormal,
+                                  in boolean           allDomains)
+      raises (SALOME::SALOME_Exception);
+
 
     enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
 
@@ -927,13 +946,29 @@ module SMESH
     boolean ChangeElemNodes(in long ide, in long_array newIDs) 
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * \brief Duplicates given elements, i.e. creates new elements based on the 
+     *        same nodes as the given ones.
+     * \param theElements - container of elements to duplicate.
+     * \param theGroupName - a name of group to contain the generated elements.
+     *                    If a group with such a name already exists, the new elements
+     *                    are added to the existng group, else a new group is created.
+     *                    If \a theGroupName is empty, new elements are not added 
+     *                    in any group.
+     * \return a group where the new elements are added. NULL if theGroupName == "".
+     * \sa DoubleNode()
+     */
+    SMESH_Group DoubleElements( in SMESH_IDSource theElements, 
+                                in string         theGroupName )
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
      * \param theNodes - identifiers of nodes to be doubled
      * \param theModifiedElems - identifiers of elements to be updated by the new (doubled)
      *        nodes. If list of element identifiers is empty then nodes are doubled but
      *        they not assigned to elements
-     *        \return TRUE if operation has been completed successfully, FALSE otherwise
+     * \return TRUE if operation has been completed successfully, FALSE otherwise
      * \sa DoubleNode(), DoubleNodeGroup(), DoubleNodeGroups()
      */
     boolean DoubleNodes( in long_array theNodes, in long_array theModifiedElems )