-// Copyright (C) 2007-2012 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
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// ===========
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,
virtual SMESH::SMESH_Mesh_ptr GetMesh();
/*!
- * Returns statistic of mesh elements
- * Result array of number enityties
+ * Returns number of mesh elements of each \a EntityType
+ * Result array of number of elements per \a EntityType
* Inherited from SMESH_IDSource
*/
virtual SMESH::long_array* GetMeshInfo();
-
- // Inherited from SMESH_IDSource interface
+ /*!
+ * Returns number of mesh elements of each \a ElementType
+ */
+ virtual SMESH::long_array* GetNbElementsByType();
+ /*!
+ * Returns a sequence of all element IDs
+ */
virtual SMESH::long_array* GetIDs();
-
/*!
* Returns types of elements it contains
* Inherited from SMESH_IDSource interface
* happen if mesh data is not yet fully loaded from the file of study.
*/
virtual bool IsMeshInfoCorrect();
+ /*!
+ * Returns mesh unstructed grid information.
+ */
+ 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; }
};
// =========================
-// 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,
// CORBA interface implementation
void SetFilter(SMESH::Filter_ptr theFilter);
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;