Salome HOME
PLA13330( When mesh generation does not success, trace where )
[modules/smesh.git] / idl / SMESH_Gen.idl
index ee234b95e943727c35ce4e1b49ff090eaa1c4a03..92270813be23843781485fae1b96a35d3521ed10 100644 (file)
@@ -15,7 +15,7 @@
 //  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 module SMESH
 {
   typedef sequence<GEOM::GEOM_Object> object_array;
-  typedef sequence<SMESH_Mesh> mesh_array;
+  typedef sequence<SMESH_Mesh>        mesh_array;
 
   interface FilterManager;
   interface SMESH_Pattern;
 
-  enum AlgoStateErrorName { MISSING_ALGO, MISSING_HYPO, NOT_CONFORM_MESH };
-  struct AlgoStateError {
-    AlgoStateErrorName name;
+  /*!
+   * Hypothesis definintion error
+   */
+  struct AlgoStateError 
+  {
+    Hypothesis_Status  state;
     string             algoName;
     long               algoDim;
     boolean            isGlobalAlgo;
   };
   typedef sequence<AlgoStateError> algo_error_array;
-    
+
+  /*!
+   * Mesh computation error
+   */
+  enum ComputeErrorName
+  {
+    COMPERR_OK            ,
+    COMPERR_BAD_INPUT_MESH,  // wrong mesh on lower submesh
+    COMPERR_STD_EXCEPTION ,  // some std exception raised
+    COMPERR_OCC_EXCEPTION ,  // OCC exception raised
+    COMPERR_SLM_EXCEPTION ,  // SALOME exception raised
+    COMPERR_EXCEPTION     ,  // other exception raised
+    COMPERR_MEMORY_PB     ,  // memory allocation problem
+    COMPERR_ALGO_FAILED   ,  // computation failed
+    COMPERR_BAD_SHAPE        // bad geometry
+  };
+  struct ComputeError
+  {
+    short  code;       // ComputeErrorName or, if negative, algo specific code
+    string comment;    // textual problem description
+    string algoName;
+    short  subShapeID; // id of subshape of a shape to mesh
+  };
+  typedef sequence<ComputeError> compute_error_array;
+
+
   interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
   {
 
@@ -113,8 +141,15 @@ module SMESH
     SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject )
       raises ( SALOME::SALOME_Exception );
     
+    /*!
+     * Create a empty mesh object
+     */
+    SMESH_Mesh CreateEmptyMesh()
+      raises ( SALOME::SALOME_Exception );
+    
     /*!
      * Create Mesh object importing data from given UNV file
+     * (UNV supported version is I-DEAS 10)
      */
     SMESH_Mesh CreateMeshesFromUNV( in string theFileName )
       raises ( SALOME::SALOME_Exception );
@@ -163,7 +198,16 @@ module SMESH
       raises ( SALOME::SALOME_Exception );
 
     /*!
-     * 
+     * Return errors of mesh computation
+     * compute_error_array is empty if everything is OK
+     */
+    compute_error_array GetComputeErrors( in SMESH_Mesh        theMesh, 
+                                          in GEOM::GEOM_Object theSubObject )
+      raises ( SALOME::SALOME_Exception );
+
+    /*!
+     * Return indeces of faces, edges and vertices of given subshapes
+     * within theMainObject
      */
     long_array GetSubShapesId( in GEOM::GEOM_Object theMainObject,
                                in object_array      theListOfSubObjects )
@@ -179,6 +223,27 @@ module SMESH
                                                 in string      theGeomName)
       raises ( SALOME::SALOME_Exception );
 
+    /*!
+     * Return geometrical object the given element is built on.
+     * The returned geometrical object not published in study by this method.
+     */
+    GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh  theMesh,
+                                                in long        theElementID)
+      raises ( SALOME::SALOME_Exception );
+
+    /*!
+     * Concatenate the given meshes into one mesh.
+     * Union groups with the same name and type if
+     * theUniteIdenticalGroups flag is true.
+     * Merge coincident nodes and elements if 
+     * theMergeNodesAndElements flag is true.
+     */
+    SMESH_Mesh Concatenate(in mesh_array theMeshesArray, 
+                          in boolean    theUniteIdenticalGroups, 
+                          in boolean    theMergeNodesAndElements, 
+                          in double     theMergeTolerance)
+      raises ( SALOME::SALOME_Exception );
+
   };
 
 };