Salome HOME
Fix for bugs IPAL11916, IPAL11917.
[modules/smesh.git] / idl / SMESH_Mesh.idl
index c2234028caaf06e289e57629037079a8bea6be08..4b7b547071a67cef08821288b484f5fc4c877747 100644 (file)
@@ -69,7 +69,14 @@ module SMESH
       MOVE_NODE,
       CHANGE_ELEMENT_NODES,
       CHANGE_POLYHEDRON_NODES,
-      RENUMBER
+      RENUMBER,
+      ADD_QUADEDGE,
+      ADD_QUADTRIANGLE,
+      ADD_QUADQUADRANGLE,
+      ADD_QUADTETRAHEDRON,
+      ADD_QUADPYRAMID,
+      ADD_QUADPENTAHEDRON,
+      ADD_QUADHEXAHEDRON
     };
 
   struct log_block
@@ -119,7 +126,8 @@ module SMESH
     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_DIM,      // bad dimension
+    HYP_BAD_SUBSHAPE  // shape is neither the main one, nor its subshape, nor a group
   };
 
   /*!
@@ -147,6 +155,14 @@ module SMESH
   typedef sequence<log_block> log_array;
 
 
+  /*!
+   * Auxilary flags for advanced extrusion.
+   * BOUNDARY: create or not boundary for result of extrusion
+   * SEW:      try to use existing nodes or create new nodes in any case
+   */
+  const long EXTRUSION_FLAG_BOUNDARY = 1;
+  const long EXTRUSION_FLAG_SEW = 2;
+  
   interface SMESH_IDSource
   {
     /*!
@@ -327,6 +343,11 @@ module SMESH
     SMESH_MeshEditor GetMeshEditor()
       raises (SALOME::SALOME_Exception);
 
+    /*! Check group names for duplications.
+     *  Consider maximum group name length stored in MED file.
+     */
+    boolean HasDuplicatedGroupNamesMED();
+
     /*!
      * Export Mesh to different MED Formats
      * @params
@@ -415,11 +436,23 @@ module SMESH
 
     long_array GetNodesId()
       raises (SALOME::SALOME_Exception);
+    
+    /*!
+     * Returns type of mesh element
+     */    
+    ElementType GetElementType( in long id, in boolean iselem )
+      raises (SALOME::SALOME_Exception);
 
     /*!
      * Get mesh description
      */
     string Dump();
+
+    /*!
+     * Get mesh pointer
+     */
+    long GetMeshPtr();
+
   };
 
   interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
@@ -447,6 +480,12 @@ module SMESH
      */
     long_array GetElementsByType( in ElementType theType )
       raises (SALOME::SALOME_Exception);
+    
+    /*!
+     * Return type of submesh element
+     */
+    ElementType GetElementType( in long id, in boolean iselem )
+      raises (SALOME::SALOME_Exception);
 
     /*!
      *
@@ -494,6 +533,8 @@ module SMESH
 
     boolean AddFace(in long_array IDsOfNodes);
 
+    boolean AddPolygonalFace(in long_array IdsOfNodes);
+
     boolean AddVolume(in long_array IDsOfNodes);
 
     /*!
@@ -634,6 +675,19 @@ module SMESH
                         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);