PointConversion.h:createPointDataGrid() function appears to not be fully templated on the call parameter grid types:
using PointDataTreeT = typename PointDataGridT::TreeType;
using LeafT = typename PointDataTree::LeafNodeType;
using PointIndexLeafT = typename PointIndexGridT::TreeType::LeafNodeType;
using PointIndexT = typename PointIndexLeafT::ValueType;
using LeafManagerT = typename tree::LeafManager<PointDataTreeT>;
using PositionAttributeT = TypedAttributeArray<Vec3f, CompressionT>;
the LeafT uses the default LeafNodeType of the surrounding namespace rather than the one provided by the template deduction.
Is this a mistake or is there a specific reason? Since everything else uses the template deduction it seems like their might be a complicated reason for the non-template-deduced "using LeafT ..." line.
The reason I run in to this is because I want to increase the leaf node size, which I do like so:
namespace vb = openvdb::v8_0;
namespace vt = openvdb::tree;
namespace vp = openvdb::v8_0::points;
using EnlargedPointDataTree = vt::Tree<vt::RootNode<vt::InternalNode<
vt::InternalNode<vp::PointDataLeafNode<vb::PointDataIndex32, 4>, 4>, 5>>>;
using EnlargedPointDataGrid = openvdb::Grid<EnlargedPointDataTree>;
I later do:
openvdb::initialize();
EnlargedPointDataGrid::registerGrid();
fails with the error:
/nix/store/jy5q3n6mwcbr4r5kr3dv1mzaqsjwkwj9-openvdb/include/openvdb/points/PointConversion.h|656 col 9| note: no known conversion for argument 1 from 'openvdb::v8_0::tree::LeafManager<openvdb::v8_0::tree::Tree<openvdb::v8_0::tree::RootNode<openvdb::v8_0::tree::InternalNode<openvdb::v8_0::tree::InternalNode<openvdb::v8_0::points::PointDataLeafNode<openvdb::v8_0::PointIndex<unsigned int, 1>, 4>, 4>, 5> > > >::LeafType' {aka 'openvdb::v8_0::points::PointDataLeafNode<openvdb::v8_0::PointIndex<unsigned int, 1>, 4>'} to 'LeafT&' {aka 'openvdb::v8_0::points::PointDataLeafNode<openvdb::v8_0::PointIndex<unsigned int, 1>, 3>&'}
due to LeafT getting bound to the default PointDataLeafNode size in PointConversion.h:656
There are also a few other conversion errors for the leaf node type cast internal to PointAttribute.h
I may just be making the different sized tree wrong with a simple usage error. I wasn't able to find any creation of different sized point data grid trees in the test suite or documentation they all use the default so an example might also solve my issue.
Thank you for any ideas!