Bug 0016617: Regression in V5.1.1rc3: the groups are not generated.

This commit is contained in:
jfa 2009-03-19 14:41:11 +00:00
parent 9fd4726f74
commit 0556492614
2 changed files with 12 additions and 11 deletions

View File

@ -701,7 +701,7 @@ void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
else
SubIt = myShapeIndexToSubMesh.begin();
for ( ; !subMesh && SubIt != myShapeIndexToSubMesh.end(); SubIt++ )
if ( SubIt->second->Contains( n ))
if (!SubIt->second->IsComplexSubmesh() && SubIt->second->Contains( n ))
subMesh = SubIt->second;
RemoveFreeNode( n, subMesh, true);
@ -764,7 +764,7 @@ void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
SMESHDS_SubMesh* subMesh=0;
map<int,SMESHDS_SubMesh*>::iterator SubIt = myShapeIndexToSubMesh.begin();
for ( ; !subMesh && SubIt != myShapeIndexToSubMesh.end(); SubIt++ )
if ( SubIt->second->Contains( elt ))
if (!SubIt->second->IsComplexSubmesh() && SubIt->second->Contains( elt ))
subMesh = SubIt->second;
RemoveFreeElement( elt, subMesh, true);

View File

@ -243,17 +243,18 @@ SMDS_NodeIteratorPtr SMESHDS_SubMesh::GetNodes() const
bool SMESHDS_SubMesh::Contains(const SMDS_MeshElement * ME) const
{
// DO NOT TRY TO FIND A REMOVED ELEMENT !!
if ( IsComplexSubmesh() || !ME )
//if ( IsComplexSubmesh() || !ME )
if (!ME )
return false;
// if ( IsComplexSubmesh() )
// {
// set<const SMESHDS_SubMesh*>::const_iterator aSubIt = mySubMeshes.begin();
// for ( ; aSubIt != mySubMeshes.end(); aSubIt++ )
// if ( (*aSubIt)->Contains( ME ))
// return true;
// return false;
// }
if ( IsComplexSubmesh() )
{
set<const SMESHDS_SubMesh*>::const_iterator aSubIt = mySubMeshes.begin();
for ( ; aSubIt != mySubMeshes.end(); aSubIt++ )
if ( (*aSubIt)->Contains( ME ))
return true;
return false;
}
if ( ME->GetType() == SMDSAbs_Node )
return ( myNodes.find( ME ) != myNodes.end() );