X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_MeshAlgos.hxx;h=88b1c6d247c8f7d950bded2407e61c4a248069e6;hp=10af7a63673cc72e514780e47cc0e6ea72aab41a;hb=7a713be33b27d6a8c77f983460f0e97e52c6ff7c;hpb=54d669640def1c7dd6461432564f2c78439fe9ca diff --git a/src/SMESHUtils/SMESH_MeshAlgos.hxx b/src/SMESHUtils/SMESH_MeshAlgos.hxx index 10af7a636..88b1c6d24 100644 --- a/src/SMESHUtils/SMESH_MeshAlgos.hxx +++ b/src/SMESHUtils/SMESH_MeshAlgos.hxx @@ -172,7 +172,55 @@ namespace SMESH_MeshAlgos const SMDS_MeshNode* node1 ); /*! - * \brief Return SMESH_NodeSearcher. The caller is responsible for deleteing it + * \brief Mark elements given by SMDS_Iterator + */ + template< class ElemIter > + void MarkElems( ElemIter it, const bool isMarked ) + { + while ( it->more() ) it->next()->setIsMarked( isMarked ); + } + /*! + * \brief Mark elements given by std iterators + */ + template< class ElemIter > + void MarkElems( ElemIter it, ElemIter end, const bool isMarked ) + { + for ( ; it != end; ++it ) (*it)->setIsMarked( isMarked ); + } + /*! + * \brief Mark nodes of elements given by SMDS_Iterator + */ + template< class ElemIter > + void MarkElemNodes( ElemIter it, const bool isMarked, const bool markElem = false ) + { + if ( markElem ) + while ( it->more() ) { + const SMDS_MeshElement* e = it->next(); + e->setIsMarked( isMarked ); + MarkElems( e->nodesIterator(), isMarked ); + } + else + while ( it->more() ) + MarkElems( it->next()->nodesIterator(), isMarked ); + } + /*! + * \brief Mark elements given by std iterators + */ + template< class ElemIter > + void MarkElemNodes( ElemIter it, ElemIter end, const bool isMarked, const bool markElem = false ) + { + if ( markElem ) + for ( ; it != end; ++it ) { + (*it)->setIsMarked( isMarked ); + MarkElems( (*it)->nodesIterator(), isMarked ); + } + else + for ( ; it != end; ++it ) + MarkElems( (*it)->nodesIterator(), isMarked ); + } + + /*! + * \brief Return SMESH_NodeSearcher. The caller is responsible for deleting it */ SMESHUtils_EXPORT SMESH_NodeSearcher* GetNodeSearcher( SMDS_Mesh& mesh );