+// =========================
+// Group deined by filter
+// =========================
+
+class SMESH_I_EXPORT SMESH_GroupOnFilter_i:
+ public virtual POA_SMESH::SMESH_GroupOnFilter,
+ public SMESH_GroupBase_i,
+ public SMESH::Filter_i::TPredicateChangeWaiter
+{
+ public:
+ SMESH_GroupOnFilter_i( PortableServer::POA_ptr thePOA,
+ SMESH_Mesh_i* theMeshServant,
+ const int theLocalID );
+ ~SMESH_GroupOnFilter_i();
+
+ // Persistence
+ static SMESH::Filter_ptr StringToFilter(const std::string& thePersistentString );
+ std::string FilterToString() const;
+
+ static SMESH_PredicatePtr GetPredicate( SMESH::Filter_ptr );
+
+ // CORBA interface implementation
+ void SetFilter(SMESH::Filter_ptr theFilter);
+ SMESH::Filter_ptr GetFilter();
+ virtual SMESH::long_array* GetListOfID();
+ virtual SMESH::long_array* GetMeshInfo();
+
+ // method of SMESH::Filter_i::TPredicateChangeWaiter
+ virtual void PredicateChanged();
+
+ private:
+ SMESH::Filter_var myFilter;
+};