Salome HOME
IMP 10199 (add Volume Control). Add Volume3D NumericalFunctor
[modules/smesh.git] / idl / SMESH_Group.idl
index 9842df2f6f682ebace0a6870c513cfb17b73232e..37657674bf4f41da09810991f347e283cfa83f62 100644 (file)
@@ -22,6 +22,7 @@
 //  Author : Sergey ANIKIN, OCC
 //  $Header$
 
 //  Author : Sergey ANIKIN, OCC
 //  $Header$
 
+
 #ifndef _SMESH_GROUP_IDL_
 #define _SMESH_GROUP_IDL_
 
 #ifndef _SMESH_GROUP_IDL_
 #define _SMESH_GROUP_IDL_
 
 
 module SMESH
 {
 
 module SMESH
 {
+  interface Predicate;
+
   /*!
   /*!
-   * SMESH_Group: interface of group object
+   * SMESH_Group: base interface of group object
    */
    */
-  interface SMESH_Group : SALOME::GenericObj
+  interface SMESH_GroupBase : SALOME::GenericObj, SMESH_IDSource
   {
     /*!
      * Sets group name
   {
     /*!
      * Sets group name
@@ -62,21 +65,11 @@ module SMESH
      */
     boolean IsEmpty();
 
      */
     boolean IsEmpty();
 
-    /*!
-     * Clears the group's contents
-     */
-    void Clear();
-
     /*!
      * returns true if the group contains an element with ID == <elem_id> 
      */
     boolean Contains( in long elem_id );
 
     /*!
      * returns true if the group contains an element with ID == <elem_id> 
      */
     boolean Contains( in long elem_id );
 
-    /*!
-     * Adds elements to the group
-     */
-    long Add( in long_array elem_ids );
-
     /*!
      * Returns ID of an element at position <elem_index>
      */
     /*!
      * Returns ID of an element at position <elem_index>
      */
@@ -87,16 +80,43 @@ module SMESH
      */
     long_array GetListOfID();
 
      */
     long_array GetListOfID();
 
-    /*!
-     * Removes elements from the group
-     */
-    long Remove( in long_array elem_ids );
-
     /*!
      * Returns the mesh object this group belongs to
      */
     SMESH_Mesh GetMesh();
   }; 
     /*!
      * Returns the mesh object this group belongs to
      */
     SMESH_Mesh GetMesh();
   }; 
+
+  /*!
+   * SMESH_Group: interface of group object
+   */
+  interface SMESH_Group : SMESH_GroupBase
+  {
+    /*!
+     * Clears the group's contents
+     */
+    void Clear();
+
+    /*!
+     * Adds elements to the group
+     */
+    long Add( in long_array elem_ids );
+    long AddByPredicate( in Predicate thePredicate );
+
+    /*!
+     * Removes elements from the group
+     */
+    long Remove( in long_array elem_ids );
+    long RemoveByPredicate( in Predicate thePredicate );
+
+  };
+  /*!
+   * SMESH_Group: interface of group object linked to geometry
+   */
+  interface SMESH_GroupOnGeom : SMESH_GroupBase
+  {
+    GEOM::GEOM_Object GetShape();
+  };
+
 };
 
 
 };