X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_SubMesh.cxx;h=1e7dd6ab39c81a6925d7b1c4336c059b2b22559e;hp=32f89c9a62983ed7a61ef996cef37494967aec95;hb=dbf226547fc4b1b1c901ab994db7c1708dd6576d;hpb=18dade91d06a5b9964bb5604dbfdbc0ff4deef0a diff --git a/src/SMESHDS/SMESHDS_SubMesh.cxx b/src/SMESHDS/SMESHDS_SubMesh.cxx index 32f89c9a6..1e7dd6ab3 100644 --- a/src/SMESHDS/SMESHDS_SubMesh.cxx +++ b/src/SMESHDS/SMESHDS_SubMesh.cxx @@ -117,13 +117,22 @@ bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * ME, bool isElemDele { if (!ME) { - MESSAGE("-----------------> Remove Null Element " << isElemDeleted); return false; } if (!IsComplexSubmesh()) { - if ( ME->getshapeId() != myIndex ) + if ( ME->getshapeId() != myIndex ) // elem not in a pool can loose it's data already + { + if ( isElemDeleted ) + for ( size_t i = 0; i < myElements.size(); ++i ) + if ( myElements[i] == ME ) + { + myElements[i] = 0; + ++myUnusedIdElements; + return true; + } return false; + } int idInSubShape = ME->getIdInShape(); SMDS_MeshElement* elem = (SMDS_MeshElement*) (ME); elem->setShapeId(0); @@ -140,7 +149,6 @@ bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * ME, bool isElemDele } return false; } - MESSAGE("Try to remove an element from a complex submesh "); return false; } @@ -182,7 +190,17 @@ bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N, bool isNodeDeleted) if (!IsComplexSubmesh()) { if ( N->getshapeId() != myIndex ) + { + if ( isNodeDeleted ) + for ( size_t i = 0; i < myNodes.size(); ++i ) + if ( myNodes[i] == N ) + { + myNodes[i] = 0; + ++myUnusedIdNodes; + return true; + } return false; + } int idInSubShape = N->getIdInShape(); SMDS_MeshNode* node = (SMDS_MeshNode*) (N); node->setShapeId(0); @@ -199,13 +217,12 @@ bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N, bool isNodeDeleted) } return false; } - MESSAGE("Try to remove a node from a complex submesh"); return false; } //======================================================================= //function : NbElements -//purpose : +//purpose : //======================================================================= int SMESHDS_SubMesh::NbElements() const