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=42e91ca81e242e4fada36e103e038cd95219bc21;hp=5278ed889f580d82b749bcd20cedcb8b4c92c46a;hb=e85e13ee2a8e2484050471ff8e4dea298abe481a;hpb=45b7e5c3e156b516962f86d15df69b12d8060363 diff --git a/src/SMESH_I/SMESH_Group_i.hxx b/src/SMESH_I/SMESH_Group_i.hxx index 5278ed889..42e91ca81 100644 --- a/src/SMESH_I/SMESH_Group_i.hxx +++ b/src/SMESH_I/SMESH_Group_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -48,7 +48,8 @@ class SMESH_PreMeshInfo; // =========== class SMESH_I_EXPORT SMESH_GroupBase_i: public virtual POA_SMESH::SMESH_GroupBase, - public virtual SALOME::GenericObj_i + public virtual SALOME::GenericObj_i, + public SMESH::NotifyerAndWaiter // defined in SMESH_Filter_i.hxx { public: SMESH_GroupBase_i(PortableServer::POA_ptr thePOA, @@ -100,6 +101,13 @@ class SMESH_I_EXPORT SMESH_GroupBase_i: */ virtual SALOMEDS::TMPFile* GetVtkUgStream(); + /*! + * Returns \c true if \c this group depends on the \a other via + * FT_BelongToMeshGroup predicate or vice versa + */ + virtual CORBA::Boolean IsInDependency( SMESH::SMESH_GroupBase_ptr other ); + + // Internal C++ interface int GetLocalID() const { return myLocalID; } SMESH_Mesh_i* GetMeshServant() const { return myMeshServant; } @@ -168,13 +176,12 @@ class SMESH_I_EXPORT SMESH_GroupOnGeom_i: }; // ========================= -// Group deined by filter +// Group denied 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_GroupBase_i { public: SMESH_GroupOnFilter_i( PortableServer::POA_ptr thePOA, @@ -189,13 +196,17 @@ class SMESH_I_EXPORT SMESH_GroupOnFilter_i: static SMESH_PredicatePtr GetPredicate( SMESH::Filter_ptr ); // CORBA interface implementation - void SetFilter(SMESH::Filter_ptr theFilter); + void SetFilter(SMESH::Filter_ptr theFilter) throw (SALOME::SALOME_Exception); SMESH::Filter_ptr GetFilter(); + virtual CORBA::Boolean IsUpToDate(); virtual SMESH::long_array* GetListOfID(); virtual SMESH::long_array* GetMeshInfo(); + //! @return false in two cases: 1) if mesh not loaded and GetMeshInfo() returns + //! incorrect information 2) mesh loaded but group contents is not computed. + virtual bool IsMeshInfoCorrect(); - // method of SMESH::Filter_i::TPredicateChangeWaiter - virtual void PredicateChanged(); + // method of SMESH::NotifyerAndWaiter to update self when myFilter changes + virtual void OnBaseObjModified(NotifyerAndWaiter* filter, bool); private: SMESH::Filter_var myFilter;