9# include <openvdb/openvdb.h>
10# include <openvdb/points/PointDataGrid.h>
22blender::bke::VolumeGridData *BKE_volume_grid_add_vdb(
Volume &volume,
24 openvdb::GridBase::Ptr vdb_grid);
26std::optional<blender::Bounds<blender::float3>> BKE_volume_grid_bounds(
27 openvdb::GridBase::ConstPtr grid);
34openvdb::GridBase::ConstPtr BKE_volume_grid_shallow_transform(openvdb::GridBase::ConstPtr grid,
37template<
typename OpType>
38auto BKE_volume_grid_type_operation(
const VolumeGridType grid_type, OpType &&op)
42 return op.template operator()<openvdb::FloatGrid>();
44 return op.template operator()<openvdb::Vec3fGrid>();
46 return op.template operator()<openvdb::BoolGrid>();
48 return op.template operator()<openvdb::DoubleGrid>();
50 return op.template operator()<openvdb::Int32Grid>();
52 return op.template operator()<openvdb::Int64Grid>();
54 return op.template operator()<openvdb::Vec3IGrid>();
56 return op.template operator()<openvdb::Vec3dGrid>();
58 return op.template operator()<openvdb::MaskGrid>();
60 return op.template operator()<openvdb::points::PointDataGrid>();
67 return op.template operator()<openvdb::FloatGrid>();
70openvdb::GridBase::Ptr BKE_volume_grid_create_with_changed_resolution(
71 const VolumeGridType grid_type,
const openvdb::GridBase &old_grid,
float resolution_factor);
@ VOLUME_GRID_VECTOR_FLOAT
@ VOLUME_GRID_VECTOR_DOUBLE
#define BLI_assert_msg(a, msg)