In RemoveElement(), find sub-mesh by elt->getshapeId()

This commit is contained in:
eap 2013-07-22 14:08:46 +00:00
parent 5bdade8015
commit e74e528833

View File

@ -915,11 +915,12 @@ void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
if (!hasConstructionEdges() && !hasConstructionFaces())
{
SMESHDS_SubMesh* subMesh=0;
map<int,SMESHDS_SubMesh*>::iterator SubIt = myShapeIndexToSubMesh.begin();
for ( ; !subMesh && SubIt != myShapeIndexToSubMesh.end(); SubIt++ )
if (!SubIt->second->IsComplexSubmesh() && SubIt->second->Contains( elt ))
if ( elt->getshapeId() > 0 )
{
map<int,SMESHDS_SubMesh*>::iterator SubIt = myShapeIndexToSubMesh.find( elt->getshapeId() );
if ( SubIt != myShapeIndexToSubMesh.end() )
subMesh = SubIt->second;
//MESSAGE("subMesh " << elt->getshapeId());
}
RemoveFreeElement( elt, subMesh, true);
return;
}