# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/freecad/hotfix-vtk94.patch # Copyright (C) 2025 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- From 8934af10128f0bd2d0ffada946d1c93bc5d8869f Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 16 Dec 2024 10:56:43 +0100 Subject: [PATCH] smesh: Fix build failure with vtk 9.4 Fixes #18423 --- .../src/SMDS/SMDS_UnstructuredGrid.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp index e9895d615717..4e9d6dc05764 100644 --- a/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +++ b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -249,14 +250,16 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector& idNodesOldToNew, int n } } - if (this->FaceLocations) + vtkIdTypeArray* thisFaceLocations = GetFaceLocations(); + vtkIdTypeArray* thisFaces = GetFaces(); + if (thisFaceLocations) { vtkIdTypeArray *newFaceLocations = vtkIdTypeArray::New(); newFaceLocations->Initialize(); newFaceLocations->Allocate(newTypes->GetSize()); vtkIdTypeArray *newFaces = vtkIdTypeArray::New(); newFaces->Initialize(); - newFaces->Allocate(this->Faces->GetSize()); + newFaces->Allocate(thisFaces->GetSize()); for (int i = 0; i < oldCellSize; i++) { if (this->Types->GetValue(i) == VTK_EMPTY_CELL) @@ -265,16 +268,16 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector& idNodesOldToNew, int n if (newTypes->GetValue(newCellId) == VTK_POLYHEDRON) { newFaceLocations->InsertNextValue(newFaces->GetMaxId()+1); - int oldFaceLoc = this->FaceLocations->GetValue(i); - int nCellFaces = this->Faces->GetValue(oldFaceLoc++); + int oldFaceLoc = thisFaceLocations->GetValue(i); + int nCellFaces = thisFaces->GetValue(oldFaceLoc++); newFaces->InsertNextValue(nCellFaces); for (int n=0; nFaces->GetValue(oldFaceLoc++); + int nptsInFace = thisFaces->GetValue(oldFaceLoc++); newFaces->InsertNextValue(nptsInFace); for (int k=0; kFaces->GetValue(oldFaceLoc++); + int oldpt = thisFaces->GetValue(oldFaceLoc++); newFaces->InsertNextValue(idNodesOldToNew[oldpt]); } } @@ -292,7 +295,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector& idNodesOldToNew, int n } else { - this->SetCells(newTypes, newLocations, newConnectivity, FaceLocations, Faces); + this->SetCells(newTypes, newLocations, newConnectivity, thisFaceLocations, thisFaces); } newPoints->Delete();