X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_GroupOnFilter.hxx;h=be49ddae72ba89013e5845f44727a4bf573ceed9;hp=b1e33e5fc7ba4a9065bbdf074d9ec3df3f115f8f;hb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/SMESHDS/SMESHDS_GroupOnFilter.hxx b/src/SMESHDS/SMESHDS_GroupOnFilter.hxx index b1e33e5fc..be49ddae7 100644 --- a/src/SMESHDS/SMESHDS_GroupOnFilter.hxx +++ b/src/SMESHDS/SMESHDS_GroupOnFilter.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2013 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 @@ -46,7 +46,18 @@ class SMESHDS_EXPORT SMESHDS_GroupOnFilter: public SMESHDS_GroupBase SMESH_PredicatePtr GetPredicate() const { return myPredicate; } - virtual int Extent() const; + std::vector< int > GetMeshInfo() const; + + template< typename IDTYPE > + int GetElementIds( IDTYPE* ids ) const + { + return getElementIds( (void*)ids, sizeof(IDTYPE)); + } + + + virtual int Extent() const; + + virtual bool IsEmpty(); virtual bool Contains (const int theID); @@ -54,21 +65,22 @@ class SMESHDS_EXPORT SMESHDS_GroupOnFilter: public SMESHDS_GroupBase virtual SMDS_ElemIteratorPtr GetElements() const; - virtual int GetID (const int theIndex); - - virtual int GetTic() const; + virtual int GetTic() const; - bool IsUpToDate() const; + bool IsUpToDate() const; private: void update() const; void setChanged(bool changed=true); + const SMDS_MeshElement* setNbElemToSkip( SMDS_ElemIteratorPtr& elIt ); + int getElementIds( void* ids, size_t idSize ) const; SMESH_PredicatePtr myPredicate; - std::vector< const SMDS_MeshElement*> myElements; - unsigned long myMeshModifTime; // when myElements was filled + std::vector< int > myMeshInfo; + size_t myMeshModifTime; // when myMeshInfo was updated int myPredicateTic; + size_t myNbElemToSkip; }; #endif