AcademySoftwareFoundation / openvdb

OpenVDB - Sparse volume data structure and tools
http://www.openvdb.org/
Mozilla Public License 2.0
2.62k stars 647 forks source link

NanoVDB v32.7.0 #1807

Closed kmuseth closed 2 months ago

kmuseth commented 4 months ago

Introducing NanoVDB v32.7.0, which is a major refactoring of v32.6, primarily related to the introduction of new namespaces and an accompanying restructuring of the directory layout of header files. This will likely require changes to client code! To this end I have included a shell script (cmd/updateFiles.sh) that will scan files and make (most) of the required changes.

The motivation for there these changes is twofold: First we want to use the same practice in terms of name spaces as OpenVDB and second the old version (32.6) was getting cluttered and messy. Specifically the main changes are:

  1. Virtually everything in NanoVDB is no using nanovdb as a namespace
  2. Additionally the following nested namespaces are introduced: math, tools, cuda, io
  3. these namespaces are reflected in matching restructures in the directories of header files as well as names of functions, kernels and a classes.

Here are some examples of changes:

nanovdb::CpuTimer -> nanovdb::util::Timer
nanovdb::GpuTimer -> nanovdb::util::cuda::Timer
nanovdb::gridStats -> nanovdb::tools::gridStats
nanovdb::Coord -> nanovdb::math::Coord
kmuseth commented 2 months ago

@apradhana - so other than the fact that the CI is broken you're fine if I merge this into master?

apradhana commented 2 months ago

Hi, @kmuseth, yes, you can merge it to master. These are my reasons:

One thing to note after this change is that we need to keep in mind that Util.h should always be at the bottom of the NanoVDB dependency tree, followed by Math.h, followed by NanoVDB.h.

apradhana commented 2 months ago

For completeness, I tested the NanoVDB version that comes from this PR along with the CI work that is currently in progress here and it shows that the failing CIs are the windows-static builds. nanovdb_ci

Idclip commented 2 months ago

Maybe fix the CI first if you're doing that anyway