Salome HOME
SMDS: Fix use of this->CellLocations due to vtk changes.
authorPascal Obry <pascal.obry@edf.fr>
Thu, 20 Feb 2020 14:38:56 +0000 (15:38 +0100)
committervsr <vsr@opencascade.com>
Mon, 2 Mar 2020 10:58:18 +0000 (13:58 +0300)
This fixes many smesh tests. 159 where failing (out of 160)
and now only 59 are failing. So 100 tests fixed.

src/SMDS/SMDS_UnstructuredGrid.cxx

index 0a928ad11a5510f0bc2727a21ef37eec8a71c577..ce46543bf730bd4860d520c61d752626273dc91d 100644 (file)
@@ -320,12 +320,14 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
     newFaceLocations->Squeeze();
     newFaces->Squeeze();
     this->SetCells( newTypes, newLocations, newConnectivity, newFaceLocations, newFaces );
+    this->CellLocations = newLocations;
     newFaceLocations->Delete();
     newFaces->Delete();
   }
   else
   {
     this->SetCells( newTypes, newLocations, newConnectivity, FaceLocations, Faces );
+    this->CellLocations = newLocations;
   }
 
   newTypes->Delete();
@@ -360,7 +362,8 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *  newTypes,
   {
     int iOld = idCellsNewToOld[ iNew ];
     newTypes->SetValue( iNew, this->Types->GetValue( iOld ));
-    vtkIdType oldLoc = this->CellLocations->GetValue( iOld );
+
+    vtkIdType oldLoc = ((vtkIdTypeArray *)(this->Connectivity->GetOffsetsArray()))->GetValue( iOld );
     vtkIdType nbpts;
     vtkIdType const *oldPtsCell(nullptr);
     this->Connectivity->GetCell( oldLoc, nbpts, oldPtsCell );