X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_subMesh.cxx;h=f58cbe5b3456d37bfeeb99d8da57cc1b57dfd9c0;hb=2c751a0eddb8c36cbd7582543d6b18d6a3e827e1;hp=52d711462d4bba8625849eba1e9bc0b0d836f9ef;hpb=eacfc191ebed11302c14984098025d77dcbb93a3;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx index 52d711462..f58cbe5b3 100644 --- a/src/SMESH/SMESH_subMesh.cxx +++ b/src/SMESH/SMESH_subMesh.cxx @@ -201,7 +201,7 @@ SMESH_Algo* SMESH_subMesh::GetAlgo() const if ( !_algo ) { SMESH_subMesh* me = const_cast< SMESH_subMesh* >( this ); - me->_algo = _father->GetGen()->GetAlgo( me ); + me->_algo = _father->GetGen()->GetAlgo( me, & me->_algoShape ); } return _algo; } @@ -2120,8 +2120,9 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen, return _subShape; const bool skipAuxHyps = false; - list aUsedHyp = + list usedHyps = theAlgo->GetUsedHypothesis( *_father, _subShape, skipAuxHyps ); // copy + std::list < TopoDS_Shape > assiShapes = theAlgo->GetAssignedShapes(); // put in a compound all shapes with the same hypothesis assigned // and a good ComputeState @@ -2148,7 +2149,9 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen, { SMESH_Algo* anAlgo = subMesh->GetAlgo(); if (( anAlgo->IsSameName( *theAlgo )) && // same algo - ( anAlgo->GetUsedHypothesis( *_father, S, skipAuxHyps ) == aUsedHyp )) // same hyps + ( anAlgo->GetUsedHypothesis( *_father, S, skipAuxHyps ) == usedHyps ) && // same hyps + ( anAlgo->GetAssignedShapes() == assiShapes ) && // on same sub-shapes + ( _algoShape == subMesh->_algoShape )) { aBuilder.Add( aCompound, S ); if ( !subMesh->SubMeshesComputed() )