Salome HOME
0020501: EDF 1098 SMESH: Display only groups, edit a group: can't select face from...
[modules/smesh.git] / idl / SMESH_Mesh.idl
index 5134fe24b38f938f852555e625abe4111b1f546a..fff0c51208e520826e4de5c40fdcfa9b16f73936 100644 (file)
@@ -1,4 +1,6 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
 //  This library is free software; you can redistribute it and/or
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESH_Mesh.idl
 //  Author : Paul RASCLE, EDF
-//  $Header$
+//
 
 #ifndef _SMESH_MESH_IDL_
 #define _SMESH_MESH_IDL_
@@ -38,14 +38,15 @@ module SMESH
   interface SMESH_GroupBase;
   typedef sequence<SMESH_GroupBase> ListOfGroups;
 
-  typedef sequence<double> double_array ;
-  typedef sequence<long> long_array ;
-  typedef sequence<string> string_array ;
+  typedef sequence<double    > double_array ;
+  typedef sequence<long      > long_array ;
+  typedef sequence<string    > string_array ;
   typedef sequence<long_array> array_of_long_array ;
 
   enum log_command
     {
       ADD_NODE,
+      ADD_ELEM0D,
       ADD_EDGE,
       ADD_TRIANGLE,
       ADD_QUADRANGLE,
@@ -61,6 +62,7 @@ module SMESH
       CHANGE_ELEMENT_NODES,
       CHANGE_POLYHEDRON_NODES,
       RENUMBER,
+      CLEAR_MESH,
       ADD_QUADEDGE,
       ADD_QUADTRIANGLE,
       ADD_QUADQUADRANGLE,
@@ -81,6 +83,9 @@ module SMESH
   struct PointStruct { double x;
                       double y;
                       double z; } ;
+
+  typedef sequence<PointStruct> nodes_array;
+
   struct DirStruct   { PointStruct PS ; } ;          // analog to Occ Direction
 
   struct AxisStruct  { double x;
@@ -90,6 +95,14 @@ module SMESH
                       double vy;
                       double vz; } ;
 
+  /*!
+   * Node location on a shape
+   */
+  struct NodePosition {
+    long             shapeID;
+    GEOM::shape_type shapeType;
+    double_array     params; // [U] on EDGE, [U,V] on FACE, [] on the rest shapes
+  };
 
   /*!
    * Enumeration for element type, like in SMDS
@@ -100,7 +113,25 @@ module SMESH
     NODE,
     EDGE,
     FACE,
-    VOLUME
+    VOLUME,
+    ELEM0D
+  };
+
+  /*!
+   * Enumeration for element geometry type, like in SMDS
+   */
+  enum GeometryType
+  {
+    Geom_POINT,
+    Geom_EDGE,
+    Geom_TRIANGLE,
+    Geom_QUADRANGLE,
+    Geom_POLYGON,
+    Geom_TETRA,
+    Geom_PYRAMID,
+    Geom_HEXA,
+    Geom_PENTA,
+    Geom_POLYHEDRA
   };
   
   /*!
@@ -112,6 +143,37 @@ module SMESH
     ORDER_QUADRATIC     /*! entities of 2nd order */
   };
 
+
+  /*!
+   * Enumeration of entity type uses in mesh info array,
+   *  and should be synchronised with enum in SMDS  
+   */
+  enum EntityType
+  {
+    Entity_Node,
+    Entity_0D,
+    Entity_Edge,
+    Entity_Quad_Edge,
+    Entity_Triangle,
+    Entity_Quad_Triangle,
+    Entity_Quadrangle,
+    Entity_Quad_Quadrangle,
+    Entity_Polygon,
+    Entity_Quad_Polygon,
+    Entity_Tetra,
+    Entity_Quad_Tetra,
+    Entity_Pyramid,
+    Entity_Quad_Pyramid,
+    Entity_Hexa,
+    Entity_Quad_Hexa,
+    Entity_Penta,
+    Entity_Quad_Penta,
+    Entity_Polyhedra,
+    Entity_Quad_Polyhedra,
+    Entity_Last
+  };
+
+
   /*!
    * Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
    */
@@ -121,13 +183,17 @@ module SMESH
     HYP_MISSING,      // algo misses a hypothesis
     HYP_CONCURENT,    // several applicable hypotheses
     HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
+    HYP_HIDDEN_ALGO,  // an algo is hidden by an upper dim algo generating all-dim elements
+    HYP_HIDING_ALGO,  // an algo hides lower dim algos by generating all-dim elements
     HYP_UNKNOWN_FATAL,//  --- all statuses below should be considered as fatal
                       //      for Add/RemoveHypothesis operations
     HYP_INCOMPATIBLE, // hypothesis does not fit algo
     HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
     HYP_ALREADY_EXIST,// such hypothesis already exist
     HYP_BAD_DIM,      // bad dimension
-    HYP_BAD_SUBSHAPE  // shape is neither the main one, nor its subshape, nor a group
+    HYP_BAD_SUBSHAPE, // shape is neither the main one, nor its subshape, nor a group
+    HYP_BAD_GEOMETRY, // geometry mismatches algorithm's expectation
+    HYP_NEED_SHAPE    // algorithm can work on shape only
   };
 
   /*!
@@ -163,12 +229,34 @@ module SMESH
   const long EXTRUSION_FLAG_BOUNDARY = 1;
   const long EXTRUSION_FLAG_SEW = 2;
   
+  /*!
+   * Structure used in mesh edit preview data (MeshPreviewStruct)
+   */
+  struct ElementSubType { ElementType SMDS_ElementType;
+                          boolean     isPoly;
+                          long        nbNodesInElement; };
+
+  typedef sequence<ElementSubType> types_array;
+
+  /*!
+   * Structure containing mesh edit preview data
+   */
+  struct MeshPreviewStruct { nodes_array nodesXYZ;
+                             long_array  elementConnectivities;
+                             types_array elementTypes; };
+
   interface SMESH_IDSource
   {
     /*!
      * Returns a sequence of all element IDs
      */
     long_array GetIDs();
+
+    /*!
+     * Returns statistic of mesh elements
+     * Result array of number enityties
+     */
+    long_array GetMeshInfo();
   };
 
   interface SMESH_Group;
@@ -177,31 +265,38 @@ module SMESH
   interface SMESH_MeshEditor;
   interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
   {
-    ///*!
-    // * Associate a Shape to a Mesh created with NewEmpty
-    // */
-    //boolean SetMesh(in GEOM::GEOM_Object anObject)
-    //  raises (SALOME::SALOME_Exception);
+    /*!
+     * Return true if there is a geometry to be meshed
+     */
+    boolean HasShapeToMesh()
+      raises (SALOME::SALOME_Exception);
 
     /*!
-     * Get the subMesh object associated to a subShape. The subMesh object
-     * gives access to nodes and elements IDs.
-     * SubMesh will be used instead of SubShape in a next idl version to
-     * adress a specific subMesh...
+     * Get geom shape to mesh. A result sould not be nil. Use HasShapeToMesh()
+     * to know if a returned shape 
      */
-    SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
+    GEOM::GEOM_Object GetShapeToMesh()
       raises (SALOME::SALOME_Exception);
 
-    ///*!
-    // * Create a subMesh without reference to a subShape
-    // */
-    //SMESH_subMesh NewEmpty()
-    //  raises (SALOME::SALOME_Exception);
+    /*!
+     * Remove all nodes and elements
+     */
+    void Clear()
+      raises (SALOME::SALOME_Exception);
 
     /*!
-     * Get geom shape to mesh. A result may be nil
+     * Remove all nodes and elements of submesh
      */
-    GEOM::GEOM_Object GetShapeToMesh()
+    void ClearSubMesh(in long ShapeID)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Get the subMesh object associated to a subShape. The subMesh object
+     * gives access to nodes and elements IDs.
+     * SubMesh will be used instead of SubShape in a next idl version to
+     * adress a specific subMesh...
+     */
+    SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -210,6 +305,7 @@ module SMESH
     void RemoveSubMesh(in SMESH_subMesh aSubMesh)
       raises (SALOME::SALOME_Exception);
 
+
     /*!
      * Create a group
      */
@@ -243,6 +339,12 @@ module SMESH
     ListOfGroups GetGroups()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     *  Get number of groups existing in the mesh
+     */
+    long NbGroups()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Union of two groups
      *    New group is created. All mesh elements that are
@@ -252,6 +354,15 @@ module SMESH
                              in SMESH_GroupBase aGroup2,
                              in string          name )
       raises (SALOME::SALOME_Exception);
+      
+    /*!
+     * Union of list of groups
+     * New group is created. All mesh elements that are
+     * present in initial groups are added to the new one
+     */
+    SMESH_Group UnionListOfGroups (in ListOfGroups aListOfGroups,
+                                   in string       name )
+      raises (SALOME::SALOME_Exception);
 
     /*!
      *  Intersection of two groups
@@ -262,6 +373,15 @@ module SMESH
                                  in SMESH_GroupBase aGroup2,
                                  in string          name )
       raises (SALOME::SALOME_Exception);
+      
+    /*!
+     *  Intersection of list of groups
+     *  New group is created. All mesh elements that are
+     *  present in all initial groups simultaneously are added to the new one.
+     */
+    SMESH_Group IntersectListOfGroups (in ListOfGroups aListOfGroups,
+                                       in string       name)
+      raises (SALOME::SALOME_Exception);
 
     /*!
      *  Cut of two groups
@@ -269,8 +389,35 @@ module SMESH
      *  main group but do not present in tool group are added to the new one
      */
     SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
-                          in SMESH_GroupBase aToolGroup,
-                          in string          name )
+                           in SMESH_GroupBase aToolGroup,
+                           in string          name )
+      raises (SALOME::SALOME_Exception);
+      
+    /*!
+     *  Cut of lists of groups
+     *  New group is created. All mesh elements that are present in
+     *  main groups but do not present in tool groups are added to the new one
+     */
+    SMESH_Group CutListOfGroups (in ListOfGroups aMainGroups,
+                                 in ListOfGroups aToolGroups,
+                                 in string       name)
+      raises (SALOME::SALOME_Exception);
+      
+    /*!
+     *  Create groups of entities from existing groups of superior dimensions 
+     *  New group is created. System 
+     *  1) extracts all nodes from each group,
+     *  2) combines all elements of specified dimension laying on these nodes.
+     */
+    SMESH_Group CreateDimGroup( in ListOfGroups aListOfGroups,
+                                in ElementType  anElemType,
+                                in string       name )
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Convert group on geometry into standalone group
+     */
+    SMESH_Group ConvertToStandalone( in SMESH_GroupOnGeom theGeomGroup )
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -332,6 +479,20 @@ module SMESH
     void ClearLog()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Toggle auto color mode on the object.
+     * @params
+     * - theAutoColor : flag which toggles auto color mode.
+     */
+    void SetAutoColor(in boolean theAutoColor)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Get flag of object's auto color mode.
+     */
+    boolean GetAutoColor()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Get the internal Id
      */
@@ -348,6 +509,13 @@ module SMESH
     SMESH_MeshEditor GetMeshEditor()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Return SMESH_MeshEditor that would not modify the mesh but
+     * fill MeshPreviewStruct
+     */
+    SMESH_MeshEditor GetMeshEditPreviewer()
+      raises (SALOME::SALOME_Exception);
+
     /*! Check group names for duplications.
      *  Consider maximum group name length stored in MED file.
      */
@@ -372,8 +540,14 @@ module SMESH
     void ExportMED( in string file, in boolean auto_groups )
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Return string representation of a MED file version comprising nbDigits
+     */
+    string GetVersionString(in MED_VERSION version, in short nbDigits);
+
     /*!
      * Export Mesh to DAT, UNV and STL Formats
+     * (UNV supported version is I-DEAS 10)
      */
     void ExportDAT( in string file )
       raises (SALOME::SALOME_Exception);
@@ -397,6 +571,9 @@ module SMESH
     long NbElements()
       raises (SALOME::SALOME_Exception);
 
+    long Nb0DElements()
+      raises (SALOME::SALOME_Exception);
+
     long NbEdges()
       raises (SALOME::SALOME_Exception);
 
@@ -492,7 +669,7 @@ module SMESH
     /*!
      * Get mesh pointer
      */
-    long GetMeshPtr();
+    long long GetMeshPtr();
 
     /*!
      * Get XYZ coordinates of node as list of double
@@ -506,20 +683,35 @@ module SMESH
      */
     long_array GetNodeInverseElements(in long id);
 
+    /*!
+     * \brief Return position of a node on shape
+     */
+    NodePosition GetNodePosition(in long NodeID);
+
     /*!
      * If given element is node returns IDs of shape from position
-     * else - return ID of result shape after ::FindShape()
-     * from SMESH_MeshEditor
-     * If there is not element for given ID - returns -1
+     * If there is not node for given ID - returns -1
      */
     long GetShapeID(in long id);
 
+    /*!
+     * For given element returns ID of result shape after 
+     * ::FindShape() from SMESH_MeshEditor
+     * If there is not element for given ID - returns -1
+     */
+    long GetShapeIDForElem(in long id);
+
     /*!
      * Returns number of nodes for given element
      * If there is not element for given ID - returns -1
      */
     long GetElemNbNodes(in long id);
 
+    /*!
+     * Returns IDs of nodes of given element
+     */
+    long_array GetElemNodes(in long id);
+
     /*!
      * Returns ID of node by given index for given element
      * If there is not element for given ID - returns -1
@@ -566,6 +758,24 @@ module SMESH
      */
     double_array BaryCenter(in long id);
 
+    /*! Gets information about imported MED file */
+    SALOME_MED::MedFileInfo GetMEDFileInfo();
+
+    /*!
+     *  Sets list of notebook variables used for Mesh operations separated by ":" symbol
+     *  \param theParameters is a string containing the notebook variables
+     */
+    void SetParameters (in string theParameters);
+
+    /*!
+     *  Returns list of notebook variables used for Mesh operations separated by ":" symbol
+     */
+    string GetParameters();
+
+    /*!
+     *  Returns list of notebook variables used for last Mesh operation
+     */
+    string_array GetLastParameters();
   };
 
   interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
@@ -630,324 +840,6 @@ module SMESH
       raises (SALOME::SALOME_Exception);
   };
 
-  /*!
-   * This interface makes modifications on the Mesh - removing elements and nodes etc.
-   */
-  interface NumericalFunctor;
-  interface SMESH_MeshEditor
-  {
-    boolean RemoveElements(in long_array IDsOfElements);
-
-    boolean RemoveNodes(in long_array IDsOfNodes);
-
-    long AddNode(in double x, in double y, in double z);
-
-    long AddEdge(in long_array IDsOfNodes);
-
-    long AddFace(in long_array IDsOfNodes);
-
-    long AddPolygonalFace(in long_array IdsOfNodes);
-
-    long AddVolume(in long_array IDsOfNodes);
-
-    /*!
-     *  Create volume of many faces, giving nodes for each face.
-     *  \param IdsOfNodes List of node IDs for volume creation face by face.
-     *  \param Quantities List of integer values, Quantities[i]
-     *         gives quantity of nodes in face number i.
-     */
-    long AddPolyhedralVolume (in long_array IdsOfNodes,
-                                in long_array Quantities);
-
-    /*!
-     *  Create volume of many faces, giving IDs of existing faces.
-     *  \param IdsOfFaces List of face IDs for volume creation.
-     *  \note The created volume will refer only to nodes
-     *        of the given faces, not to the faces itself.
-     */
-    long AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
-
-    boolean MoveNode(in long NodeID, in double x, in double y, in double z);
-
-    boolean InverseDiag(in long NodeID1, in long NodeID2);
-
-    boolean DeleteDiag(in long NodeID1, in long NodeID2);
-
-    boolean Reorient(in long_array IDsOfElements);
-
-    boolean ReorientObject(in SMESH_IDSource theObject);
-
-    /*!
-     * \brief Fuse neighbour triangles into quadrangles.
-     * \param theElems     The triangles to be fused.
-     * \param theCriterion Is used to choose a neighbour to fuse with.
-     * \param theMaxAngle  Is a max angle between element normals at which fusion
-     *                     is still performed; theMaxAngle is mesured in radians.
-     * \return TRUE in case of success, FALSE otherwise.
-     */
-    boolean TriToQuad (in long_array       IDsOfElements,
-                      in NumericalFunctor Criterion,
-                      in double           MaxAngle);
-
-    /*!
-     * \brief Fuse neighbour triangles into quadrangles.
-     *
-     * Behaves like the above method, taking list of elements from \a theObject
-     */
-    boolean TriToQuadObject (in SMESH_IDSource   theObject,
-                            in NumericalFunctor Criterion,
-                            in double           MaxAngle);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     * \param theElems     The faces to be splitted.
-     * \param theCriterion Is used to choose a diagonal for splitting.
-     * \return TRUE in case of success, FALSE otherwise.
-     */
-    boolean QuadToTri (in long_array       IDsOfElements,
-                      in NumericalFunctor Criterion);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     *
-     * Behaves like the above method, taking list of elements from \a theObject
-     */
-    boolean QuadToTriObject (in SMESH_IDSource   theObject,
-                            in NumericalFunctor Criterion);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     * \param theElems  The faces to be splitted.
-     * \param the13Diag Is used to choose a diagonal for splitting.
-     * \return TRUE in case of success, FALSE otherwise.
-     */
-    boolean SplitQuad (in long_array IDsOfElements,
-                      in boolean    Diag13);
-
-    /*!
-     * \brief Split quadrangles into triangles.
-     *
-     * Behaves like the above method, taking list of elements from \a theObject
-     */
-    boolean SplitQuadObject (in SMESH_IDSource theObject,
-                            in boolean        Diag13);
-
-    /*!
-     *  Find better splitting of the given quadrangle.
-     *  \param IDOfQuad  ID of the quadrangle to be splitted.
-     *  \param Criterion A criterion to choose a diagonal for splitting.
-     *  \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);
-
-    enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
-
-    boolean Smooth(in long_array    IDsOfElements,
-                   in long_array    IDsOfFixedNodes,
-                   in long          MaxNbOfIterations,
-                   in double        MaxAspectRatio,
-                   in Smooth_Method Method);
-
-    boolean SmoothObject(in SMESH_IDSource  theObject,
-                        in long_array      IDsOfFixedNodes,
-                        in long            MaxNbOfIterations,
-                        in double          MaxAspectRatio,
-                        in Smooth_Method   Method);
-
-    boolean SmoothParametric(in long_array    IDsOfElements,
-                             in long_array    IDsOfFixedNodes,
-                             in long          MaxNbOfIterations,
-                             in double        MaxAspectRatio,
-                             in Smooth_Method Method);
-
-    boolean SmoothParametricObject(in SMESH_IDSource  theObject,
-                                   in long_array      IDsOfFixedNodes,
-                                   in long            MaxNbOfIterations,
-                                   in double          MaxAspectRatio,
-                                   in Smooth_Method   Method);
-
-    void ConvertToQuadratic(in boolean theForce3d);
-
-    boolean ConvertFromQuadratic();
-
-    void RenumberNodes();
-
-    void RenumberElements();
-
-    void RotationSweep(in long_array       IDsOfElements,
-                       in AxisStruct       Axix,
-                       in double           AngleInRadians,
-                       in long             NbOfSteps,
-                       in double           Tolerance);
-
-    void RotationSweepObject(in SMESH_IDSource  theObject,
-                            in AxisStruct      Axix,
-                            in double          AngleInRadians,
-                            in long            NbOfSteps,
-                            in double          Tolerance);
-
-    void ExtrusionSweep(in long_array      IDsOfElements,
-                        in DirStruct       StepVector,
-                        in long            NbOfSteps);
-
-   /*!
-    * Generate new elements by extrusion of theElements 
-    * by StepVector by NbOfSteps
-    * param ExtrFlags set flags for performing extrusion
-    * param SewTolerance - uses for comparing locations of nodes if flag
-    *   EXTRUSION_FLAG_SEW is set
-    */
-    void AdvancedExtrusion(in long_array      IDsOfElements,
-                           in DirStruct       StepVector,
-                           in long            NbOfSteps,
-                          in long            ExtrFlags,
-                          in double          SewTolerance);
-
-    void ExtrusionSweepObject(in SMESH_IDSource  theObject,
-                             in DirStruct       StepVector,
-                             in long            NbOfSteps);
-
-    void ExtrusionSweepObject1D(in SMESH_IDSource theObject,
-                               in DirStruct      StepVector,
-                               in long           NbOfSteps);
-
-    void ExtrusionSweepObject2D(in SMESH_IDSource theObject,
-                               in DirStruct      StepVector,
-                               in long           NbOfSteps);
-
-    enum Extrusion_Error {
-      EXTR_OK,
-      EXTR_NO_ELEMENTS,
-      EXTR_PATH_NOT_EDGE,
-      EXTR_BAD_PATH_SHAPE,
-      EXTR_BAD_STARTING_NODE,
-      EXTR_BAD_ANGLES_NUMBER,
-      EXTR_CANT_GET_TANGENT
-      };
-
-    Extrusion_Error ExtrusionAlongPath(in long_array        IDsOfElements,
-                                      in SMESH_Mesh        PathMesh,
-                                      in GEOM::GEOM_Object PathShape,
-                                      in long              NodeStart,
-                                      in boolean           HasAngles,
-                                      in double_array      Angles,
-                                      in boolean           HasRefPoint,
-                                      in PointStruct       RefPoint);
-
-    Extrusion_Error ExtrusionAlongPathObject(in SMESH_IDSource    theObject,
-                                            in SMESH_Mesh        PathMesh,
-                                            in GEOM::GEOM_Object PathShape,
-                                            in long              NodeStart,
-                                            in boolean           HasAngles,
-                                            in double_array      Angles,
-                                            in boolean           HasRefPoint,
-                                            in PointStruct       RefPoint);
-
-    enum MirrorType { POINT, AXIS, PLANE };
-
-    void Mirror (in long_array       IDsOfElements,
-                 in AxisStruct       Mirror,
-                 in MirrorType       theMirrorType,
-                 in boolean          Copy);
-
-    void MirrorObject (in SMESH_IDSource  theObject,
-                      in AxisStruct      Mirror,
-                      in MirrorType      theMirrorType,
-                      in boolean         Copy);
-
-    void Translate (in long_array      IDsOfElements,
-                    in DirStruct       Vector,
-                    in boolean         Copy);
-
-    void TranslateObject (in SMESH_IDSource  theObject,
-                         in DirStruct       Vector,
-                         in boolean         Copy);
-
-    void Rotate (in long_array       IDsOfElements,
-                 in AxisStruct       Axis,
-                 in double           AngleInRadians,
-                 in boolean          Copy);
-
-    void RotateObject (in SMESH_IDSource  theObject,
-                      in AxisStruct      Axis,
-                      in double          AngleInRadians,
-                      in boolean         Copy);
-
-    void FindCoincidentNodes (in  double              Tolerance,
-                              out array_of_long_array GroupsOfNodes);
-
-    void MergeNodes (in array_of_long_array GroupsOfNodes);
-
-    void MergeEqualElements();
-
-    enum Sew_Error {
-      SEW_OK,
-      SEW_BORDER1_NOT_FOUND,
-      SEW_BORDER2_NOT_FOUND,
-      SEW_BOTH_BORDERS_NOT_FOUND,
-      SEW_BAD_SIDE_NODES,
-      SEW_VOLUMES_TO_SPLIT,
-      // for SewSideElements() only:
-      SEW_DIFF_NB_OF_ELEMENTS,
-      SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
-      SEW_BAD_SIDE1_NODES,
-      SEW_BAD_SIDE2_NODES
-      };
-
-    Sew_Error SewFreeBorders (in long FirstNodeID1,
-                              in long SecondNodeID1,
-                              in long LastNodeID1,
-                              in long FirstNodeID2,
-                              in long SecondNodeID2,
-                              in long LastNodeID2,
-                             in boolean CreatePolygons,
-                             in boolean CreatePolyedrs);
-
-    Sew_Error SewConformFreeBorders (in long FirstNodeID1,
-                                     in long SecondNodeID1,
-                                     in long LastNodeID1,
-                                     in long FirstNodeID2,
-                                     in long SecondNodeID2);
-
-    Sew_Error SewBorderToSide (in long FirstNodeIDOnFreeBorder,
-                               in long SecondNodeIDOnFreeBorder,
-                               in long LastNodeIDOnFreeBorder,
-                               in long FirstNodeIDOnSide,
-                               in long LastNodeIDOnSide,
-                              in boolean CreatePolygons,
-                              in boolean CreatePolyedrs);
-
-    Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
-                               in long_array IDsOfSide2Elements,
-                               in long       NodeID1OfSide1ToMerge,
-                               in long       NodeID1OfSide2ToMerge,
-                               in long       NodeID2OfSide1ToMerge,
-                               in long       NodeID2OfSide2ToMerge);
-
-   /*!
-    * Set new nodes for given element.
-    * If number of nodes is not corresponded to type of
-    * element - returns false
-    */
-    boolean ChangeElemNodes(in long ide, in long_array newIDs);
-
-   /*!
-    * If during last operation of MeshEditor some nodes were
-    * created this method returns list of it's IDs, if new nodes
-    * not creared - returns empty list
-    */
-    long_array GetLastCreatedNodes();
-
-   /*!
-    * If during last operation of MeshEditor some elements were
-    * created this method returns list of it's IDs, if new elements
-    * not creared - returns empty list
-    */
-    long_array GetLastCreatedElems();
-
-  };
 };
 
 #endif