+// ======
+// Group
+// ======
+
+class SMESH_I_EXPORT SMESH_Group_i:
+ public virtual POA_SMESH::SMESH_Group,
+ public SMESH_GroupBase_i
+{
+ public:
+ SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
+
+ // CORBA interface implementation
+ void Clear();
+ CORBA::Long Add( const SMESH::long_array& theIDs );
+ CORBA::Long Remove( const SMESH::long_array& theIDs );
+
+ CORBA::Long AddByPredicate( SMESH::Predicate_ptr thePredicate );
+ CORBA::Long RemoveByPredicate( SMESH::Predicate_ptr thePredicate );
+};
+
+// =========================
+// Group linked to geometry
+// =========================
+
+class SMESH_I_EXPORT SMESH_GroupOnGeom_i:
+ public virtual POA_SMESH::SMESH_GroupOnGeom,
+ public SMESH_GroupBase_i
+{
+ public:
+ SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
+
+ // CORBA interface implementation
+ GEOM::GEOM_Object_ptr GetShape();
+};