Salome HOME
Update of CheckDone
[modules/smesh.git] / idl / SMESH_MeshEditor.idl
index 26e73dfafb7c152e32b7611c9b204d375b3cfc7f..44366e66de28f8338098435d53bea6d20d085618 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -159,6 +159,13 @@ module SMESH
      */
     smIdType RemoveOrphanNodes() raises (SALOME::SALOME_Exception);
 
+    /*!
+     * \brief Remove a mesh node and change surrounding faces to close a hole
+     * \param nodeID node identifier
+     * \throw if mesh is not a triangle one
+     */
+    void RemoveNodeWithReconnection(in smIdType nodeID) raises (SALOME::SALOME_Exception);
+
     /*!
      * \brief Add a new node.
      * \param x X coordinate of new node
@@ -291,18 +298,44 @@ module SMESH
       raises (SALOME::SALOME_Exception);
 
 
+    /*!
+     * \brief Change node location
+     */
     boolean MoveNode(in smIdType NodeID, in double x, in double y, in double z)
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * \brief Swap a diagonal of a quadrangle formed by two adjacent triangles
+     */
     boolean InverseDiag(in smIdType NodeID1, in smIdType NodeID2) 
       raises (SALOME::SALOME_Exception);
-
+    /*!
+     * \brief Delete a diagonal of a quadrangle formed by two adjacent triangles
+     *        so that a new quadrangle appears in place of the triangles
+     */
     boolean DeleteDiag(in smIdType NodeID1, in smIdType NodeID2) 
       raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Replace each triangle bound by Node1-Node2 segment with
+     *        two triangles by connecting a node made on the segment with a node opposite
+     *        to the segment.
+     */
+    void AddNodeOnSegment(in smIdType Node1, in smIdType Node2, in double position)
+      raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Split a face into triangles by adding a new node onto the face
+     *        and connecting the new node with face nodes
+     */
+    void AddNodeOnFace(in smIdType triangle, in double x, in double y, in double z);
 
+    /*!
+     * \brief Change orientation of cells
+     */
     boolean Reorient(in smIdType_array IDsOfElements) 
       raises (SALOME::SALOME_Exception);
-
+    /*!
+     * \brief Change orientation of cells
+     */
     boolean ReorientObject(in SMESH_IDSource theObject) 
       raises (SALOME::SALOME_Exception);
     /*!
@@ -318,6 +351,19 @@ module SMESH
                     in DirStruct      theDirection,
                     in long           theFace,
                     in PointStruct    thePoint) raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Reorient faces contained in a list of \a objectFaces
+     *        equally to faces contained in a list of \a referenceFaces.
+     * \param objectFaces - faces to reorient in a list including either
+     *        the whole mesh or groups and/or sub-meshes.
+     * \param referenceFaces  - correctly oriented faces in a list of groups and/or sub-meshes.
+     *        It can be empty, then the 1st face in \a objectFaces is used as the reference.
+     * \return number of reoriented faces.
+     */
+    long Reorient2DByNeighbours(in SMESH::ListOfIDSources objectFaces,
+                                in SMESH::ListOfIDSources referenceFaces)
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * \brief Reorient faces basing on orientation of adjacent volumes.
      * \param faces - a list of objects containing face to reorient
@@ -338,6 +384,7 @@ module SMESH
      *                     is still performed; theMaxAngle is measured in radians.
      * \return \c true in case of success, FALSE otherwise.
      */
+
     boolean TriToQuad (in smIdType_array   IDsOfElements,
                        in NumericalFunctor Criterion,
                        in double           MaxAngle) raises (SALOME::SALOME_Exception);
@@ -394,8 +441,8 @@ module SMESH
      *  \return 1 if 1-3 diagonal is better, 2 if 2-4
      *          diagonal is better, 0 if error occurs.
      */
-    long BestSplit (in long            IDOfQuad,
-                    in NumericalFunctor Criterion) raises (SALOME::SALOME_Exception);
+    short BestSplit (in smIdType         IDOfQuad,
+                     in NumericalFunctor Criterion) raises (SALOME::SALOME_Exception);
 
     /*!
      * \brief Split volumic elements into tetrahedrons
@@ -1244,7 +1291,9 @@ module SMESH
      *  \param meshName - a name of a new mesh, which is a copy of the initial 
      *    mesh + created boundary elements; "" means not to create the new mesh
      *  \param toCopyAll - if true, the whole initial mesh will be copied into
-     *    the new mesh else only boundary elements will be copied into the new mesh
+     *    the new mesh else only the new elements will be copied into the new mesh
+     *  \param toCreateAllElements - if true, all the boundary elements of the mesh 
+     *    are computed. 
      *  \param groups - optional groups of 2D elements to make boundary around
      *  \param mesh - returns the mesh where elements were added to
      *  \param group - returns the created group, if any
@@ -1254,6 +1303,7 @@ module SMESH
                               in string          groupName,
                               in string          meshName,
                               in boolean         toCopyAll,
+                              in boolean         toCreateAllElements,
                               in ListOfIDSources groups,
                               out SMESH_Mesh     mesh,
                               out SMESH_Group    group) raises (SALOME::SALOME_Exception);