Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Apr 2026 21:26:44 +0000
From:      Christoph Moench-Tegeder <cmt@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 31aeeb3fd350 - main - cad/freecad: update to 1.1.1
Message-ID:  <69e00294.25066.782d5044@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by cmt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=31aeeb3fd35032d3a1afac04cb12784c132afe1d

commit 31aeeb3fd35032d3a1afac04cb12784c132afe1d
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2026-04-15 21:25:54 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2026-04-15 21:25:54 +0000

    cad/freecad: update to 1.1.1
    
    Announcement:
      https://blog.freecad.org/2026/04/15/freecad-1-1-1-released/
---
 cad/freecad/Makefile                   |    3 +-
 cad/freecad/distinfo                   |    6 +-
 cad/freecad/files/patch-compat-coin408 |  153 -----
 cad/freecad/files/patch-vtk96-compat   | 1088 --------------------------------
 4 files changed, 4 insertions(+), 1246 deletions(-)

diff --git a/cad/freecad/Makefile b/cad/freecad/Makefile
index c78d05bd7378..3126f5d8e7a0 100644
--- a/cad/freecad/Makefile
+++ b/cad/freecad/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	FreeCAD
-DISTVERSION=	1.1.0
-PORTREVISION=	1
+DISTVERSION=	1.1.1
 CATEGORIES=	cad
 
 MAINTAINER=	cmt@FreeBSD.org
diff --git a/cad/freecad/distinfo b/cad/freecad/distinfo
index c68e12e1361f..cb7464396b34 100644
--- a/cad/freecad/distinfo
+++ b/cad/freecad/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1774455870
-SHA256 (FreeCAD-FreeCAD-1.1.0_GH0.tar.gz) = b99b932037eb801a66b5f66ac46968a0da3654a1774ee12f28781b43de34daf6
-SIZE (FreeCAD-FreeCAD-1.1.0_GH0.tar.gz) = 91678722
+TIMESTAMP = 1776273720
+SHA256 (FreeCAD-FreeCAD-1.1.1_GH0.tar.gz) = 873702bb6564e0d393fe1a0db1ee38e11a14e54780237f9ba6041fe9cd5d1170
+SIZE (FreeCAD-FreeCAD-1.1.1_GH0.tar.gz) = 91720496
 SHA256 (FreeCAD-OndselSolver-30e9b64e8bf881d438d4b88834f9ba3674865418_GH0.tar.gz) = 77646ca7d8cbc6dc4e8304439be2ff2b9aecf397e6349e63b3b06e65dfed79c3
 SIZE (FreeCAD-OndselSolver-30e9b64e8bf881d438d4b88834f9ba3674865418_GH0.tar.gz) = 4667790
 SHA256 (FreeCAD-AddonManager-937b6877239dc78ef59eeefe8099e5f14243eda1_GH0.tar.gz) = 70b2fa7f3c58c0ea5be830de90d33369670ee6658f13aeb7684f1ea478528178
diff --git a/cad/freecad/files/patch-compat-coin408 b/cad/freecad/files/patch-compat-coin408
deleted file mode 100644
index 4c091d5e7bd5..000000000000
--- a/cad/freecad/files/patch-compat-coin408
+++ /dev/null
@@ -1,153 +0,0 @@
-commit dd3e6b65b537161abfb62188254d60dba5984f2c
-Author: Captain <87000456+captain0xff@users.noreply.github.com>
-Date:   Sat Mar 21 05:52:51 2026 +0530
-
-    Gui: update CoinPtr to not use boost::intrusive_ptr (#28427)
-
-diff --git src/Gui/View3DInventor.cpp src/Gui/View3DInventor.cpp
-index 807432fb68..037380390b 100644
---- src/Gui/View3DInventor.cpp
-+++ src/Gui/View3DInventor.cpp
-@@ -597,7 +597,7 @@ bool View3DInventor::setCamera(const char* pCamera)
-     }
- 
-     // this is to make sure to reliably delete the node
--    CoinPtr<SoNode> camPtr(Cam, true);
-+    CoinPtr<SoNode> camPtr {Cam};
- 
-     // toggle between perspective and orthographic camera
-     if (Cam->getTypeId() != CamViewer->getTypeId()) {
-diff --git src/Gui/ViewProvider.h src/Gui/ViewProvider.h
-index 2c4600cc80..7680d46f9f 100644
---- src/Gui/ViewProvider.h
-+++ src/Gui/ViewProvider.h
-@@ -86,26 +86,102 @@ enum ViewStatus
- };
- 
- 
-+/** Convenience smart pointer to manage the lifetime of coin nodes.
-+ *
-+ * This class is copied from Inventor/misc/SoRefPtr.h and can be removed when the
-+ * minimum supported coin version provides this header.
-+ */
-+template<typename T>
-+class SoRefPtr
-+{
-+public:
-+    SoRefPtr(void) noexcept
-+        : ptr(NULL)
-+    {}
-+
-+    explicit SoRefPtr(T* p)
-+        : ptr(p)
-+    {
-+        if (this->ptr) {
-+            this->ptr->ref();
-+        }
-+    }
-+
-+    SoRefPtr(const SoRefPtr& other)
-+        : ptr(other.ptr)
-+    {
-+        if (this->ptr) {
-+            this->ptr->ref();
-+        }
-+    }
-+
-+    SoRefPtr(SoRefPtr&& other) noexcept
-+        : ptr(other.ptr)
-+    {
-+        other.ptr = NULL;
-+    }
-+
-+    ~SoRefPtr(void)
-+    {
-+        if (this->ptr) {
-+            this->ptr->unref();
-+        }
-+    }
-+
-+    SoRefPtr& operator=(SoRefPtr other) noexcept
-+    {
-+        this->swap(other);
-+        return *this;
-+    }
-+
-+    void reset(T* p = NULL)
-+    {
-+        SoRefPtr tmp(p);
-+        this->swap(tmp);
-+    }
-+
-+    T* get(void) const noexcept
-+    {
-+        return this->ptr;
-+    }
-+    T& operator*(void) const
-+    {
-+        return *this->ptr;
-+    }
-+    T* operator->(void) const noexcept
-+    {
-+        return this->ptr;
-+    }
-+    explicit operator bool(void) const noexcept
-+    {
-+        return this->ptr != NULL;
-+    }
-+
-+    void swap(SoRefPtr& other) noexcept
-+    {
-+        using std::swap;
-+        swap(this->ptr, other.ptr);
-+    }
-+
-+private:
-+    T* ptr;
-+};
-+
- /** Convenience smart pointer to wrap coin node.
-  *
-- * It is basically boost::intrusive plus implicit pointer conversion to save the
-- * trouble of typing get() all the time.
-+ * This class isn't merged with SoRefPtr because it can be removed in the future
-  */
- template<class T>
--class CoinPtr: public boost::intrusive_ptr<T>
-+class CoinPtr: public SoRefPtr<T>
- {
- public:
--    // Too bad, VC2013 does not support constructor inheritance
--    // using boost::intrusive_ptr<T>::intrusive_ptr;
--    using inherited = boost::intrusive_ptr<T>;
--    CoinPtr() = default;
--    CoinPtr(T* p, bool add_ref = true)
--        : inherited(p, add_ref)
--    {}
--    template<class Y>
--    CoinPtr(CoinPtr<Y> const& r)
--        : inherited(r)
--    {}
-+    using SoRefPtr<T>::SoRefPtr;
-+
-+    CoinPtr& operator=(T* ptr)
-+    {
-+        SoRefPtr<T>::reset(ptr);
-+        return *this;
-+    }
- 
-     operator T*() const
-     {
-diff --git src/Gui/ViewProviderLink.cpp src/Gui/ViewProviderLink.cpp
-index 269c21dd9a..398e7ff921 100644
---- src/Gui/ViewProviderLink.cpp
-+++ src/Gui/ViewProviderLink.cpp
-@@ -1644,7 +1644,7 @@ void LinkView::updateLink()
- bool LinkView::linkGetElementPicked(const SoPickedPoint* pp, std::string& subname) const
- {
-     std::ostringstream ss;
--    CoinPtr<SoPath> path = pp->getPath();
-+    CoinPtr<SoPath> path {pp->getPath()};
-     if (!nodeArray.empty()) {
-         auto idx = path->findNode(pcLinkRoot);
-         if (idx < 0 || idx + 2 >= path->getLength()) {
diff --git a/cad/freecad/files/patch-vtk96-compat b/cad/freecad/files/patch-vtk96-compat
deleted file mode 100644
index 32693854ed9c..000000000000
--- a/cad/freecad/files/patch-vtk96-compat
+++ /dev/null
@@ -1,1088 +0,0 @@
-# git diff --no-prefix c25a8fe..a141f8a
-Author: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>
-Date:   Thu Jan 15 10:01:38 2026 +0100
-
-    Merge pull request #25825 from Lgt2x/vtk-compatibility
-
-    SMESH: Patch for VTK 9.6 compatibility
-
-diff --git src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
-index d97a37bc51..184e10d9c1 100644
---- src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
-+++ src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
-@@ -45,11 +45,7 @@
- //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;
-diff --git src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
-index f02337cf52..e8bfa90f4e 100644
---- src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
-+++ src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
-@@ -28,6 +28,7 @@
- 
- #include <vtkUnstructuredGrid.h>
- #include <vtkCellLinks.h>
-+#include <vtkVersion.h>
- 
- #include <vector>
- #include <set>
-@@ -95,14 +96,10 @@ public:
-                                        std::map<int, std::map<long,int> >& nodeQuadDomains);
-   vtkCellLinks* GetLinks()
-   {
--#ifdef VTK_CELL_ARRAY_V2
--  #if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-     return static_cast<vtkCellLinks*>(vtkUnstructuredGrid::GetLinks());
--  #else
--    return static_cast<vtkCellLinks*>(GetCellLinks());
--  #endif
- #else
--    return Links;
-+    return static_cast<vtkCellLinks*>(GetCellLinks());
- #endif
-   }
-   SMDS_Downward* getDownArray(unsigned char vtkType)
-diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
-index c5fd8c91cd..e257960ac6 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
-@@ -67,16 +67,9 @@ 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<vtkIdList> 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;
- }
-diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
-index baa6eadc93..a076d2fb6f 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
-@@ -53,6 +53,7 @@
- #include <vtkCell.h>
- #include <vtkCellLinks.h>
- #include <vtkIdList.h>
-+#include <vtkVersion.h>
- 
- #include <algorithm>
- #include <map>
-@@ -283,7 +284,11 @@ SMDS_BallElement* SMDS_Mesh::AddBallWithID(const SMDS_MeshNode * n, double diame
-   ball->init(n->getVtkId(), diameter, this);
-   if (!this->registerElement(ID,ball))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(ball->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(ball->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myBallPool->destroy(ball);
-     return 0;
-   }
-@@ -343,7 +348,11 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-   edgevtk->init(nodeIds, this);
-   if (!this->registerElement(ID,edgevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(edgevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(edgevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myEdgePool->destroy(edgevtk);
-       return 0;
-     }
-@@ -627,7 +636,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-     volvtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -734,7 +747,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-     volvtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -847,7 +864,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-     volvtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -982,7 +1003,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-     volvtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -1104,7 +1129,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-     volvtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -1307,7 +1336,11 @@ SMDS_Mesh::AddPolygonalFaceWithID (const vector<const SMDS_MeshNode*> & nodes,
-     facevtk->initPoly(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -1372,7 +1405,11 @@ SMDS_Mesh::AddQuadPolygonalFaceWithID (const vector<const SMDS_MeshNode*> & node
-     facevtk->initQuadPoly(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -1452,7 +1489,11 @@ SMDS_Mesh::AddPolyhedralVolumeWithID (const vector<const SMDS_MeshNode*>& nodes,
-     volvtk->initPoly(myNodeIds, quantities, this);
-     if (!this->registerElement(ID, volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -1508,7 +1549,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeFromVtkIdsWithID(const std::vector<vtkIdTyp
-   volvtk->init(vtkNodeIds, this);
-   if (!this->registerElement(ID,volvtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myVolumePool->destroy(volvtk);
-       return 0;
-     }
-@@ -1567,7 +1612,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceFromVtkIdsWithID(const std::vector<vtkIdType>&
-   facevtk->init(vtkNodeIds, this);
-   if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -1715,7 +1764,11 @@ SMDS_MeshFace * SMDS_Mesh::createTriangle(const SMDS_MeshNode * node1,
-     facevtk->init(myNodeIds, this); // put in vtkUnstructuredGrid
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -1769,7 +1822,11 @@ SMDS_MeshFace * SMDS_Mesh::createQuadrangle(const SMDS_MeshNode * node1,
-     facevtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -2100,7 +2157,11 @@ SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
-     edgevtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,edgevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(edgevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(edgevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myEdgePool->destroy(edgevtk);
-       return 0;
-     }
-@@ -3311,7 +3372,11 @@ void SMDS_Mesh::RemoveElement(const SMDS_MeshElement *        elem,
-       if (vtkid >= 0)
-         {
-           //MESSAGE("VTK_EMPTY_CELL in " << vtkid);
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+          this->myGrid->GetCellTypes()->SetTuple1(vtkid, VTK_EMPTY_CELL);
-+#else
-           this->myGrid->GetCellTypesArray()->SetValue(vtkid, VTK_EMPTY_CELL);
-+#endif
-         }
-       it++;
-     }
-@@ -3416,7 +3481,11 @@ void SMDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elem)
-     }
-     myElementIDFactory->ReleaseID(elemId, vtkId);
- 
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(vtkId, VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(vtkId, VTK_EMPTY_CELL);
-+#endif
-     // --- to do: keep vtkid in a list of reusable cells
-   }
- }
-@@ -3598,7 +3667,11 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-   edgevtk->init(myNodeIds, this);
-   if (!this->registerElement(ID,edgevtk))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(edgevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(edgevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myEdgePool->destroy(edgevtk);
-     return 0;
-   }
-@@ -3681,7 +3754,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-     facevtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -3768,7 +3845,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-     facevtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -3859,7 +3940,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-     facevtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -3953,7 +4038,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
-     facevtk->init(myNodeIds, this);
-     if (!this->registerElement(ID,facevtk))
-     {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-       myFacePool->destroy(facevtk);
-       return 0;
-     }
-@@ -4056,7 +4145,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-   volvtk->init(myNodeIds, this);
-   if (!this->registerElement(ID,volvtk))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myVolumePool->destroy(volvtk);
-     return 0;
-   }
-@@ -4171,7 +4264,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-   volvtk->init(myNodeIds, this);
-   if (!this->registerElement(ID,volvtk))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myVolumePool->destroy(volvtk);
-     return 0;
-   }
-@@ -4298,7 +4395,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-   volvtk->init(myNodeIds, this);
-   if (!this->registerElement(ID,volvtk))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myVolumePool->destroy(volvtk);
-     return 0;
-   }
-@@ -4445,7 +4546,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-   volvtk->init(myNodeIds, this);
-   if (!this->registerElement(ID,volvtk))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myVolumePool->destroy(volvtk);
-     return 0;
-   }
-@@ -4625,7 +4730,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
-   volvtk->init(myNodeIds, this);
-   if (!this->registerElement(ID,volvtk))
-   {
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
-+    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#else
-     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
-+#endif
-     myVolumePool->destroy(volvtk);
-     return 0;
-   }
-@@ -4712,14 +4821,10 @@ void SMDS_Mesh::dumpGrid(string ficdump)
-         ficcon << endl;
-   }
-   ficcon << "-------------------------------- connectivity " <<  nbPoints << endl;
--#ifdef VTK_CELL_ARRAY_V2
--  #if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-   vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetLinks());
--  #else
--  vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
--  #endif
- #else
--  vtkCellLinks *links = myGrid->GetCellLinks();
-+  vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
- #endif
-   for (int i=0; i<nbPoints; i++)
-   {
-diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
-index ea5cf53b0f..d66f794b4a 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
-@@ -146,7 +146,6 @@ 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<vtkIdList> cellPoints;
-     grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
-     if (nbNodes != cellPoints->GetNumberOfIds())
-@@ -156,18 +155,6 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN
-     }
-     myNode = nodes[0];
-     cellPoints->SetId(0, myNode->getVtkId());
--#else
--    vtkIdType npts = 0;
--    vtkIdType* pts = 0;
--    grid->GetCellPoints(myVtkID, npts, pts);
--    if (nbNodes != npts)
--    {
--      MESSAGE("ChangeNodes problem: not the same number of nodes " << npts << " -> " << nbNodes);
--      return false;
--    }
--    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 src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
-index f5fc373f5d..420c3a9baf 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
-@@ -31,6 +31,7 @@
- #include "SMDS_IteratorOfElements.hxx"
- #include "SMDS_Mesh.hxx"
- #include <vtkUnstructuredGrid.h>
-+#include <vtkVersion.h>
- 
- #include "utilities.h"
- #include "Utils_SALOME_Exception.hxx"
-@@ -69,7 +70,7 @@ void SMDS_MeshNode::init(int id, int meshId, int shapeId, double x, double y, do
-   SMDS_UnstructuredGrid * grid = mesh->getGrid();
-   vtkPoints *points = grid->GetPoints();
-   points->InsertPoint(myVtkID, x, y, z);
--#if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-   SMDS_CellLinks *cellLinks = dynamic_cast<SMDS_CellLinks*>(grid->GetLinks());
- #else
-   SMDS_CellLinks *cellLinks = dynamic_cast<SMDS_CellLinks*>(grid->GetCellLinks());
-@@ -195,7 +196,7 @@ public:
- SMDS_ElemIteratorPtr SMDS_MeshNode::
- GetInverseElementIterator(SMDSAbs_ElementType type) const
- {
--#if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
- #else
-   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
-@@ -259,7 +260,7 @@ elementsIterator(SMDSAbs_ElementType type) const
-     return SMDS_MeshElement::elementsIterator(SMDSAbs_Node);
-   else
-   {
--#if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-     vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
- #else
-     vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
-@@ -362,7 +363,7 @@ void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME)
-   const SMDS_MeshCell *cell = dynamic_cast<const SMDS_MeshCell*> (ME);
-   assert(cell);
-   SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
--#if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-   vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetLinks());
- #else
-   vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetCellLinks());
-@@ -382,7 +383,7 @@ void SMDS_MeshNode::ClearInverseElements()
- 
- bool SMDS_MeshNode::emptyInverseElements()
- {
--#if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
- #else
-   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
-@@ -398,7 +399,7 @@ bool SMDS_MeshNode::emptyInverseElements()
- 
- int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const
- {
--#if VTK_VERSION_NUMBER_QUICK >= 90300000000
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
-   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
- #else
-   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
-diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
-index 4e9d6dc057..f5b91ff800 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
-@@ -193,8 +193,8 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
- 
-   vtkCellArray *newConnectivity = vtkCellArray::New();
-   newConnectivity->Initialize();
--  int oldCellDataSize = this->Connectivity->GetData()->GetSize();
--  newConnectivity->Allocate(oldCellDataSize);
-+  int oldCellDataSize = this->GetCells()->GetConnectivityArray()->GetSize();
-+  newConnectivity->AllocateExact(oldCellDataSize, oldCellDataSize);
-   MESSAGE("oldCellSize="<< oldCellSize << " oldCellDataSize=" << oldCellDataSize);
- 
-   vtkUnsignedCharArray *newTypes = vtkUnsignedCharArray::New();
-@@ -214,11 +214,11 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
-   while ( i < oldCellSize )
-   {
-     // skip a hole if any
--    while ( i < oldCellSize && this->Types->GetValue(i) == VTK_EMPTY_CELL )
-+    while ( i < oldCellSize && this->GetCellType(i) == VTK_EMPTY_CELL )
-       ++i;
-     int startBloc = i;
-     // look for a block end
--    while ( i < oldCellSize && this->Types->GetValue(i) != VTK_EMPTY_CELL )
-+    while ( i < oldCellSize && this->GetCellType(i) != VTK_EMPTY_CELL )
-       ++i;
-     int endBloc = i;
-     if ( endBloc > startBloc )
-@@ -242,7 +242,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
-   {
-     for (int oldCellID = 0; oldCellID < oldCellSize; oldCellID++)
-     {
--      if (this->Types->GetValue(oldCellID) == VTK_EMPTY_CELL)
-+      if (this->GetCellType(oldCellID) == VTK_EMPTY_CELL)
-         continue;
-       int newCellId = idCellsOldToNew[ oldCellID ];
-       if (newTypes->GetValue(newCellId) == VTK_POLY_VERTEX)
-@@ -250,6 +250,71 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
-     }
-   }
- 
-+#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 3, 20240112)
-+  if ( this->FaceLocations )
-+  {
-+    vtkIdTypeArray *iniFaceLocO = (vtkIdTypeArray *)this->FaceLocations->GetOffsetsArray();
-+    vtkIdTypeArray *iniFaceLocC = (vtkIdTypeArray *)this->FaceLocations->GetConnectivityArray();
-+    vtkIdTypeArray *iniFaceO = (vtkIdTypeArray *)this->Faces->GetOffsetsArray();
-+    vtkIdTypeArray *iniFaceC = (vtkIdTypeArray *)this->Faces->GetConnectivityArray();
-+    //
-+    vtkNew<vtkIdTypeArray> facesLoc_o; facesLoc_o->Initialize(); facesLoc_o->InsertNextValue(0);
-+    vtkNew<vtkIdTypeArray> facesLoc_c; facesLoc_c->Initialize();
-+    vtkNew<vtkIdTypeArray> faces_o; faces_o->Initialize(); faces_o->InsertNextValue(0);
-+    vtkNew<vtkIdTypeArray> faces_c; faces_c->Initialize();
-+    int newFaceId( 0 );
-+    vtkIdType facesLoc_o_cur(0),faces_o_cur(0);
-+    // for ( vtkIdType newCellID = 0; newCellID < newCellSize; newCellID++ )
-+    for (int oldCellId = 0; oldCellId < oldCellSize; oldCellId++)
-+    {
-+      int newCellId = idCellsOldToNew[oldCellId];
-+      if ( this->GetCellType(newCellId) == VTK_POLYHEDRON )
-+      {
-+        vtkIdType oldStartFaceLocOff = iniFaceLocO->GetValue( oldCellId );
-+        vtkIdType nCellFaces = iniFaceLocO->GetValue( oldCellId + 1 ) - oldStartFaceLocOff;
-+        facesLoc_o_cur += nCellFaces;
-+        facesLoc_o->InsertNextValue( facesLoc_o_cur );
-+        for ( int n = 0; n < nCellFaces; n++ )
-+        {
-+          facesLoc_c->InsertNextValue( newFaceId++ );
-+          int curFaceId = iniFaceLocC->GetValue( oldStartFaceLocOff + n );
-+          int oldStartPtOfFaceOff = iniFaceO->GetValue( curFaceId );
-+          int nbOfPts = iniFaceO->GetValue( curFaceId + 1 ) - oldStartPtOfFaceOff;
-+          faces_o_cur += nbOfPts;
-+          faces_o->InsertNextValue( faces_o_cur );
-+          for( int m = 0 ; m < nbOfPts ; m++ )
-+          {
-+            vtkIdType oldpt = iniFaceC->GetValue( oldStartPtOfFaceOff + m );
-+            int curPt = idNodesOldToNew[ oldpt ];
-+            faces_c->InsertNextValue( curPt );
-+          }
-+        }
-+      }
-+      else
-+      {
-+        facesLoc_o->InsertNextValue(facesLoc_o_cur);
-+      }
-+    }
-+    {
-+      faces_o->Squeeze(); faces_c->Squeeze();
-+      facesLoc_o->Squeeze(); facesLoc_c->Squeeze();
-+      //
-+      vtkNew<vtkCellArray> outFaces;
-+      outFaces->SetData( faces_o, faces_c );
-+      vtkNew<vtkCellArray> outFaceLocations;
-+      outFaceLocations->SetData( facesLoc_o, facesLoc_c );
-+      //
-+      this->SetPolyhedralCells(newTypes, newConnectivity, outFaceLocations, outFaces);
-+    }
-+  }
-+  else
-+  {
-+    {
-+      this->SetCells(newTypes,newConnectivity);
-+    }
-+    //this->CellLocations = newLocations;
-+  }
-+#else
-   vtkIdTypeArray* thisFaceLocations = GetFaceLocations();
-   vtkIdTypeArray* thisFaces = GetFaces();
-   if (thisFaceLocations)
-@@ -262,7 +327,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
-       newFaces->Allocate(thisFaces->GetSize());
-       for (int i = 0; i < oldCellSize; i++)
-         {
--          if (this->Types->GetValue(i) == VTK_EMPTY_CELL)
-+          if (this->GetCellType(i) == VTK_EMPTY_CELL)
-             continue;
-           int newCellId = idCellsOldToNew[i];
-           if (newTypes->GetValue(newCellId) == VTK_POLYHEDRON)
-@@ -297,6 +362,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<int>& idNodesOldToNew, int n
-   {
-     this->SetCells(newTypes, newLocations, newConnectivity, thisFaceLocations, thisFaces);
-   }
-+#endif
- 
-   newPoints->Delete();
-   newTypes->Delete();
-@@ -333,7 +399,7 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *newTypes,
-   //MESSAGE("copyBloc " << alreadyCopied << " " << start << " " << end << " size: " << end - start << " total: " << alreadyCopied + end - start);
-   for (int j = start; j < end; j++)
-     {
--      newTypes->SetValue(alreadyCopied, this->Types->GetValue(j));
-+      newTypes->SetValue(alreadyCopied, this->GetCellType(j));
-       idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId
-       // The difference is mainly the internal representation of vtkCellArray between vtk 7.x and vtk 9.x
-       // In the old version a single array of the form (n1,id1,id2,...,idn1, n2,id1,id2,...,idn2, ...) is used
-@@ -341,16 +407,12 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *newTypes,
-       // (n1,n2,n3) and (id1,id2,...,idn1,id1,id2,...,idn2, ...)
-       // The Locations array in vtk 7.x kept the positions of the n's of the above array: (0, idn1 + 1, idn2 + 2).
-       // In vtk 9.x this array doesn't exist any more but its values can be determined with idni + i
--#ifdef VTK_CELL_ARRAY_V2
-       vtkIdType oldLoc = ((vtkIdTypeArray *)(this->Connectivity->GetOffsetsArray()))->GetValue( j ) + j;
--#else
--      vtkIdType oldLoc = this->Locations->GetValue(j);
--#endif
-       vtkIdType nbpts;
-       vtkIdTypePtr oldPtsCell = 0;
-       this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell);
-       assert(nbpts < NBMAXNODESINCELL);
--      //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts );
-+      //MESSAGE(j << " " << alreadyCopied << " " << (int)this->GetCellType(j) << " " << oldLoc << " " << nbpts );
-       for (int l = 0; l < nbpts; l++)
-         {
-           int oldval = oldPtsCell[l];
-@@ -358,7 +420,8 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *newTypes,
-           //MESSAGE("   " << oldval << " " << pointsCell[l]);
-         }
-       /*int newcnt = */newConnectivity->InsertNextCell(nbpts, pointsCell);
--      int newLoc = newConnectivity->GetInsertLocation(nbpts);
-+      int newLoc = this->GetCells()->GetOffsetsArray()->GetNumberOfValues() - 1
-+        + this->GetCells()->GetConnectivityArray()->GetNumberOfValues() - nbpts - 1;
-       //MESSAGE(newcnt << " " << newLoc);
-       newLocations->SetValue(alreadyCopied, newLoc);
-       alreadyCopied++;
-@@ -965,7 +1028,6 @@ void SMDS_UnstructuredGrid::GetNodeIds(std::set<int>& nodeSet, int downId, unsig
-  */
- void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map<int, int> localClonedNodeIds)
- {
--#ifdef VTK_CELL_ARRAY_V2
-   vtkNew<vtkIdList> cellPoints;
-   this->GetCellPoints(vtkVolId, cellPoints.GetPointer());
-   for (vtkIdType i = 0; i < cellPoints->GetNumberOfIds(); i++)
-@@ -979,22 +1041,6 @@ void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map<int, int> loc
-           //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);
--  for (int i = 0; i < npts; i++)
--    {
--      if (localClonedNodeIds.count(pts[i]))
--        {
--          vtkIdType oldpt = pts[i];
--          pts[i] = localClonedNodeIds[oldpt];
--          //MESSAGE(oldpt << " --> " << pts[i]);
--          //this->RemoveReferenceToCell(oldpt, vtkVolId);
--          //this->AddReferenceToCell(pts[i], vtkVolId);
--        }
--    }
--#endif
- }
- 
- /*! reorder the nodes of a face
-@@ -1024,25 +1070,17 @@ 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
--  #if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9,3,0)
-+#if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9, 2, 20221112)
-   GetLinks()->BuildLinks(this);
--  #else
-+#else
-   GetLinks()->SetDataSet(this);
-+  std::cout << this->GetNumberOfPoints() << std::endl;
-   GetLinks()->BuildLinks();
--  #endif
--  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
-+  GetLinks()->Delete();
- }
- 
- /*! Create a volume (prism or hexahedron) by duplication of a face.
-diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
-index 63b6eabb70..acbb8f57c3 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
-@@ -182,9 +182,10 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellIteratorPolyH(SMDS_Mesh* mesh, int vtkCel
-   case SMDSEntity_Polyhedra:
-   {
-     //MESSAGE("SMDS_VtkCellIterator Polyhedra");
--    vtkIdType nFaces = 0;
--    vtkIdTypePtr ptIds = 0;
--    grid->GetFaceStream(_cellId, nFaces, ptIds);
-+    vtkNew<vtkIdList> faceStream;
-+    grid->GetFaceStream( vtkCellId, faceStream);
-+    vtkIdType nFaces = faceStream->GetId(0);
-+    vtkIdType *ptIds = faceStream->GetPointer(1);
-     int id = 0;
-     _nbNodesInFaces = 0;
-     for (int i = 0; i < nFaces; i++)
-diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
-index 6d772a3cd4..d36e020492 100644
---- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
-+++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
-@@ -67,7 +67,6 @@ 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();
*** 313 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69e00294.25066.782d5044>