|
Blender V4.3
|
#include <optional>#include "MEM_guardedalloc.h"#include "DNA_defaults.h"#include "DNA_material_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_volume_types.h"#include "BLI_bounds.hh"#include "BLI_compiler_compat.h"#include "BLI_fileops.h"#include "BLI_ghash.h"#include "BLI_index_range.hh"#include "BLI_map.hh"#include "BLI_math_matrix.h"#include "BLI_math_matrix_types.hh"#include "BLI_math_vector_types.hh"#include "BLI_path_utils.hh"#include "BLI_string.h"#include "BLI_string_ref.hh"#include "BLI_task.hh"#include "BLI_utildefines.h"#include "BKE_anim_data.hh"#include "BKE_bake_data_block_id.hh"#include "BKE_bpath.hh"#include "BKE_geometry_set.hh"#include "BKE_global.hh"#include "BKE_idtype.hh"#include "BKE_lib_id.hh"#include "BKE_lib_query.hh"#include "BKE_lib_remap.hh"#include "BKE_main.hh"#include "BKE_modifier.hh"#include "BKE_object.hh"#include "BKE_object_types.hh"#include "BKE_packedFile.hh"#include "BKE_report.hh"#include "BKE_scene.hh"#include "BKE_volume.hh"#include "BKE_volume_grid.hh"#include "BKE_volume_grid_file_cache.hh"#include "BKE_volume_openvdb.hh"#include "BLT_translation.hh"#include "DEG_depsgraph_query.hh"#include "BLO_read_write.hh"#include "CLG_log.h"Go to the source code of this file.
Macros | |
| #define | VOLUME_FRAME_NONE INT_MAX |
Functions | |
| void | BKE_volumes_init () |
| static void | volume_init_data (ID *id) |
| static void | volume_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int) |
| static void | volume_free_data (ID *id) |
| static void | volume_foreach_id (ID *id, LibraryForeachIDData *data) |
| static void | volume_foreach_cache (ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data) |
| static void | volume_foreach_path (ID *id, BPathForeachPathData *bpath_data) |
| static void | volume_blend_write (BlendWriter *writer, ID *id, const void *id_address) |
| static void | volume_blend_read_data (BlendDataReader *reader, ID *id) |
| static void | volume_blend_read_after_liblink (BlendLibReader *, ID *id) |
| void | BKE_volume_init_grids (Volume *volume) |
| void * | BKE_volume_add (Main *bmain, const char *name) |
| static int | volume_sequence_frame (const Depsgraph *depsgraph, const Volume *volume) |
| bool | BKE_volume_is_loaded (const Volume *volume) |
| bool | BKE_volume_set_velocity_grid_by_name (Volume *volume, const char *base_name) |
| bool | BKE_volume_load (const Volume *volume, const Main *bmain) |
| void | BKE_volume_unload (Volume *volume) |
| bool | BKE_volume_save (const Volume *volume, const Main *bmain, ReportList *reports, const char *filepath) |
| void | BKE_volume_count_memory (const Volume &volume, blender::MemoryCounter &memory) |
| std::optional< blender::Bounds< blender::float3 > > | BKE_volume_min_max (const Volume *volume) |
| bool | BKE_volume_is_y_up (const Volume *volume) |
| bool | BKE_volume_is_points_only (const Volume *volume) |
| static void | volume_update_simplify_level (Main *bmain, Volume *volume, const Depsgraph *depsgraph) |
| static void | volume_evaluate_modifiers (Depsgraph *depsgraph, Scene *scene, Object *object, blender::bke::GeometrySet &geometry_set) |
| void | BKE_volume_eval_geometry (Depsgraph *depsgraph, Volume *volume) |
| static Volume * | take_volume_ownership_from_geometry_set (blender::bke::GeometrySet &geometry_set) |
| void | BKE_volume_data_update (Depsgraph *depsgraph, Scene *scene, Object *object) |
| void | BKE_volume_grids_backup_restore (Volume *volume, VolumeGridVector *grids, const char *filepath) |
| void | BKE_volume_batch_cache_dirty_tag (Volume *volume, int mode) |
| void | BKE_volume_batch_cache_free (Volume *volume) |
| int | BKE_volume_num_grids (const Volume *volume) |
| const char * | BKE_volume_grids_error_msg (const Volume *volume) |
| const char * | BKE_volume_grids_frame_filepath (const Volume *volume) |
| const blender::bke::VolumeGridData * | BKE_volume_grid_get (const Volume *volume, int grid_index) |
| blender::bke::VolumeGridData * | BKE_volume_grid_get_for_write (Volume *volume, int grid_index) |
| const blender::bke::VolumeGridData * | BKE_volume_grid_active_get_for_read (const Volume *volume) |
| const blender::bke::VolumeGridData * | BKE_volume_grid_find (const Volume *volume, const char *name) |
| blender::bke::VolumeGridData * | BKE_volume_grid_find_for_write (Volume *volume, const char *name) |
| Volume * | BKE_volume_new_for_eval (const Volume *volume_src) |
| Volume * | BKE_volume_copy_for_eval (const Volume *volume_src) |
| void | BKE_volume_grid_remove (Volume *volume, const blender::bke::VolumeGridData *grid) |
| void | BKE_volume_grid_add (Volume *volume, const blender::bke::VolumeGridData &grid) |
| bool | BKE_volume_grid_determinant_valid (const double determinant) |
| int | BKE_volume_simplify_level (const Depsgraph *depsgraph) |
| float | BKE_volume_simplify_factor (const Depsgraph *depsgraph) |
Variables | |
| IDTypeInfo | IDType_ID_VO |
| void(* | BKE_volume_batch_cache_dirty_tag_cb )(Volume *volume, int mode) = nullptr |
| void(* | BKE_volume_batch_cache_free_cb )(Volume *volume) = nullptr |
| #define VOLUME_FRAME_NONE INT_MAX |
Definition at line 67 of file blenkernel/intern/volume.cc.
Referenced by BKE_volume_load(), and volume_sequence_frame().
| void * BKE_volume_add | ( | Main * | bmain, |
| const char * | name ) |
Definition at line 324 of file blenkernel/intern/volume.cc.
References BKE_id_new(), and ID_VO.
Referenced by BKE_object_obdata_add_from_type(), and blender::io::usd::USDVolumeReader::create_object().
Definition at line 829 of file blenkernel/intern/volume.cc.
References BKE_volume_batch_cache_dirty_tag_cb.
Referenced by BKE_object_batch_cache_dirty_tag().
| void BKE_volume_batch_cache_free | ( | Volume * | volume | ) |
Definition at line 836 of file blenkernel/intern/volume.cc.
References BKE_volume_batch_cache_free_cb.
Referenced by volume_free_data().
Definition at line 961 of file blenkernel/intern/volume.cc.
References BKE_id_copy_ex(), Volume::id, and LIB_ID_COPY_LOCALIZE.
Referenced by blender::bke::VolumeComponent::copy(), blender::bke::VolumeComponent::ensure_owns_direct_data(), and blender::bke::VolumeComponent::get_for_write().
| void BKE_volume_count_memory | ( | const Volume & | volume, |
| blender::MemoryCounter & | memory ) |
Definition at line 601 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by blender::bke::VolumeComponent::count_memory().
Definition at line 773 of file blenkernel/intern/volume.cc.
References BKE_object_eval_assign_data(), BKE_object_free_derived_caches(), BKE_volume_new_for_eval(), depsgraph, Volume::id, blender::bke::ReadOnly, blender::bke::GeometrySet::replace_volume(), take_volume_ownership_from_geometry_set(), and volume_evaluate_modifiers().
Referenced by BKE_object_handle_data_update(), and blender::ed::object::object_force_modifier_update_for_bind().
| void BKE_volume_eval_geometry | ( | Depsgraph * | depsgraph, |
| Volume * | volume ) |
Definition at line 732 of file blenkernel/intern/volume.cc.
References BKE_volume_unload(), DEG_get_bmain(), DEG_get_original_id(), DEG_is_active(), depsgraph, Volume::runtime, volume_sequence_frame(), and volume_update_simplify_level().
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock().
| const blender::bke::VolumeGridData * BKE_volume_grid_active_get_for_read | ( | const Volume * | volume | ) |
Definition at line 907 of file blenkernel/intern/volume.cc.
References BKE_volume_grid_get(), BKE_volume_num_grids(), and clamp_i().
Referenced by blender::draw::DRW_volume_batch_cache_get_selection_surface(), blender::draw::DRW_volume_batch_cache_get_wireframes_face(), and blender::workbench::VolumePass::object_sync_volume().
| void BKE_volume_grid_add | ( | Volume * | volume, |
| const blender::bke::VolumeGridData & | grid ) |
Adds a new grid to the volume with the name stored in the grid. The caller is responsible for making sure that the user count already contains the volume as a user.
Definition at line 1011 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
| bool BKE_volume_grid_determinant_valid | ( | double | determinant | ) |
OpenVDB crashes when the determinant of the transform matrix becomes too small.
Definition at line 1021 of file blenkernel/intern/volume.cc.
References determinant(), and UNUSED_VARS.
Referenced by blender::nodes::node_geo_volume_cube_cc::node_geo_exec(), and blender::geometry::transform_volume().
| const blender::bke::VolumeGridData * BKE_volume_grid_find | ( | const Volume * | volume, |
| const char * | name ) |
Definition at line 918 of file blenkernel/intern/volume.cc.
References BKE_volume_grid_get(), BKE_volume_num_grids(), and blender::bke::volume_grid::get_name().
Referenced by BKE_volume_set_velocity_grid_by_name(), drw_volume_object_grids_init(), modify_mesh(), blender::nodes::node_geo_get_named_grid_cc::node_geo_exec(), and blender::draw::volume_object_grids_init().
| blender::bke::VolumeGridData * BKE_volume_grid_find_for_write | ( | Volume * | volume, |
| const char * | name ) |
Definition at line 931 of file blenkernel/intern/volume.cc.
References BKE_volume_grid_get(), BKE_volume_grid_get_for_write(), BKE_volume_num_grids(), and blender::bke::volume_grid::get_name().
Definition at line 875 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by BKE_volume_grid_active_get_for_read(), BKE_volume_grid_find(), BKE_volume_grid_find_for_write(), BKE_volume_is_points_only(), BKE_volume_min_max(), blender::io::usd::USDVolumeWriter::do_write(), blender::ed::spreadsheet::VolumeDataSource::get_column_values(), blender::io::hydra::VolumeData::init(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), and blender::bke::bake::serialize_geometry_set().
Definition at line 891 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by BKE_volume_grid_find_for_write(), displace_volume(), and blender::geometry::transform_volume().
| void BKE_volume_grid_remove | ( | Volume * | volume, |
| const blender::bke::VolumeGridData * | grid ) |
Definition at line 996 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by blender::nodes::node_geo_get_named_grid_cc::node_geo_exec().
| void BKE_volume_grids_backup_restore | ( | Volume * | volume, |
| VolumeGridVector * | grids, | ||
| const char * | filepath ) |
Definition at line 797 of file blenkernel/intern/volume.cc.
References BLI_assert, ID_TAG_COPIED_ON_EVAL, STREQ, and UNUSED_VARS.
Referenced by blender::deg::VolumeBackup::restore_to_volume().
| const char * BKE_volume_grids_error_msg | ( | const Volume * | volume | ) |
Definition at line 855 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by blender::ed::object::volume_import_exec().
| const char * BKE_volume_grids_frame_filepath | ( | const Volume * | volume | ) |
Definition at line 865 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by blender::io::hydra::VolumeData::init().
| void BKE_volume_init_grids | ( | Volume * | volume | ) |
Definition at line 313 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by volume_blend_read_after_liblink(), and volume_init_data().
| bool BKE_volume_is_loaded | ( | const Volume * | volume | ) |
Definition at line 417 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by BKE_volume_load().
| bool BKE_volume_is_points_only | ( | const Volume * | volume | ) |
Definition at line 656 of file blenkernel/intern/volume.cc.
References BKE_volume_grid_get(), BKE_volume_num_grids(), blender::bke::volume_grid::get_type(), and VOLUME_GRID_POINTS.
Referenced by blender::ed::object::volume_import_exec().
| bool BKE_volume_is_y_up | ( | const Volume * | volume | ) |
Definition at line 636 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by blender::ed::object::volume_import_exec().
Definition at line 473 of file blenkernel/intern/volume.cc.
References BKE_volume_is_loaded(), BKE_volume_set_velocity_grid_by_name(), BLI_exists(), BLI_path_basename(), CLOG_INFO, FILE_MAX, lock, LOG, STRNCPY, UNUSED_VARS, and VOLUME_FRAME_NONE.
Referenced by BKE_volume_min_max(), BKE_volume_save(), displace_volume(), blender::io::usd::USDVolumeWriter::do_write(), drw_volume_object_grids_init(), blender::io::hydra::VolumeData::init(), modify_mesh(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::workbench::VolumePass::object_sync_volume(), blender::draw::volume_grid_cache_get(), blender::ed::object::volume_import_exec(), blender::draw::volume_object_grids_init(), and volume_update_simplify_level().
| std::optional< blender::Bounds< blender::float3 > > BKE_volume_min_max | ( | const Volume * | volume | ) |
Definition at line 614 of file blenkernel/intern/volume.cc.
References BKE_volume_grid_get(), BKE_volume_load(), BKE_volume_num_grids(), G, blender::bounds::merge(), result, and UNUSED_VARS.
Referenced by BKE_object_boundbox_get(), blender::bke::GeometrySet::compute_boundbox_without_instances(), blender::io::usd::USDVolumeWriter::do_write(), and drw_call_calc_orco().
Definition at line 948 of file blenkernel/intern/volume.cc.
References BKE_id_new_nomain(), Volume::display, Volume::id, ID_VO, Volume::mat, MEM_dupallocN, ID::name, Volume::render, STRNCPY, and Volume::totcol.
Referenced by BKE_volume_data_update(), and mesh_to_volume().
Definition at line 845 of file blenkernel/intern/volume.cc.
References UNUSED_VARS.
Referenced by BKE_volume_grid_active_get_for_read(), BKE_volume_grid_find(), BKE_volume_grid_find_for_write(), BKE_volume_is_points_only(), BKE_volume_min_max(), blender::ed::spreadsheet::VolumeGridsViewItem::build_row(), displace_volume(), blender::io::usd::USDVolumeWriter::do_write(), blender::io::hydra::VolumeData::init(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::bke::bake::serialize_geometry_set(), blender::ed::spreadsheet::VolumeDataSource::tot_rows(), blender::geometry::transform_volume(), and blender::draw::volume_object_grids_init().
| bool BKE_volume_save | ( | const Volume * | volume, |
| const Main * | bmain, | ||
| ReportList * | reports, | ||
| const char * | filepath ) |
Definition at line 558 of file blenkernel/intern/volume.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_as(), BKE_reportf(), BKE_volume_load(), e, file, blender::Vector< T, InlineBufferCapacity, Allocator >::last(), RPT_ERROR, and UNUSED_VARS.
| bool BKE_volume_set_velocity_grid_by_name | ( | Volume * | volume, |
| const char * | base_name ) |
Definition at line 428 of file blenkernel/intern/volume.cc.
References BKE_volume_grid_find(), and STRNCPY.
Referenced by BKE_volume_load().
| float BKE_volume_simplify_factor | ( | const Depsgraph * | depsgraph | ) |
Definition at line 1048 of file blenkernel/intern/volume.cc.
References DAG_EVAL_RENDER, DEG_get_input_scene(), DEG_get_mode(), depsgraph, and R_SIMPLIFY.
| int BKE_volume_simplify_level | ( | const Depsgraph * | depsgraph | ) |
Definition at line 1032 of file blenkernel/intern/volume.cc.
References ceilf, DAG_EVAL_RENDER, DEG_get_input_scene(), DEG_get_mode(), depsgraph, and R_SIMPLIFY.
Referenced by volume_update_simplify_level().
| void BKE_volume_unload | ( | Volume * | volume | ) |
Definition at line 542 of file blenkernel/intern/volume.cc.
References CLOG_INFO, LOG, and UNUSED_VARS.
Referenced by BKE_packedfile_unpack_volume(), BKE_volume_eval_geometry(), blender::io::usd::USDVolumeWriter::do_write(), blender::io::hydra::VolumeData::init(), and blender::ed::object::volume_import_exec().
| void BKE_volumes_init | ( | ) |
Definition at line 130 of file blenkernel/intern/volume.cc.
Referenced by main().
|
static |
Definition at line 755 of file blenkernel/intern/volume.cc.
References blender::bke::GeometrySet::get_component_for_write(), blender::bke::GeometrySet::has(), blender::bke::ReadOnly, and blender::bke::GeometrySet::remove().
Referenced by BKE_volume_data_update().
|
static |
Definition at line 273 of file blenkernel/intern/volume.cc.
References BKE_volume_init_grids().
|
static |
Definition at line 261 of file blenkernel/intern/volume.cc.
References BKE_packedfile_blend_read(), BLO_read_pointer_array(), and Volume::runtime.
|
static |
Definition at line 241 of file blenkernel/intern/volume.cc.
References BKE_id_blend_write(), BKE_packedfile_blend_write(), BLO_write_id_struct, BLO_write_is_undo(), BLO_write_pointer_array(), Volume::id, and ID_IS_OVERRIDE_LIBRARY.
|
static |
Definition at line 153 of file blenkernel/intern/volume.cc.
References Volume::batch_cache, BKE_packedfile_duplicate(), Volume::mat, MEM_dupallocN, Volume::packedfile, Volume::runtime, and STRNCPY.
|
static |
Definition at line 697 of file blenkernel/intern/volume.cc.
References BKE_modifier_get_info(), BKE_modifier_is_enabled(), BKE_modifiers_clear_errors(), BKE_modifiers_get_virtual_modifierlist(), DAG_EVAL_RENDER, DEG_get_mode(), depsgraph, eModifierMode_Realtime, eModifierMode_Render, MOD_APPLY_RENDER, MOD_APPLY_USECACHE, ModifierTypeInfo::modify_geometry_set, ModifierData::next, and ModifierData::type.
Referenced by BKE_volume_data_update().
|
static |
Definition at line 215 of file blenkernel/intern/volume.cc.
|
static |
Definition at line 207 of file blenkernel/intern/volume.cc.
References BKE_LIB_FOREACHID_PROCESS_IDSUPER, and IDWALK_CB_USER.
|
static |
Definition at line 228 of file blenkernel/intern/volume.cc.
References BKE_bpath_foreach_path_fixed_process(), BKE_BPATH_FOREACH_PATH_SKIP_PACKED, and BPathForeachPathData::flag.
|
static |
Definition at line 188 of file blenkernel/intern/volume.cc.
References BKE_animdata_free(), BKE_packedfile_free(), BKE_volume_batch_cache_free(), and MEM_SAFE_FREE.
|
static |
Definition at line 139 of file blenkernel/intern/volume.cc.
References BKE_volume_init_grids(), BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, MEMCPY_STRUCT_AFTER, and STRNCPY.
Definition at line 333 of file blenkernel/intern/volume.cc.
References BLI_path_frame_get(), clamp_i(), DEG_get_ctime(), depsgraph, VOLUME_FRAME_NONE, VOLUME_SEQUENCE_CLIP, VOLUME_SEQUENCE_EXTEND, VOLUME_SEQUENCE_PING_PONG, and VOLUME_SEQUENCE_REPEAT.
Referenced by BKE_volume_eval_geometry().
|
static |
Definition at line 675 of file blenkernel/intern/volume.cc.
References BKE_volume_load(), BKE_volume_simplify_level(), BLI_assert, depsgraph, and UNUSED_VARS.
Referenced by BKE_volume_eval_geometry().
| void(* BKE_volume_batch_cache_dirty_tag_cb) (Volume *volume, int mode) | ( | Volume * | volume, |
| int | mode ) = nullptr |
Definition at line 826 of file blenkernel/intern/volume.cc.
Referenced by BKE_volume_batch_cache_dirty_tag(), and DRW_engines_register().
Definition at line 827 of file blenkernel/intern/volume.cc.
Referenced by BKE_volume_batch_cache_free(), and DRW_engines_register().
| IDTypeInfo IDType_ID_VO |
Definition at line 283 of file blenkernel/intern/volume.cc.