Salome HOME
0021347: [CEA 497] Visualisation into SMESH and VISU of hexagonal prism cells (MED_OC...
[modules/smesh.git] / idl / SMESH_Mesh.idl
index a06e663d55aae4e9715c2019642663fc3d83d684..ed4ba369b3788dae600c815f204cd46107ce7a61 100644 (file)
@@ -1,23 +1,23 @@
-//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2011  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
+// 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
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// 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
@@ -37,6 +37,8 @@ module SMESH
   typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
   interface SMESH_GroupBase;
   typedef sequence<SMESH_GroupBase> ListOfGroups;
+  interface SMESH_IDSource;
+  typedef sequence<SMESH_IDSource> ListOfIDSources;
 
   typedef sequence<double    > double_array ;
   typedef sequence<long      > long_array ;
@@ -69,7 +71,10 @@ module SMESH
       ADD_QUADPYRAMID,
       ADD_QUADPENTAHEDRON,
       ADD_QUADHEXAHEDRON,
-      ADD_ELEM0D
+      ADD_ELEM0D,
+      ADD_BIQUAD_QUADRANGLE,
+      ADD_TRIQUAD_HEXA,
+      ADD_HEXAGONAL_PRISM
     };
 
   struct log_block
@@ -116,6 +121,7 @@ module SMESH
     VOLUME,
     ELEM0D
   };
+  typedef sequence<ElementType> array_of_ElementType ;
 
   /*!
    * Enumeration for element geometry type, like in SMDS
@@ -131,6 +137,7 @@ module SMESH
     Geom_PYRAMID,
     Geom_HEXA,
     Geom_PENTA,
+    Geom_HEXAGONAL_PRISM,
     Geom_POLYHEDRA
   };
   
@@ -145,8 +152,8 @@ module SMESH
 
 
   /*!
-   * Enumeration of entity type uses in mesh info array,
-   *  and should be synchronised with enum in SMDS  
+   * Enumeration of entity type used in mesh info array,
+   * it should be synchronised with enum SMDSAbs_EntityType
    */
   enum EntityType
   {
@@ -158,6 +165,7 @@ module SMESH
     Entity_Quad_Triangle,
     Entity_Quadrangle,
     Entity_Quad_Quadrangle,
+    Entity_BiQuad_Quadrangle,
     Entity_Polygon,
     Entity_Quad_Polygon,
     Entity_Tetra,
@@ -166,8 +174,10 @@ module SMESH
     Entity_Quad_Pyramid,
     Entity_Hexa,
     Entity_Quad_Hexa,
+    Entity_TriQuad_Hexa,
     Entity_Penta,
     Entity_Quad_Penta,
+    Entity_Hexagonal_Prism,
     Entity_Polyhedra,
     Entity_Quad_Polyhedra,
     Entity_Last
@@ -245,6 +255,8 @@ module SMESH
                              long_array  elementConnectivities;
                              types_array elementTypes; };
 
+  interface SMESH_Mesh;
+
   interface SMESH_IDSource
   {
     /*!
@@ -254,13 +266,26 @@ module SMESH
 
     /*!
      * Returns statistic of mesh elements
-     * Result array of number enityties
+     * @return array of number enityties by index of EntityType
      */
     long_array GetMeshInfo();
+
+    /*!
+     * Returns types of elements it contains.
+     * It's empty if the SMESH_IDSource contains no IDs
+     */
+    array_of_ElementType GetTypes();
+
+    /*!
+     * Returns the mesh
+     */
+    SMESH_Mesh GetMesh();
   };
 
   interface SMESH_Group;
   interface SMESH_GroupOnGeom;
+  interface Filter;
+  interface SMESH_GroupOnFilter;
   interface SMESH_subMesh;
   interface SMESH_MeshEditor;
 
@@ -288,6 +313,12 @@ module SMESH
     void Clear()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     *  Get the list of sub-meshes existing in the mesh
+     */
+    submesh_array GetSubMeshes()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Remove all nodes and elements of submesh
      */
@@ -314,15 +345,23 @@ module SMESH
      * Create a group
      */
     SMESH_Group CreateGroup( in ElementType elem_type,
-                            in string name )
+                            in string      name )
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Create a group from geometry
+     */
+    SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType       elemType,
+                                           in string            name,
+                                           in GEOM::GEOM_Object geomObject )
       raises (SALOME::SALOME_Exception);
 
     /*!
-     * Create a group from geometry group
+     * Create a group from filter
      */
-    SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
-                                          in string name,
-                                          in GEOM::GEOM_Object theGeomObject )
+    SMESH_GroupOnFilter CreateGroupFromFilter( in ElementType   elemType,
+                                               in string        name,
+                                               in SMESH::Filter filter )
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -419,9 +458,9 @@ module SMESH
       raises (SALOME::SALOME_Exception);
 
     /*!
-     * Convert group on geometry into standalone group
+     * Convert group on geometry or on filter into standalone group
      */
-    SMESH_Group ConvertToStandalone( in SMESH_GroupOnGeom theGeomGroup )
+    SMESH_Group ConvertToStandalone( in SMESH_GroupBase theGroupOn )
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -535,14 +574,31 @@ module SMESH
     /*!
      * Export Mesh to different MED Formats
      * @params
+     * - file : name of the MED file
      * - auto_groups : boolean parameter for creating/not creating
      *   the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
      *   the typical use is auto_groups=false.
-     * - theVersion : define the version of format of MED file, that will be created
+     * - version : define the version of format of MED file, that will be created
      * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
      */
-    void ExportToMEDX( in string file, in boolean auto_groups, in MED_VERSION theVersion, in boolean overwrite )
-      raises (SALOME::SALOME_Exception);
+    void ExportToMEDX( in string      file, 
+                       in boolean     auto_groups, 
+                       in MED_VERSION version, 
+                       in boolean     overwrite ) raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Export a part of Mesh into a MED file
+     * @params
+     * - meshPart : a part of mesh to store
+     * - file : name of the MED file
+     * - version : define the version of format of MED file, that will be created
+     * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
+     */
+    void ExportPartToMED( in SMESH_IDSource meshPart, 
+                          in string         file, 
+                          in boolean        auto_groups,
+                          in MED_VERSION    version,
+                          in boolean        overwrite ) raises (SALOME::SALOME_Exception);
 
     /*!
      * Export Mesh to different MED Formats
@@ -561,6 +617,13 @@ module SMESH
     void ExportMED( in string file, in boolean auto_groups )
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Export Mesh to SAUV formatted file
+     * Write a temporary med file and use med2sauv
+     */
+    void ExportSAUV( in string file, in boolean auto_groups )
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Return string representation of a MED file version comprising nbDigits
      */
@@ -570,12 +633,20 @@ module SMESH
      * Export Mesh to DAT, UNV and STL Formats
      * (UNV supported version is I-DEAS 10)
      */
-    void ExportDAT( in string file )
-      raises (SALOME::SALOME_Exception);
-    void ExportUNV( in string file )
-      raises (SALOME::SALOME_Exception);
-    void ExportSTL( in string file, in boolean isascii )
-      raises (SALOME::SALOME_Exception);
+    void ExportDAT( in string file ) raises (SALOME::SALOME_Exception);
+    void ExportUNV( in string file ) raises (SALOME::SALOME_Exception);
+    void ExportSTL( in string  file,
+                    in boolean isascii ) raises (SALOME::SALOME_Exception);
+    void ExportCGNS( in SMESH_IDSource meshPart, 
+                     in string         file,
+                     in boolean        overwrite ) raises (SALOME::SALOME_Exception);
+    void ExportPartToDAT( in SMESH_IDSource meshPart, 
+                          in string         file ) raises (SALOME::SALOME_Exception);
+    void ExportPartToUNV( in SMESH_IDSource meshPart, 
+                          in string         file ) raises (SALOME::SALOME_Exception);
+    void ExportPartToSTL( in SMESH_IDSource meshPart,
+                          in string         file,
+                          in boolean        isascii ) raises (SALOME::SALOME_Exception);
 
     /*!
      * Get MED Mesh
@@ -619,6 +690,9 @@ module SMESH
     long NbQuadranglesOfOrder(in ElementOrder order)
       raises (SALOME::SALOME_Exception);
 
+    long NbBiQuadQuadrangles()
+      raises (SALOME::SALOME_Exception);
+
     long NbPolygons()
       raises (SALOME::SALOME_Exception);
 
@@ -640,6 +714,9 @@ module SMESH
     long NbHexasOfOrder(in ElementOrder order)
       raises (SALOME::SALOME_Exception);
 
+    long NbTriQuadraticHexas()
+      raises (SALOME::SALOME_Exception);
+
     long NbPyramids()
       raises (SALOME::SALOME_Exception);
 
@@ -652,6 +729,9 @@ module SMESH
     long NbPrismsOfOrder(in ElementOrder order)
       raises (SALOME::SALOME_Exception);
 
+    long NbHexagonalPrisms()
+      raises (SALOME::SALOME_Exception);
+
     long NbPolyhedrons()
       raises (SALOME::SALOME_Exception);