Commit: b7225df456bf9daa1df19fef1e94601a58c016e5 Author: Hans Goudey Date: Thu Aug 5 23:52:52 2021 -0500 Branches: geometry-nodes-level-set-nodes https://developer.blender.org/rBb7225df456bf9daa1df19fef1e94601a58c016e5
Add volume grid "to_static_type" utility =================================================================== M source/blender/blenkernel/BKE_volume.h =================================================================== diff --git a/source/blender/blenkernel/BKE_volume.h b/source/blender/blenkernel/BKE_volume.h index b53903af491..26e5b26ed87 100644 --- a/source/blender/blenkernel/BKE_volume.h +++ b/source/blender/blenkernel/BKE_volume.h @@ -187,6 +187,49 @@ openvdb::GridBase::Ptr BKE_volume_grid_openvdb_for_write(const struct Volume *vo VolumeGridType BKE_volume_grid_type_openvdb(const openvdb::GridBase &grid); +namespace blender::bke::volume { + +template<typename Func> +inline void to_static_type(const VolumeGridType data_type, const Func &func) +{ + switch (data_type) { + case VOLUME_GRID_FLOAT: + func(openvdb::FloatGrid()); + break; + case VOLUME_GRID_VECTOR_FLOAT: + func(openvdb::Vec3fGrid()); + break; + case VOLUME_GRID_BOOLEAN: + func(openvdb::BoolGrid()); + break; + case VOLUME_GRID_DOUBLE: + func(openvdb::DoubleGrid()); + break; + case VOLUME_GRID_INT: + func(openvdb::Int32Grid()); + break; + case VOLUME_GRID_VECTOR_INT: + func(openvdb::Vec3IGrid()); + break; + case VOLUME_GRID_VECTOR_DOUBLE: + func(openvdb::Vec3dGrid()); + break; + case VOLUME_GRID_STRING: + func(openvdb::StringGrid()); + break; + case VOLUME_GRID_MASK: + func(openvdb::MaskGrid()); + break; + case VOLUME_GRID_POINTS: + func(openvdb::points::PointDataGrid()); + break; + default: + BLI_assert_unreachable(); + break; + } +} +} // namespace blender::bke::volume + template<typename OpType> auto BKE_volume_grid_type_operation(const VolumeGridType grid_type, OpType &&op) { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs