X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Group_i.hxx;h=2ed372adb13d1a151131acd9937598e457ea7e81;hp=2c7c1d36f6b021d62ca87248eed566409957681b;hb=64c772da5a9dd285f16f1f7efa07bb4c7fbdd4c3;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8 diff --git a/src/SMESH_I/SMESH_Group_i.hxx b/src/SMESH_I/SMESH_Group_i.hxx index 2c7c1d36f..2ed372adb 100644 --- a/src/SMESH_I/SMESH_Group_i.hxx +++ b/src/SMESH_I/SMESH_Group_i.hxx @@ -16,7 +16,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.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -25,58 +25,99 @@ // Module : SMESH // $Header$ + #ifndef SMESH_Group_i_HeaderFile #define SMESH_Group_i_HeaderFile +#include "SMESH.hxx" + #include #include CORBA_SERVER_HEADER(SMESH_Group) #include CORBA_SERVER_HEADER(SMESH_Mesh) +#include CORBA_CLIENT_HEADER(GEOM_Gen) #include "SALOME_GenericObj_i.hh" class SMESH_Mesh_i; - -class SMESH_Group_i: - public virtual POA_SMESH::SMESH_Group, +class SMESH_Group; +class SMESHDS_GroupBase; + +// =========== +// Group Base +// =========== +class SMESH_I_EXPORT SMESH_GroupBase_i: + public virtual POA_SMESH::SMESH_GroupBase, public virtual SALOME::GenericObj_i { -public: - SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID ); - virtual ~SMESH_Group_i(); + public: + SMESH_GroupBase_i(PortableServer::POA_ptr thePOA, + SMESH_Mesh_i* theMeshServant, + const int theLocalID ); + virtual ~SMESH_GroupBase_i(); // CORBA interface implementation - void SetName( const char* theName ); - + void SetName(const char* name); char* GetName(); - SMESH::ElementType GetType(); - CORBA::Long Size(); - CORBA::Boolean IsEmpty(); + CORBA::Boolean Contains(CORBA::Long elem_id); + CORBA::Long GetID(CORBA::Long elem_index); + SMESH::long_array* GetListOfID(); + SMESH::SMESH_Mesh_ptr GetMesh(); - void Clear(); + // Inherited from SMESH_IDSource interface + virtual SMESH::long_array* GetIDs(); - CORBA::Boolean Contains( CORBA::Long theID ); + // Internal C++ interface + int GetLocalID() const { return myLocalID; } + SMESH_Mesh_i* GetMeshServant() const { return myMeshServant; } + SMESH_Group* GetSmeshGroup() const; + SMESHDS_GroupBase* GetGroupDS() const; - CORBA::Long Add( const SMESH::long_array& theIDs ); + void SetColor(const SALOMEDS::Color& color); + SALOMEDS::Color GetColor(); - CORBA::Long GetID( CORBA::Long theIndex ); + void SetColorNumber(CORBA::Long color); + CORBA::Long GetColorNumber(); - SMESH::long_array* GetListOfID(); +private: + SMESH_Mesh_i* myMeshServant; + int myLocalID; +}; + +// ====== +// 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 ); - SMESH::SMESH_Mesh_ptr GetMesh(); + CORBA::Long AddByPredicate( SMESH::Predicate_ptr thePredicate ); + CORBA::Long RemoveByPredicate( SMESH::Predicate_ptr thePredicate ); +}; - // Internal C++ interface - int GetLocalID(); +// ========================= +// Group linked to geometry +// ========================= - SMESH_Mesh_i* GetMeshServant() { return myMeshServant; } +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 ); -private: - SMESH_Mesh_i* myMeshServant; - int myLocalID; + // CORBA interface implementation + GEOM::GEOM_Object_ptr GetShape(); }; - #endif