Salome HOME
fix bug 12361. In SetName(): there may be no study
[modules/smesh.git] / idl / SMESH_Group.idl
index 9842df2..3cbb606 100644 (file)
@@ -22,6 +22,7 @@
 //  Author : Sergey ANIKIN, OCC
 //  $Header$
 
+
 #ifndef _SMESH_GROUP_IDL_
 #define _SMESH_GROUP_IDL_
 
 
 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
@@ -63,21 +66,11 @@ module SMESH
     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 );
 
     /*!
-     * Adds elements to the group
-     */
-    long Add( in long_array elem_ids );
-
-    /*!
      * Returns ID of an element at position <elem_index>
      */
     long GetID( in long elem_index );
@@ -88,15 +81,52 @@ module SMESH
     long_array GetListOfID();
 
     /*!
-     * Removes elements from the group
+     * Returns the mesh object this group belongs to
      */
-    long Remove( in long_array elem_ids );
+    SMESH_Mesh GetMesh();
 
     /*!
-     * Returns the mesh object this group belongs to
+     * Sets group color number
      */
-    SMESH_Mesh GetMesh();
+    void SetColorNumber( in long color );
+
+    /*!
+     * Returns group color number
+     */
+    long GetColorNumber();
   }; 
+
+  /*!
+   * 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();
+  };
+
 };