8# include <openvdb/openvdb.h>
12using Vec4fTree = tree::Tree4<Vec4f, 5, 4, 3>::Type;
20openvdb::GridBase::ConstPtr openvdb_convert_to_known_type(
const openvdb::GridBase::ConstPtr &grid);
23template<
typename OpType>
24bool openvdb_grid_type_operation(
const openvdb::GridBase::ConstPtr &grid, OpType &&op)
26 if (grid->isType<openvdb::FloatGrid>()) {
27 return op.template operator()<openvdb::FloatGrid,
float, 1>(
28 openvdb::gridConstPtrCast<openvdb::FloatGrid>(grid));
30 if (grid->isType<openvdb::Vec3fGrid>()) {
31 return op.template operator()<openvdb::Vec3fGrid, openvdb::Vec3f, 3>(
32 openvdb::gridConstPtrCast<openvdb::Vec3fGrid>(grid));
34 if (grid->isType<openvdb::Vec4fGrid>()) {
35 return op.template operator()<openvdb::Vec4fGrid, openvdb::Vec4f, 4>(
36 openvdb::gridConstPtrCast<openvdb::Vec4fGrid>(grid));
43int openvdb_num_channels(
const openvdb::GridBase::ConstPtr &grid);
#define CCL_NAMESPACE_END
#define assert(assertion)