Salome HOME
0021459: EDF 1495 SMESH: Manipulation of discrete elements with attributes
[modules/smesh.git] / idl / SMESH_Mesh.idl
index 1b34d81d7ffeba823e78298f16fee75dbf6ac999..a729eb09a7ca89c46a9ae0460acf35e776a770f5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
@@ -71,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
@@ -134,6 +137,7 @@ module SMESH
     Geom_PYRAMID,
     Geom_HEXA,
     Geom_PENTA,
+    Geom_HEXAGONAL_PRISM,
     Geom_POLYHEDRA
   };
   
@@ -161,6 +165,7 @@ module SMESH
     Entity_Quad_Triangle,
     Entity_Quadrangle,
     Entity_Quad_Quadrangle,
+    Entity_BiQuad_Quadrangle,
     Entity_Polygon,
     Entity_Quad_Polygon,
     Entity_Tetra,
@@ -169,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
@@ -194,7 +201,7 @@ module SMESH
     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 sub-shape, nor a group
     HYP_BAD_GEOMETRY, // geometry mismatches algorithm's expectation
     HYP_NEED_SHAPE    // algorithm can work on shape only
   };
@@ -264,7 +271,8 @@ module SMESH
     long_array GetMeshInfo();
 
     /*!
-     * Returns types of elements it contains
+     * Returns types of elements it contains.
+     * It's empty if the SMESH_IDSource contains no IDs
      */
     array_of_ElementType GetTypes();
 
@@ -272,10 +280,18 @@ module SMESH
      * Returns the mesh
      */
     SMESH_Mesh GetMesh();
+
+    /*!
+     * Returns false if GetMeshInfo() returns incorrect information that may
+     * happen if mesh data is not yet fully loaded from the file of study.
+     */
+    boolean IsMeshInfoCorrect();
   };
 
   interface SMESH_Group;
   interface SMESH_GroupOnGeom;
+  interface Filter;
+  interface SMESH_GroupOnFilter;
   interface SMESH_subMesh;
   interface SMESH_MeshEditor;
 
@@ -297,12 +313,30 @@ module SMESH
     GEOM::GEOM_Object GetShapeToMesh()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Return false if the mesh is not yet fully loaded from the study file
+     */
+    boolean IsLoaded()
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Load full mesh data from the study file
+     */
+    void Load()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Remove all nodes and elements
      */
     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
      */
@@ -310,9 +344,9 @@ module SMESH
       raises (SALOME::SALOME_Exception);
 
     /*!
-     * Get the subMesh object associated to a subShape. The subMesh object
+     * Get the subMesh object associated to a Sub-shape. The subMesh object
      * gives access to nodes and elements IDs.
-     * SubMesh will be used instead of SubShape in a next idl version to
+     * SubMesh will be used instead of Sub-shape in a next idl version to
      * adress a specific subMesh...
      */
     SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
@@ -329,15 +363,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 group
+     * Create a group from geometry
      */
-    SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
-                                          in string name,
-                                          in GEOM::GEOM_Object theGeomObject )
+    SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType       elemType,
+                                           in string            name,
+                                           in GEOM::GEOM_Object geomObject )
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Create a group from filter
+     */
+    SMESH_GroupOnFilter CreateGroupFromFilter( in ElementType   elemType,
+                                               in string        name,
+                                               in SMESH::Filter filter )
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -434,26 +476,26 @@ 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);
 
     /*!
-     * Add hypothesis to the mesh, under a particular subShape
+     * Add hypothesis to the mesh, under a particular Sub-shape
      * (or the main shape itself)
      * The Add method is only used to prepare the build of the mesh and store
      * the algorithms and associated parameters.
      * Actual job of mesh the shape is done by MESH_Gen.
      * @params
-     * - aSubShape : subShape obtained by a shape explode in GEOM
+     * - aSubShape : sub-shape obtained by a shape explode in GEOM
      *   (or main shape)
      * - anHyp : hypothesis object
      * @return
-     * - OK if the hypothesis is compatible with the subShape
-     *   (and all previous hypothesis on the subShape)
-     * - NOK if the hypothesis is not compatible with the subShape
-     *   (or one previous hypothesis on the subShape)
+     * - OK if the hypothesis is compatible with the sub-shape
+     *   (and all previous hypothesis on the sub-shape)
+     * - NOK if the hypothesis is not compatible with the sub-shape
+     *   (or one previous hypothesis on the sub-shape)
      * raises exception if hypothesis has not been created
      */
     Hypothesis_Status AddHypothesis(in GEOM::GEOM_Object aSubObject,
@@ -473,7 +515,7 @@ module SMESH
 //       raises (SALOME::SALOME_Exception);
 
     /*!
-     * Get the list of hypothesis added on a subShape
+     * Get the list of hypothesis added on a sub-shape
      */
     ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Object aSubObject)
       raises (SALOME::SALOME_Exception);
@@ -593,6 +635,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
      */
@@ -606,6 +655,9 @@ module SMESH
     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, 
@@ -656,6 +708,9 @@ module SMESH
     long NbQuadranglesOfOrder(in ElementOrder order)
       raises (SALOME::SALOME_Exception);
 
+    long NbBiQuadQuadrangles()
+      raises (SALOME::SALOME_Exception);
+
     long NbPolygons()
       raises (SALOME::SALOME_Exception);
 
@@ -677,6 +732,9 @@ module SMESH
     long NbHexasOfOrder(in ElementOrder order)
       raises (SALOME::SALOME_Exception);
 
+    long NbTriQuadraticHexas()
+      raises (SALOME::SALOME_Exception);
+
     long NbPyramids()
       raises (SALOME::SALOME_Exception);
 
@@ -689,6 +747,9 @@ module SMESH
     long NbPrismsOfOrder(in ElementOrder order)
       raises (SALOME::SALOME_Exception);
 
+    long NbHexagonalPrisms()
+      raises (SALOME::SALOME_Exception);
+
     long NbPolyhedrons()
       raises (SALOME::SALOME_Exception);