Salome HOME
fix "Clear mesh data"
[modules/smesh.git] / idl / SMESH_Gen.idl
index 92270813be23843781485fae1b96a35d3521ed10..cad0d9f620614bac2f301d17014507adaef492e3 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -43,6 +43,35 @@ module SMESH
   interface FilterManager;
   interface SMESH_Pattern;
 
+  /*!
+   * Tags definition
+   */
+  // Top level
+  const long Tag_HypothesisRoot = 1; // hypotheses root
+  const long Tag_AlgorithmsRoot = 2; // algorithms root
+  const long Tag_FirstMeshRoot  = 3; // first mesh root
+  // Mesh/Submesh
+  const long Tag_RefOnShape             = 1; // references to shape
+  const long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
+  const long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
+  // Mesh only: sub-meshes roots by type
+  const long Tag_FirstSubMesh           =  4;
+  const long Tag_SubMeshOnVertex        =  4;
+  const long Tag_SubMeshOnEdge          =  5;
+  const long Tag_SubMeshOnWire          =  6;
+  const long Tag_SubMeshOnFace          =  7;
+  const long Tag_SubMeshOnShell         =  8;
+  const long Tag_SubMeshOnSolid         =  9;
+  const long Tag_SubMeshOnCompound      = 10;
+  const long Tag_LastSubMesh            = 10;
+  // Mesh only: group roots by type
+  const long Tag_FirstGroup             = 11;
+  const long Tag_NodeGroups             = 11;
+  const long Tag_EdgeGroups             = 12;
+  const long Tag_FaceGroups             = 13;
+  const long Tag_VolumeGroups           = 14;
+  const long Tag_LastGroup              = 14;
+
   /*!
    * Hypothesis definintion error
    */
@@ -72,16 +101,19 @@ module SMESH
   };
   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
+    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
+    boolean hasBadMesh; // there are elements preventing computation available for visualization
   };
   typedef sequence<ComputeError> compute_error_array;
 
 
   interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
   {
+    //GEOM::GEOM_Gen SetGeomEngine( in string containerLoc );
+    void SetGeomEngine( in GEOM::GEOM_Gen geomcompo );
 
     FilterManager CreateFilterManager();
 
@@ -205,6 +237,13 @@ module SMESH
                                           in GEOM::GEOM_Object theSubObject )
       raises ( SALOME::SALOME_Exception );
 
+    /*!
+     * Return mesh elements preventing computation of a subshape
+     */
+    MeshPreviewStruct GetBadInputElements( in SMESH_Mesh theMesh,
+                                           in short      theSubShapeID )
+      raises ( SALOME::SALOME_Exception );
+
     /*!
      * Return indeces of faces, edges and vertices of given subshapes
      * within theMainObject
@@ -244,6 +283,26 @@ module SMESH
                           in double     theMergeTolerance)
       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.
+     * Create the groups of all elements from initial meshes.
+     */
+    SMESH_Mesh ConcatenateWithGroups(in mesh_array theMeshesArray, 
+                                    in boolean    theUniteIdenticalGroups, 
+                                     in boolean    theMergeNodesAndElements, 
+                                     in double     theMergeTolerance)
+      raises ( SALOME::SALOME_Exception );
+
+    /*!
+     * \brief Return id of object, registered in current study context
+     *
+     * Can be used to check if the object was created in the same container, as this engine.
+     */
+    long GetObjectId(in Object theObject);
   };
 
 };