]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
Modif forced by changes in SMESH_MeshEditor::FindFaceInSet()
authoreap <eap@opencascade.com>
Thu, 4 May 2006 13:40:00 +0000 (13:40 +0000)
committereap <eap@opencascade.com>
Thu, 4 May 2006 13:40:00 +0000 (13:40 +0000)
src/SMESH/SMESH_Pattern.cxx

index 909e9f5a4aee8ae9af959132f4b80df3a2c7d96e..b5d732f5887f79b20e6f59f9185c80a4347292e0 100644 (file)
@@ -3243,8 +3243,13 @@ void SMESH_Pattern::
   myPolyElems.reserve( myIdsOnBoundary.size() );
 
   // make a set of refined elements
-  set< const SMDS_MeshElement* > avoidSet, elemSet;
-  avoidSet.insert( myElements.begin(), myElements.end() );
+  map<int,const SMDS_MeshElement* > avoidSet, elemSet;
+  std::vector<const SMDS_MeshElement*>::iterator itv =  myElements.begin();
+  for(; itv!=myElements.end(); itv++) {
+    const SMDS_MeshElement* el = (*itv);
+    avoidSet.insert( make_pair(el->GetID(),el) );
+  }
+  //avoidSet.insert( myElements.begin(), myElements.end() );
 
   map< TNodeSet, list< list< int > > >::iterator indListIt, nn_IdList;
 
@@ -3274,7 +3279,7 @@ void SMESH_Pattern::
           SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
         if ( face )
         {
-          avoidSet.insert ( face );
+          avoidSet.insert ( make_pair(face->GetID(),face) );
           myPolyElems.push_back( face );
 
           // some links of <face> are split;
@@ -3395,7 +3400,7 @@ void SMESH_Pattern::
         while ( eIt->more() )
         {
           const SMDS_MeshElement* elem = eIt->next();
-          if ( !volTool.Set( elem ) || !avoidSet.insert( elem ).second )
+          if ( !volTool.Set( elem ) || !avoidSet.insert( make_pair(elem->GetID(),elem) ).second )
             continue; // skip faces or refined elements
           // add polyhedron definition
           myPolyhedronQuantities.push_back(vector<int> ());