From 52744902761bbc848c745371a2cd7a60a3685b9e Mon Sep 17 00:00:00 2001
From: cy1der <67352978+cy1der@users.noreply.github.com>
Date: Thu, 22 Oct 2026 18:24:22 -0400
Subject: [PATCH] IO/NanoVDB: port to OpenVDB 12 NanoVDB API

nanovdb::build and nanovdb::createNanoGrid moved to nanovdb::tools, and the util/ headers became deprecated forwarders to tools/ and io/.
---
 IO/NanoVDB/vtkNanoVDBWriter.cxx | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/IO/NanoVDB/vtkNanoVDBWriter.cxx b/IO/NanoVDB/vtkNanoVDBWriter.cxx
index b3ce969..28bf6ed 100644
--- a/IO/NanoVDB/vtkNanoVDBWriter.cxx
+++ b/IO/NanoVDB/vtkNanoVDBWriter.cxx
@@ -19,8 +19,8 @@
 #include <string>
 #include <vector>
 
-#include <nanovdb/util/CreateNanoGrid.h>
-#include <nanovdb/util/IO.h>
+#include <nanovdb/tools/CreateNanoGrid.h>
+#include <nanovdb/io/IO.h>
 
 VTK_ABI_NAMESPACE_BEGIN
 namespace
@@ -216,7 +216,7 @@ namespace
 struct VectorCopyToNanoVDB
 {
   template <typename TArray>
-  void operator()(TArray* sourceArray, nanovdb::build::Vec3fGrid& destGrid, vtkImageData* imageData,
+  void operator()(TArray* sourceArray, nanovdb::tools::build::Vec3fGrid& destGrid, vtkImageData* imageData,
     int extent[6])
   {
     auto accessor = destGrid.getAccessor();
@@ -241,7 +241,7 @@ struct VectorCopyToNanoVDB
 struct ScalarCopyToNanoVDB
 {
   template <typename TArray>
-  void operator()(TArray* sourceArray, nanovdb::build::FloatGrid& destGrid, vtkImageData* imageData,
+  void operator()(TArray* sourceArray, nanovdb::tools::build::FloatGrid& destGrid, vtkImageData* imageData,
     int extent[6])
   {
     auto accessor = destGrid.getAccessor();
@@ -300,7 +300,7 @@ bool vtkNanoVDBWriter::WriteImageData(vtkImageData* imageData)
 
       if (numberOfComponents == 3)
       {
-        nanovdb::build::Vec3fGrid vectorGrid(
+        nanovdb::tools::build::Vec3fGrid vectorGrid(
           nanovdb::Vec3f(0.0f, 0.0f, 0.0f), gridName, nanovdb::GridClass::Staggered);
         vectorGrid.mMap = gridMap;
 
@@ -310,11 +310,11 @@ bool vtkNanoVDBWriter::WriteImageData(vtkImageData* imageData)
         {
           vectorCopyFunctor(data, vectorGrid, imageData, extent);
         }
-        handles.emplace_back(nanovdb::createNanoGrid(vectorGrid));
+        handles.emplace_back(nanovdb::tools::createNanoGrid(vectorGrid));
       }
       else
       {
-        nanovdb::build::FloatGrid scalarGrid(0.0f, gridName, nanovdb::GridClass::FogVolume);
+        nanovdb::tools::build::FloatGrid scalarGrid(0.0f, gridName, nanovdb::GridClass::FogVolume);
         scalarGrid.mMap = gridMap;
 
         using ScalarCopyDispatch = vtkArrayDispatch::DispatchByValueType<vtkArrayDispatch::Reals>;
@@ -323,7 +323,7 @@ bool vtkNanoVDBWriter::WriteImageData(vtkImageData* imageData)
         {
           scalarCopyFunctor(data, scalarGrid, imageData, extent);
         }
-        handles.emplace_back(nanovdb::createNanoGrid(scalarGrid));
+        handles.emplace_back(nanovdb::tools::createNanoGrid(scalarGrid));
       }
     }
   }
-- 
2.55.0

