From owner-dev-commits-ports-all@freebsd.org Tue Jul 13 21:15:38 2021 Return-Path: Delivered-To: dev-commits-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 90B276654FD; Tue, 13 Jul 2021 21:15:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GPYMG38Mtz3Qfc; Tue, 13 Jul 2021 21:15:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5362D16BF; Tue, 13 Jul 2021 21:15:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 16DLFceV079480; Tue, 13 Jul 2021 21:15:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 16DLFcuK079479; Tue, 13 Jul 2021 21:15:38 GMT (envelope-from git) Date: Tue, 13 Jul 2021 21:15:38 GMT Message-Id: <202107132115.16DLFcuK079479@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Christoph Moench-Tegeder Subject: git: 99c2d852228a - main - cad/freecad: move patch from PATCH_FILES to files/ MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cmt X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 99c2d852228adf47ab84b0129b204ed5eea38ee4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jul 2021 21:15:38 -0000 The branch main has been updated by cmt: URL: https://cgit.FreeBSD.org/ports/commit/?id=99c2d852228adf47ab84b0129b204ed5eea38ee4 commit 99c2d852228adf47ab84b0129b204ed5eea38ee4 Author: Christoph Moench-Tegeder AuthorDate: 2021-07-13 21:09:57 +0000 Commit: Christoph Moench-Tegeder CommitDate: 2021-07-13 21:09:57 +0000 cad/freecad: move patch from PATCH_FILES to files/ github's patch file is switching the commit hashes between 11 and 12 digits: see also f4bd9d5c503b508a8d85d2c712acfcf05f1c2f9c, and today pkg-fallout complained that the patch file was back at it's "original"(?) format: "size mismatch: expected 34578, actual 34604", log: http://beefy18.nyi.freebsd.org/data/main-amd64-default/pb6f59eeeccee_s297e9f364b/logs/FreeCAD-0.19.2_3.log I regret having to put that patch into files/, but that seems better than to host other project's patches ourselfes. While here, garbage-collect files/ae641dc5278efaf.patch, which is not referenced anymore and was applied upstream for FreeCAD 0.19.2. --- cad/freecad/Makefile | 3 - cad/freecad/distinfo | 2 - cad/freecad/files/ae641dc5278efaf.patch | 186 ----- .../patch-0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25 | 820 +++++++++++++++++++++ 4 files changed, 820 insertions(+), 191 deletions(-) diff --git a/cad/freecad/Makefile b/cad/freecad/Makefile index 722c12aaab37..19339df96edd 100644 --- a/cad/freecad/Makefile +++ b/cad/freecad/Makefile @@ -6,9 +6,6 @@ PORTREVISION= 3 # DISTVERSIONSUFFIX= -g690774c0e CATEGORIES= cad -PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES= 0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25.patch:-p1 - MAINTAINER= cmt@FreeBSD.org COMMENT= General purpose 3D CAD modeller diff --git a/cad/freecad/distinfo b/cad/freecad/distinfo index 11304023d75a..bce3431badc4 100644 --- a/cad/freecad/distinfo +++ b/cad/freecad/distinfo @@ -1,5 +1,3 @@ TIMESTAMP = 1626012113 SHA256 (FreeCAD-FreeCAD-0.19.2_GH0.tar.gz) = 47e39e3d6fcafe6e0c68923fb1b86acda16986268e5e6011694057b940139fba SIZE (FreeCAD-FreeCAD-0.19.2_GH0.tar.gz) = 296987961 -SHA256 (0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25.patch) = ceaff97b8718b88856c97c3a6cf08ef9baa0900bdba7fe055754cb87227e08ce -SIZE (0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25.patch) = 34578 diff --git a/cad/freecad/files/ae641dc5278efaf.patch b/cad/freecad/files/ae641dc5278efaf.patch deleted file mode 100644 index 86858f478fca..000000000000 --- a/cad/freecad/files/ae641dc5278efaf.patch +++ /dev/null @@ -1,186 +0,0 @@ -dos2unix fixed variant of https://github.com/FreeCAD/FreeCAD/commit/ae641dc5278efaf.patch -From ae641dc5278efafa22b168fc196875558b92e436 Mon Sep 17 00:00:00 2001 -From: wmayer -Date: Sun, 7 Jun 2020 12:53:47 +0200 -Subject: [PATCH] Python: [skip ci] tp_print slot has been replaced with - tp_vectorcall_offset in Py3.8 - ---- - src/Base/swigpyrun_1.3.25.h | 8 ++++++++ - src/Base/swigpyrun_1.3.33.h | 8 ++++++++ - src/Base/swigpyrun_1.3.36.h | 9 +++++++++ - src/Base/swigpyrun_1.3.38.h | 8 ++++++++ - src/Base/swigpyrun_1.3.40.h | 12 ++++++++++-- - src/CXX/Python3/cxx_extensions.cxx | 6 ++++++ - 6 files changed, 49 insertions(+), 2 deletions(-) - -diff --git a/src/Base/swigpyrun_1.3.25.h b/src/Base/swigpyrun_1.3.25.h -index 91717210b48..9ebadbc83a2 100644 ---- a/src/Base/swigpyrun_1.3.25.h -+++ b/src/Base/swigpyrun_1.3.25.h -@@ -699,7 +699,11 @@ PySwigObject_type(void) { - 0, /*tp_itemsize*/ - /* methods */ - (destructor)PySwigObject_dealloc, /*tp_dealloc*/ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)PySwigObject_print, /*tp_print*/ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc)PySwigObject_compare, /*tp_compare*/ -@@ -859,7 +863,11 @@ PySwigPacked_type(void) { - 0, /*tp_itemsize*/ - /* methods */ - (destructor)PySwigPacked_dealloc, /*tp_dealloc*/ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)PySwigPacked_print, /*tp_print*/ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc)PySwigPacked_compare, /*tp_compare*/ -diff --git a/src/Base/swigpyrun_1.3.33.h b/src/Base/swigpyrun_1.3.33.h -index f83ac1e89c3..afd5a8c504f 100644 ---- a/src/Base/swigpyrun_1.3.33.h -+++ b/src/Base/swigpyrun_1.3.33.h -@@ -1620,7 +1620,11 @@ _PySwigObject_type(void) { - sizeof(PySwigObject), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PySwigObject_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)PySwigObject_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - #if PY_VERSION_HEX < 0x02020000 - (getattrfunc)PySwigObject_getattr, /* tp_getattr */ - #else -@@ -1790,7 +1794,11 @@ _PySwigPacked_type(void) { - sizeof(PySwigPacked), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PySwigPacked_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)PySwigPacked_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - (getattrfunc)0, /* tp_getattr */ - (setattrfunc)0, /* tp_setattr */ - (cmpfunc)PySwigPacked_compare, /* tp_compare */ -diff --git a/src/Base/swigpyrun_1.3.36.h b/src/Base/swigpyrun_1.3.36.h -index 02c58ad8ab9..12ad41e12a8 100644 ---- a/src/Base/swigpyrun_1.3.36.h -+++ b/src/Base/swigpyrun_1.3.36.h -@@ -1628,7 +1628,12 @@ _PySwigObject_type(void) { - sizeof(PySwigObject), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PySwigObject_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)PySwigObject_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif -+ - #if PY_VERSION_HEX < 0x02020000 - (getattrfunc)PySwigObject_getattr, /* tp_getattr */ - #else -@@ -1798,7 +1803,11 @@ _PySwigPacked_type(void) { - sizeof(PySwigPacked), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PySwigPacked_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)PySwigPacked_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - (getattrfunc)0, /* tp_getattr */ - (setattrfunc)0, /* tp_setattr */ - (cmpfunc)PySwigPacked_compare, /* tp_compare */ -diff --git a/src/Base/swigpyrun_1.3.38.h b/src/Base/swigpyrun_1.3.38.h -index dae058c202f..7cacc157970 100644 ---- a/src/Base/swigpyrun_1.3.38.h -+++ b/src/Base/swigpyrun_1.3.38.h -@@ -1741,7 +1741,11 @@ _PySwigObject_type(void) { - sizeof(SwigPyObject), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)SwigPyObject_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)SwigPyObject_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - #if PY_VERSION_HEX < 0x02020000 - (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ - #else -@@ -1919,7 +1923,11 @@ _PySwigPacked_type(void) { - sizeof(SwigPyPacked), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)SwigPyPacked_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - (getattrfunc)0, /* tp_getattr */ - (setattrfunc)0, /* tp_setattr */ - (cmpfunc)SwigPyPacked_compare, /* tp_compare */ -diff --git a/src/Base/swigpyrun_1.3.40.h b/src/Base/swigpyrun_1.3.40.h -index 136ba809fb7..400db8b4784 100644 ---- a/src/Base/swigpyrun_1.3.40.h -+++ b/src/Base/swigpyrun_1.3.40.h -@@ -1766,7 +1766,11 @@ _PySwigObject_type(void) { - sizeof(SwigPyObject), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)SwigPyObject_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 - (printfunc)SwigPyObject_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - #if PY_VERSION_HEX < 0x02020000 - (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ - #else -@@ -1947,8 +1951,12 @@ _PySwigPacked_type(void) { - (char *)"SwigPyPacked", /* tp_name */ - sizeof(SwigPyPacked), /* tp_basicsize */ - 0, /* tp_itemsize */ -- (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ -- (printfunc)SwigPyPacked_print, /* tp_print */ -+ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ -+#if PY_VERSION_HEX < 0x03080000 -+ (printfunc)SwigPyPacked_print, /* tp_print */ -+#else -+ 0, /*tp_vectorcall_offset*/ -+#endif - (getattrfunc)0, /* tp_getattr */ - (setattrfunc)0, /* tp_setattr */ - #if PY_VERSION_HEX>=0x03000000 -diff --git a/src/CXX/Python3/cxx_extensions.cxx b/src/CXX/Python3/cxx_extensions.cxx -index fb3da455f5b..9ff94612f07 100644 ---- a/src/CXX/Python3/cxx_extensions.cxx -+++ b/src/CXX/Python3/cxx_extensions.cxx -@@ -381,7 +381,11 @@ PythonType::PythonType( size_t basic_size, int itemsize, const char *default_nam - - // Methods to implement standard operations - table->tp_dealloc = (destructor)standard_dealloc; -+#if PY_VERSION_HEX < 0x03080000 - table->tp_print = 0; -+#else -+ table->tp_vectorcall_offset = 0; -+#endif - table->tp_getattr = 0; - table->tp_setattr = 0; - table->tp_repr = 0; -@@ -524,7 +528,9 @@ PythonType &PythonType::supportClass() - #ifdef PYCXX_PYTHON_2TO3 - PythonType &PythonType::supportPrint() - { -+#if PY_VERSION_HEX < 0x03080000 - table->tp_print = print_handler; -+#endif - return *this; - } - #endif diff --git a/cad/freecad/files/patch-0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25 b/cad/freecad/files/patch-0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25 new file mode 100644 index 000000000000..1a36b3eddc31 --- /dev/null +++ b/cad/freecad/files/patch-0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25 @@ -0,0 +1,820 @@ +This is "Make smesh compile with vtk9" from +https://github.com/FreeCAD/FreeCAD/commit/0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25.patch +slightly adopted for "make patch". +We keep a local copy here as github's patch file is not stable (checksum +keeps changing due to different commit hash representations). + +From 0cfea3fee3e7848bbf043d2b1a19f6405d7ebe25 Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Mon, 12 Oct 2020 17:56:03 +0200 +Subject: [PATCH] Make smesh compile with vtk9 + +--- + .../salomesmesh/inc/SMDS_MeshElement.hxx | 9 +++- + .../salomesmesh/inc/SMDS_UnstructuredGrid.hxx | 4 ++ + .../salomesmesh/src/SMDS/SMDS_BallElement.cpp | 9 +++- + .../salomesmesh/src/SMDS/SMDS_Downward.cpp | 44 +++++++++---------- + .../salomesmesh/src/SMDS/SMDS_Mesh.cpp | 6 ++- + .../src/SMDS/SMDS_Mesh0DElement.cpp | 12 +++++ + .../salomesmesh/src/SMDS/SMDS_MeshNode.cpp | 10 ++--- + .../src/SMDS/SMDS_UnstructuredGrid.cpp | 35 +++++++++++++-- + .../src/SMDS/SMDS_VtkCellIterator.cpp | 7 +-- + .../salomesmesh/src/SMDS/SMDS_VtkEdge.cpp | 19 +++++++- + .../salomesmesh/src/SMDS/SMDS_VtkFace.cpp | 29 ++++++++++-- + .../salomesmesh/src/SMDS/SMDS_VtkVolume.cpp | 38 +++++++++++----- + .../src/SMESH/SMESH_MeshEditor.cpp | 8 ++-- + 13 files changed, 173 insertions(+), 57 deletions(-) + +diff --git src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx b/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx +index 14a6d9a763f..0e9b9e6c905 100644 +--- src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx ++++ src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx +@@ -40,11 +40,16 @@ + + #include + #include ++#include + + //typedef unsigned short UShortType; + typedef short ShortType; + typedef int LongType; +- ++#ifdef VTK_CELL_ARRAY_V2 ++typedef const vtkIdType* vtkIdTypePtr; ++#else ++typedef vtkIdType* vtkIdTypePtr; ++#endif + class SMDS_MeshNode; + class SMDS_MeshEdge; + class SMDS_MeshFace; +@@ -192,7 +197,7 @@ protected: + //! Element index in vector SMDS_Mesh::myNodes or SMDS_Mesh::myCells + int myID; + //! index in vtkUnstructuredGrid +- int myVtkID; ++ vtkIdType myVtkID; + //! SMDS_Mesh identification in SMESH + ShortType myMeshId; + //! SubShape and SubMesh identification in SMESHDS +diff --git src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx b/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx +index 9e4a23eddfb..77465814541 100644 +--- src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx ++++ src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx +@@ -95,7 +95,11 @@ public: + std::map >& nodeQuadDomains); + vtkCellLinks* GetLinks() + { ++#ifdef VTK_CELL_ARRAY_V2 ++ return static_cast(GetCellLinks()); ++#else + return Links; ++#endif + } + SMDS_Downward* getDownArray(unsigned char vtkType) + { +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp +index 299093c94f6..2680c217305 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp +@@ -67,10 +67,16 @@ void SMDS_BallElement::SetDiameter(double diameter) + bool SMDS_BallElement::ChangeNode (const SMDS_MeshNode * node) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ grid->GetCellPoints(myVtkID, cellPoints.GetPointer()); ++ cellPoints->SetId(0, node->getVtkId()); ++#else + vtkIdType npts = 0; + vtkIdType* pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + pts[0] = node->getVtkId(); ++#endif + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; + } +@@ -83,7 +89,8 @@ void SMDS_BallElement::Print (std::ostream & OS) const + const SMDS_MeshNode* SMDS_BallElement::GetNode (const int ind) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( myVtkID, npts, pts ); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ 0 ]); + } +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp +index d6049c0bd19..a41f5c18e78 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp +@@ -303,7 +303,7 @@ int SMDS_Down1D::getNodeSet(int cellId, int* nodeSet) + void SMDS_Down1D::setNodes(int cellId, int vtkId) + { + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + _grid->GetCellPoints(vtkId, npts, pts); + // MESSAGE(vtkId << " " << npts << " " << _nbDownCells); + //ASSERT(npts == _nbDownCells); +@@ -357,7 +357,7 @@ int SMDS_Down1D::computeVtkCells(int *pts, std::vector& vtkIds) + { + vtkIdType point = pts[i]; + int numCells = _grid->GetLinks()->GetNcells(point); +- vtkIdType *cells = _grid->GetLinks()->GetCells(point); ++ vtkIdTypePtr cells = _grid->GetLinks()->GetCells(point); + for (int j = 0; j < numCells; j++) + { + int vtkCellId = cells[j]; +@@ -532,7 +532,7 @@ int SMDS_Down2D::computeVolumeIds(int cellId, int* ids) + // --- find point id's of the face + + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + _grid->GetCellPoints(cellId, npts, pts); + vector nodes; + for (int i = 0; i < npts; i++) +@@ -577,7 +577,7 @@ int SMDS_Down2D::computeVolumeIdsFromNodesFace(int* pts, int npts, int* ids) + vtkIdType point = pts[i]; + int numCells = _grid->GetLinks()->GetNcells(point); + //MESSAGE("cells pour " << i << " " << numCells); +- vtkIdType *cells = _grid->GetLinks()->GetCells(point); ++ vtkIdTypePtr cells = _grid->GetLinks()->GetCells(point); + for (int j = 0; j < numCells; j++) + { + int vtkCellId = cells[j]; +@@ -627,7 +627,7 @@ int SMDS_Down2D::computeVolumeIdsFromNodesFace(int* pts, int npts, int* ids) + void SMDS_Down2D::setTempNodes(int cellId, int vtkId) + { + vtkIdType npts = 0; +- vtkIdType *pts; // will refer to the point id's of the face ++ vtkIdTypePtr pts; // will refer to the point id's of the face + _grid->GetCellPoints(vtkId, npts, pts); + // MESSAGE(vtkId << " " << npts << " " << _nbNodes); + //ASSERT(npts == _nbNodes); +@@ -795,7 +795,7 @@ void SMDS_Down3D::getNodeIds(int cellId, std::set& nodeSet) + { + int vtkId = this->_vtkCellIds[cellId]; + vtkIdType npts = 0; +- vtkIdType *nodes; // will refer to the point id's of the volume ++ vtkIdTypePtr nodes; // will refer to the point id's of the volume + _grid->GetCellPoints(vtkId, npts, nodes); + for (int i = 0; i < npts; i++) + nodeSet.insert(nodes[i]); +@@ -1126,7 +1126,7 @@ void SMDS_DownTetra::getOrderedNodesOfFace(int cellId, std::vector& o + //MESSAGE("cellId = " << cellId); + + vtkIdType npts = 0; +- vtkIdType *nodes; // will refer to the point id's of the volume ++ vtkIdTypePtr nodes; // will refer to the point id's of the volume + _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes); + + set tofind; +@@ -1178,7 +1178,7 @@ void SMDS_DownTetra::computeFacesWithNodes(int cellId, ListElemByNodesType& face + // --- find point id's of the volume + + vtkIdType npts = 0; +- vtkIdType *nodes; // will refer to the point id's of the volume ++ vtkIdTypePtr nodes; // will refer to the point id's of the volume + _grid->GetCellPoints(cellId, npts, nodes); + + // --- create all the ordered list of node id's for each face +@@ -1234,7 +1234,7 @@ void SMDS_DownQuadTetra::getOrderedNodesOfFace(int cellId, std::vectorGetCellLinks(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkCellLinks *links = static_cast(myGrid->GetCellLinks()); ++#else ++ vtkCellLinks *links = myGrid->GetCellLinks(); ++#endif + for (int i=0; iGetNcells(i); +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp +index 95438eab064..0df32e3b97c 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp +@@ -146,6 +146,17 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN + if ( nbNodes == 1 ) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ grid->GetCellPoints(myVtkID, cellPoints.GetPointer()); ++ if (nbNodes != cellPoints->GetNumberOfIds()) ++ { ++ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes); ++ return false; ++ } ++ myNode = nodes[0]; ++ cellPoints->SetId(0, myNode->getVtkId()); ++#else + vtkIdType npts = 0; + vtkIdType* pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); +@@ -156,6 +167,7 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN + } + myNode = nodes[0]; + pts[0] = myNode->getVtkId(); ++#endif + + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp +index f647a5f1b8f..5b903c8fb55 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp +@@ -191,7 +191,7 @@ class SMDS_MeshNode_MyInvIterator: public SMDS_ElemIterator + SMDS_ElemIteratorPtr SMDS_MeshNode:: + GetInverseElementIterator(SMDSAbs_ElementType type) const + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + //MESSAGE("myID " << myID << " ncells " << l.ncells); + return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type)); + } +@@ -251,7 +251,7 @@ elementsIterator(SMDSAbs_ElementType type) const + return SMDS_MeshElement::elementsIterator(SMDSAbs_Node); + else + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type)); + } + } +@@ -350,7 +350,7 @@ void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME) + const SMDS_MeshCell *cell = dynamic_cast (ME); + assert(cell); + SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkCellLinks *Links = grid->GetCellLinks(); ++ vtkCellLinks *Links = static_cast(grid->GetCellLinks()); + Links->ResizeCellList(myVtkID, 1); + Links->AddCellReference(cell->getVtkId(), myVtkID); + } +@@ -366,7 +366,7 @@ void SMDS_MeshNode::ClearInverseElements() + + bool SMDS_MeshNode::emptyInverseElements() + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + return (l.ncells == 0); + } + +@@ -378,7 +378,7 @@ bool SMDS_MeshNode::emptyInverseElements() + + int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const + { +- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); ++ vtkCellLinks::Link l = static_cast(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID); + + if ( type == SMDSAbs_All ) + return l.ncells; +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +index fbd903b1e74..ff2b81e9694 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +@@ -139,8 +139,8 @@ int SMDS_UnstructuredGrid::InsertNextLinkedCell(int type, int npts, vtkIdType *p + for (; it != setOfNodes.end(); ++it) + { + //MESSAGE("reverse link for node " << *it << " cell " << cellid); +- this->Links->ResizeCellList(*it, 1); +- this->Links->AddCellReference(cellid, *it); ++ this->GetLinks()->ResizeCellList(*it, 1); ++ this->GetLinks()->AddCellReference(cellid, *it); + } + + return cellid; +@@ -332,9 +332,13 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *newTypes, + { + newTypes->SetValue(alreadyCopied, this->Types->GetValue(j)); + idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkIdType oldLoc = this->GetCellLocationsArray()->GetValue(j); ++#else + vtkIdType oldLoc = this->Locations->GetValue(j); ++#endif + vtkIdType nbpts; +- vtkIdType *oldPtsCell = 0; ++ vtkIdTypePtr oldPtsCell = 0; + this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell); + assert(nbpts < NBMAXNODESINCELL); + //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts ); +@@ -952,6 +956,21 @@ void SMDS_UnstructuredGrid::GetNodeIds(std::set& nodeSet, int downId, unsig + */ + void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map localClonedNodeIds) + { ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ this->GetCellPoints(vtkVolId, cellPoints.GetPointer()); ++ for (vtkIdType i = 0; i < cellPoints->GetNumberOfIds(); i++) ++ { ++ if (localClonedNodeIds.count(cellPoints->GetId(i))) ++ { ++ vtkIdType oldpt = cellPoints->GetId(i); ++ cellPoints->SetId(i, localClonedNodeIds[oldpt]); ++ //MESSAGE(oldpt << " --> " << pts[i]); ++ //this->RemoveReferenceToCell(oldpt, vtkVolId); ++ //this->AddReferenceToCell(pts[i], vtkVolId); ++ } ++ } ++#else + vtkIdType npts = 0; + vtkIdType *pts; // will refer to the point id's of the face + this->GetCellPoints(vtkVolId, npts, pts); +@@ -966,6 +985,7 @@ void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map loc + //this->AddReferenceToCell(pts[i], vtkVolId); + } + } ++#endif + } + + /*! reorder the nodes of a face +@@ -995,11 +1015,20 @@ void SMDS_UnstructuredGrid::BuildLinks() + this->Links->UnRegister(this); + } + ++#ifdef VTK_CELL_ARRAY_V2 ++ this->Links = SMDS_CellLinks::New(); ++ GetLinks()->Allocate(this->GetNumberOfPoints()); ++ GetLinks()->Register(this); ++//FIXME: vtk9 ++ GetLinks()->BuildLinks(this); ++ GetLinks()->Delete(); ++#else + this->Links = SMDS_CellLinks::New(); + this->Links->Allocate(this->GetNumberOfPoints()); + this->Links->Register(this); + this->Links->BuildLinks(this, this->Connectivity); + this->Links->Delete(); ++#endif + } + + /*! Create a volume (prism or hexahedron) by duplication of a face. +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp +index deb05985f00..63b6eabb704 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp +@@ -33,7 +33,8 @@ SMDS_VtkCellIterator::SMDS_VtkCellIterator(SMDS_Mesh* mesh, int vtkCellId, SMDSA + } + else + { +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( _cellId, npts, pts ); + _vtkIdList->SetNumberOfIds( _nbNodes = npts ); + for (int i = 0; i < _nbNodes; i++) +@@ -67,7 +68,7 @@ SMDS_VtkCellIteratorToUNV::SMDS_VtkCellIteratorToUNV(SMDS_Mesh* mesh, int vtkCel + //MESSAGE("SMDS_VtkCellInterlacedIterator (UNV)" << _type); + + _vtkIdList = vtkIdList::New(); +- vtkIdType* pts; ++ vtkIdTypePtr pts; + vtkIdType npts; + vtkUnstructuredGrid* grid = _mesh->getGrid(); + grid->GetCellPoints((vtkIdType)_cellId, npts, pts); +@@ -182,7 +183,7 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellIteratorPolyH(SMDS_Mesh* mesh, int vtkCel + { + //MESSAGE("SMDS_VtkCellIterator Polyhedra"); + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(_cellId, nFaces, ptIds); + int id = 0; + _nbNodesInFaces = 0; +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp +index 9786abf9aae..6d772a3cd4a 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp +@@ -67,6 +67,19 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode * node1, const SMDS_MeshNode + bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ grid->GetCellPoints(myVtkID, cellPoints.GetPointer()); ++ if (nbNodes != cellPoints->GetNumberOfIds()) ++ { ++ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes); ++ return false; ++ } ++ for (int i = 0; i < nbNodes; i++) ++ { ++ cellPoints->SetId(i, nodes[i]->getVtkId()); ++ } ++#else + vtkIdType npts = 0; + vtkIdType* pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); +@@ -79,6 +92,7 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + pts[i] = nodes[i]->getVtkId(); + } ++#endif + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; + } +@@ -87,7 +101,7 @@ bool SMDS_VtkEdge::IsMediumNode(const SMDS_MeshNode* node) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + //MESSAGE("IsMediumNode " << npts << " " << (node->getVtkId() == pts[npts-1])); + return ((npts == 3) && (node->getVtkId() == pts[2])); +@@ -137,7 +151,8 @@ const SMDS_MeshNode* + SMDS_VtkEdge::GetNode(const int ind) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]); + } +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp +index 1389e0d3585..cb981bfb18e 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp +@@ -101,6 +101,19 @@ void SMDS_VtkFace::initQuadPoly(const std::vector& nodeIds, SMDS_Mesh + bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ grid->GetCellPoints(myVtkID, cellPoints.GetPointer()); ++ if (nbNodes != cellPoints->GetNumberOfIds()) ++ { ++ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes); ++ return false; ++ } ++ for (int i = 0; i < nbNodes; i++) ++ { ++ cellPoints->SetId(i, nodes[i]->getVtkId()); ++ } ++#else + vtkIdType npts = 0; + vtkIdType* pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); +@@ -113,6 +126,7 @@ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + pts[i] = nodes[i]->getVtkId(); + } ++#endif + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; + } +@@ -173,7 +187,8 @@ const SMDS_MeshNode* + SMDS_VtkFace::GetNode(const int ind) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]); + } +@@ -186,7 +201,8 @@ SMDS_VtkFace::GetNode(const int ind) const + int SMDS_VtkFace::GetNodeIndex( const SMDS_MeshNode* node ) const + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); +- vtkIdType npts, *pts; ++ vtkIdType npts; ++ vtkIdTypePtr pts; + grid->GetCellPoints( this->myVtkID, npts, pts ); + for ( vtkIdType i = 0; i < npts; ++i ) + if ( pts[i] == node->getVtkId() ) +@@ -251,7 +267,7 @@ bool SMDS_VtkFace::IsMediumNode(const SMDS_MeshNode* node) const + return false; + } + vtkIdType npts = 0; +- vtkIdType* pts = 0; ++ vtkIdTypePtr pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + vtkIdType nodeId = node->getVtkId(); + for (int rank = 0; rank < npts; rank++) +@@ -356,11 +372,18 @@ SMDS_NodeIteratorPtr SMDS_VtkFace::interlacedNodesIterator() const + void SMDS_VtkFace::ChangeApex(SMDS_MeshNode* node) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ grid->GetCellPoints(myVtkID, cellPoints.GetPointer()); ++ grid->RemoveReferenceToCell(cellPoints->GetId(0), myVtkID); ++ cellPoints->SetId(0, node->getVtkId()); ++#else + vtkIdType npts = 0; + vtkIdType* pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); + grid->RemoveReferenceToCell(pts[0], myVtkID); + pts[0] = node->getVtkId(); ++#endif + node->AddInverseElement(this), + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + } +diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp +index 015edf75fd2..19ebd0746c8 100644 +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp +@@ -133,6 +133,19 @@ void SMDS_VtkVolume::initPoly(const std::vector& nodeIds, + bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes) + { + vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); ++#ifdef VTK_CELL_ARRAY_V2 ++ vtkNew cellPoints; ++ grid->GetCellPoints(myVtkID, cellPoints.GetPointer()); ++ if (nbNodes != cellPoints->GetNumberOfIds()) ++ { ++ MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes); ++ return false; ++ } ++ for (int i = 0; i < nbNodes; i++) ++ { ++ cellPoints->SetId(i, nodes[i]->getVtkId()); ++ } ++#else + vtkIdType npts = 0; + vtkIdType* pts = 0; + grid->GetCellPoints(myVtkID, npts, pts); +@@ -145,6 +158,7 @@ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes + { + pts[i] = nodes[i]->getVtkId(); + } ++#endif + SMDS_Mesh::_meshList[myMeshId]->setMyModified(); + return true; + } +@@ -207,7 +221,7 @@ int SMDS_VtkVolume::NbFaces() const + case VTK_POLYHEDRON: + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + nbFaces = nFaces; + break; +@@ -236,7 +250,7 @@ int SMDS_VtkVolume::NbNodes() const + else + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -276,7 +290,7 @@ int SMDS_VtkVolume::NbEdges() const + case VTK_POLYHEDRON: + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + nbEdges = 0; + int id = 0; +@@ -312,7 +326,7 @@ int SMDS_VtkVolume::NbFaceNodes(const int face_ind) const + if (aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -342,7 +356,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetFaceNode(const int face_ind, const int n + if (aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -372,7 +386,7 @@ std::vector SMDS_VtkVolume::GetQuantities() const + if (aVtkType == VTK_POLYHEDRON) + { + vtkIdType nFaces = 0; +- vtkIdType* ptIds = 0; ++ vtkIdTypePtr ptIds = 0; + grid->GetFaceStream(this->myVtkID, nFaces, ptIds); + int id = 0; + for (int i = 0; i < nFaces; i++) +@@ -430,7 +444,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetNode(const int ind) const + if ( aVtkType == VTK_POLYHEDRON) + { *** 84 LINES SKIPPED ***