BUG: mesh.Append( nodeGroup ) adds nodes twice

This commit is contained in:
eap 2019-11-05 22:00:23 +03:00
parent 6d7121da90
commit db1df018eb

View File

@ -2542,7 +2542,7 @@ SMESH_Gen_i::ConcatenateCommon(const SMESH::ListOfIDSources& theMeshesArray,
continue; continue;
initImpl->Load(); initImpl->Load();
// assure that IDs increments by one during iteration // assure that IDs increment by one during iteration
::SMESH_Mesh& initLocMesh = initImpl->GetImpl(); ::SMESH_Mesh& initLocMesh = initImpl->GetImpl();
SMESHDS_Mesh* initMeshDS = initLocMesh.GetMeshDS(); SMESHDS_Mesh* initMeshDS = initLocMesh.GetMeshDS();
if ( initMeshDS->MaxNodeID() > initMeshDS->NbNodes() || if ( initMeshDS->MaxNodeID() > initMeshDS->NbNodes() ||
@ -2567,6 +2567,9 @@ SMESH_Gen_i::ConcatenateCommon(const SMESH::ListOfIDSources& theMeshesArray,
// copy elements // copy elements
SMESH::array_of_ElementType_var srcElemTypes = theMeshesArray[i]->GetTypes();
if ( srcElemTypes->length() == 1 && srcElemTypes[0] == SMESH::NODE ) // group of nodes
continue;
std::vector< const SMDS_MeshElement* > newElems( initMeshDS->NbElements() + 1, 0 ); std::vector< const SMDS_MeshElement* > newElems( initMeshDS->NbElements() + 1, 0 );
elemIt = initImpl->GetElements( theMeshesArray[i], SMESH::ALL ); elemIt = initImpl->GetElements( theMeshesArray[i], SMESH::ALL );
while ( elemIt->more() ) while ( elemIt->more() )