X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_UnstructuredGrid.cxx;h=bf9df36cffc1c1c80eb5fa3b3fde23e680f301a0;hb=c80762b0a1cdba101aec4aa2b1cae281331a162e;hp=7e88bd37e86dd9008eef6f1c2409b1e68b9319c3;hpb=6b1de623316c78e9bc6e18b7e2a98883bd800ff1;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_UnstructuredGrid.cxx b/src/SMDS/SMDS_UnstructuredGrid.cxx index 7e88bd37e..bf9df36cf 100644 --- a/src/SMDS/SMDS_UnstructuredGrid.cxx +++ b/src/SMDS/SMDS_UnstructuredGrid.cxx @@ -125,9 +125,9 @@ SMDS_UnstructuredGrid::~SMDS_UnstructuredGrid() { } -unsigned long SMDS_UnstructuredGrid::GetMTime() +vtkMTimeType SMDS_UnstructuredGrid::GetMTime() { - unsigned long mtime = vtkUnstructuredGrid::GetMTime(); + vtkMTimeType mtime = vtkUnstructuredGrid::GetMTime(); return mtime; } @@ -189,13 +189,14 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector& idNodesOldToNew, int n // --- if newNodeSize, create a new compacted vtkPoints - vtkPoints *newPoints = vtkPoints::New(); - newPoints->SetDataType(VTK_DOUBLE); - newPoints->SetNumberOfPoints(newNodeSize); - if (newNodeSize) + if ( newNodeSize ) { // rnv: to fix bug "21125: EDF 1233 SMESH: Degradation of precision in a test case for quadratic conversion" // using double type for storing coordinates of nodes instead float. + vtkPoints *newPoints = vtkPoints::New(); + newPoints->SetDataType(VTK_DOUBLE); + newPoints->SetNumberOfPoints(newNodeSize); + int oldNodeSize = idNodesOldToNew.size(); int i = 0; @@ -211,21 +212,16 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector& idNodesOldToNew, int n int endBloc = i; copyNodes(newPoints, idNodesOldToNew, alreadyCopied, startBloc, endBloc); } - newPoints->Squeeze(); - } - - if (1/*newNodeSize*/) - { this->SetPoints(newPoints); + newPoints->Delete(); } - newPoints->Delete(); - + this->Points->Squeeze(); // --- create new compacted Connectivity, Locations and Types int oldCellSize = this->Types->GetNumberOfTuples(); - if ( oldCellSize == newCellSize ) // no holes in elements + if ( !newNodeSize && oldCellSize == newCellSize ) // no holes in elements { this->Connectivity->Squeeze(); this->Locations->Squeeze();