X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_Mesh.cxx;h=944df5abff9201b8bc555e706e74a16028dfed36;hp=880cda0e30cd1a93612a99c464643eeed9f9e749;hb=64be032249f21ff884326a9b1d5e6b1a6eed93dc;hpb=8c1dfe2d90664a70f4451f77af48c1cde5638b60;ds=sidebyside diff --git a/src/SMESHDS/SMESHDS_Mesh.cxx b/src/SMESHDS/SMESHDS_Mesh.cxx index 880cda0e3..944df5abf 100644 --- a/src/SMESHDS/SMESHDS_Mesh.cxx +++ b/src/SMESHDS/SMESHDS_Mesh.cxx @@ -1782,10 +1782,11 @@ void SMESHDS_Mesh::compactMesh() int nbNodes = myNodes.size(); int nbVtkNodes = myGrid->GetNumberOfPoints(); MESSAGE("nbNodes=" << nbNodes << " nbVtkNodes=" << nbVtkNodes); - if (nbNodes > nbVtkNodes) nbVtkNodes = nbNodes; + int nbNodeTemp = nbVtkNodes; + if (nbNodes > nbVtkNodes) nbNodeTemp = nbNodes; vector idNodesOldToNew; idNodesOldToNew.clear(); - idNodesOldToNew.resize(nbVtkNodes, -1); // all unused id will be -1 + idNodesOldToNew.resize(nbNodeTemp, -1); // all unused id will be -1 bool areNodesModified = ! myNodeIDFactory->isPoolIdEmpty(); MESSAGE("------------------------------------------------- SMESHDS_Mesh::compactMesh " << areNodesModified); @@ -1804,16 +1805,19 @@ void SMESHDS_Mesh::compactMesh() { for (int i=0; i nbVtkNodes) + newNodeSize = nbVtkNodes; // else 0 means nothing to change (no need to compact vtkPoints) } int newCellSize = 0; int nbCells = myCells.size(); int nbVtkCells = myGrid->GetNumberOfCells(); MESSAGE("nbCells=" << nbCells << " nbVtkCells=" << nbVtkCells); - if (nbCells > nbVtkCells) nbVtkCells = nbCells; + int nbCellTemp = nbVtkCells; + if (nbCells > nbVtkCells) nbCellTemp = nbCells; vector idCellsOldToNew; idCellsOldToNew.clear(); - idCellsOldToNew.resize(nbVtkCells, -1); // all unused id will be -1 + idCellsOldToNew.resize(nbCellTemp, -1); // all unused id will be -1 for (int i=0; i " << newid); - myNodes[i]->setId(newid); - ASSERT(!myNodes[newid]); - myNodes[newid] = myNodes[i]; - } + //MESSAGE(i << " --> " << newid);; + myNodes[i]->setId(newid); + newNodes[newid] = myNodes[i]; } } + myNodes.swap(newNodes); this->myNodeIDFactory->emptyPool(newNodeSize); } @@ -1882,6 +1886,7 @@ void SMESHDS_Mesh::compactMesh() { if (myCells[i]) { + //MESSAGE(newSmdsId << " " << i); newCells[newSmdsId] = myCells[i]; int idvtk = myCells[i]->getVtkId(); newSmdsToVtk[newSmdsId] = idvtk;