Blender
V3.3
|
#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_compiler_compat.h"
#include "BLI_fileops.h"
#include "BLI_float4x4.hh"
#include "BLI_ghash.h"
#include "BLI_index_range.hh"
#include "BLI_map.hh"
#include "BLI_math.h"
#include "BLI_math_vec_types.hh"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_string_ref.hh"
#include "BLI_task.hh"
#include "BLI_utildefines.h"
#include "BKE_anim_data.h"
#include "BKE_bpath.h"
#include "BKE_geometry_set.hh"
#include "BKE_global.h"
#include "BKE_idtype.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_lib_remap.h"
#include "BKE_main.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_packedFile.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_volume.h"
#include "BLT_translation.h"
#include "DEG_depsgraph_query.h"
#include "BLO_read_write.h"
#include "CLG_log.h"
Go to the source code of this file.
Macros | |
#define | VOLUME_FRAME_NONE INT_MAX |
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 |
Definition at line 690 of file 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 1215 of file volume.cc.
References Volume::batch_cache, and BKE_volume_batch_cache_dirty_tag_cb.
Referenced by BKE_object_data_batch_cache_dirty_tag().
Definition at line 1222 of file volume.cc.
References Volume::batch_cache, and BKE_volume_batch_cache_free_cb.
Referenced by volume_free_data().
Definition at line 1007 of file volume.cc.
References Object_Runtime::bb, BKE_boundbox_init_from_minmax(), BKE_volume_min_max(), BLI_assert, BOUNDBOX_DIRTY, Object::data, BoundBox::flag, INIT_MINMAX, max, min, OB_VOLUME, Object::runtime, and Object::type.
Referenced by BKE_object_boundbox_get(), BKE_object_minmax(), and drw_call_calc_orco().
Definition at line 1515 of file volume.cc.
References BKE_id_copy_ex(), Volume::id, LIB_ID_COPY_CD_REFERENCE, LIB_ID_COPY_LOCALIZE, and result.
Referenced by VolumeComponent::copy(), VolumeComponent::ensure_owns_direct_data(), and VolumeComponent::get_for_write().
Definition at line 1159 of file volume.cc.
References BKE_object_eval_assign_data(), BKE_object_free_derived_caches(), BKE_volume_new_for_eval(), Object::data, depsgraph, Volume::id, ReadOnly, GeometrySet::replace_volume(), scene, take_volume_ownership_from_geometry_set(), and volume_evaluate_modifiers().
Referenced by BKE_object_handle_data_update(), and object_force_modifier_update_for_bind().
Definition at line 1120 of file volume.cc.
References BKE_volume_unload(), DEG_get_original_id(), DEG_is_active(), depsgraph, Volume_Runtime::frame, Volume::id, Volume::runtime, volume_sequence_frame(), and volume_update_simplify_level().
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock().
const VolumeGrid* BKE_volume_grid_active_get_for_read | ( | const Volume * | volume | ) |
Definition at line 1293 of file volume.cc.
References Volume::active_grid, BKE_volume_grid_get_for_read(), BKE_volume_num_grids(), and clamp_i().
VolumeGrid* BKE_volume_grid_add | ( | Volume * | volume, |
const char * | name, | ||
VolumeGridType | type | ||
) |
Definition at line 1542 of file volume.cc.
References BKE_volume_grid_find_for_read(), BLI_assert, Volume_Runtime::grids, Volume::runtime, type, UNUSED_VARS, and VOLUME_GRID_UNKNOWN.
int BKE_volume_grid_channels | ( | const VolumeGrid * | grid | ) |
Definition at line 1437 of file volume.cc.
References BKE_volume_grid_type(), VOLUME_GRID_BOOLEAN, VOLUME_GRID_DOUBLE, VOLUME_GRID_FLOAT, VOLUME_GRID_INT, VOLUME_GRID_INT64, VOLUME_GRID_MASK, VOLUME_GRID_POINTS, VOLUME_GRID_UNKNOWN, VOLUME_GRID_VECTOR_DOUBLE, VOLUME_GRID_VECTOR_FLOAT, and VOLUME_GRID_VECTOR_INT.
Openvdb crashes when the determinant of the transform matrix becomes too small.
Definition at line 1593 of file volume.cc.
References blender::math::abs(), determinant(), and UNUSED_VARS.
Referenced by blender::nodes::transform_volume().
const VolumeGrid* BKE_volume_grid_find_for_read | ( | const Volume * | volume, |
const char * | name | ||
) |
Definition at line 1304 of file volume.cc.
References BKE_volume_grid_get_for_read(), BKE_volume_grid_name(), BKE_volume_num_grids(), and STREQ.
Referenced by BKE_volume_grid_add(), and BKE_volume_set_velocity_grid_by_name().
const VolumeGrid* BKE_volume_grid_get_for_read | ( | const Volume * | volume, |
int | grid_index | ||
) |
Definition at line 1261 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Referenced by BKE_volume_grid_active_get_for_read(), BKE_volume_grid_find_for_read(), BKE_volume_is_points_only(), and BKE_volume_min_max().
VolumeGrid* BKE_volume_grid_get_for_write | ( | Volume * | volume, |
int | grid_index | ||
) |
Definition at line 1277 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Referenced by displace_volume(), and blender::nodes::transform_volume().
bool BKE_volume_grid_is_loaded | ( | const VolumeGrid * | grid | ) |
Definition at line 1347 of file volume.cc.
References UNUSED_VARS.
bool BKE_volume_grid_load | ( | const Volume * | volume, |
const VolumeGrid * | grid | ||
) |
Definition at line 1319 of file volume.cc.
References Volume_Runtime::grids, Volume::id, ID::name, Volume::runtime, and UNUSED_VARS.
const char* BKE_volume_grid_name | ( | const VolumeGrid * | volume_grid | ) |
Definition at line 1359 of file volume.cc.
References UNUSED_VARS.
Referenced by BKE_volume_grid_find_for_read().
void BKE_volume_grid_remove | ( | Volume * | volume, |
VolumeGrid * | grid | ||
) |
Definition at line 1578 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
void BKE_volume_grid_transform_matrix | ( | const VolumeGrid * | volume_grid, |
float | mat[4][4] | ||
) |
Definition at line 1459 of file volume.cc.
References col, transform(), unit_m4(), and UNUSED_VARS.
void BKE_volume_grid_transform_matrix_set | ( | struct VolumeGrid * | volume_grid, |
const float | mat[4][4] | ||
) |
Definition at line 1480 of file volume.cc.
References col, and UNUSED_VARS.
Referenced by blender::nodes::transform_volume().
VolumeGridType BKE_volume_grid_type | ( | const VolumeGrid * | volume_grid | ) |
Definition at line 1426 of file volume.cc.
References UNUSED_VARS, and VOLUME_GRID_UNKNOWN.
Referenced by BKE_volume_grid_channels(), and BKE_volume_is_points_only().
void BKE_volume_grid_unload | ( | const Volume * | volume, |
const VolumeGrid * | grid | ||
) |
Definition at line 1337 of file volume.cc.
References Volume::id, ID::name, and UNUSED_VARS.
void BKE_volume_grids_backup_restore | ( | Volume * | volume, |
VolumeGridVector * | grids, | ||
const char * | filepath | ||
) |
Definition at line 1183 of file volume.cc.
References BLI_assert, Volume::filepath, Volume_Runtime::grids, Volume::id, LIB_TAG_COPIED_ON_WRITE, Volume::runtime, STREQ, ID::tag, and UNUSED_VARS.
Referenced by blender::deg::VolumeBackup::restore_to_volume().
const char* BKE_volume_grids_error_msg | ( | const Volume * | volume | ) |
Definition at line 1241 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
const char* BKE_volume_grids_frame_filepath | ( | const Volume * | volume | ) |
Definition at line 1251 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Definition at line 679 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Referenced by BKE_volume_new_for_eval(), volume_blend_read_lib(), and volume_init_data().
Definition at line 785 of file volume.cc.
References Volume::filepath, Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Referenced by BKE_volume_load().
Definition at line 1053 of file volume.cc.
References BKE_volume_grid_get_for_read(), BKE_volume_grid_type(), BKE_volume_num_grids(), and VOLUME_GRID_POINTS.
Definition at line 1033 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Definition at line 847 of file volume.cc.
References BKE_volume_is_loaded(), BKE_volume_set_velocity_grid_by_name(), BLI_exists(), BLI_split_file_part(), BLI_strncpy(), CLOG_INFO, Volume_Runtime::default_simplify_level, e, file, FILE_MAX, Volume_Runtime::frame, Volume_Runtime::grids, Volume::id, lock, LOG, ID::name, Volume::runtime, UNUSED_VARS, and VOLUME_FRAME_NONE.
Referenced by BKE_volume_min_max(), and BKE_volume_save().
Definition at line 981 of file volume.cc.
References BKE_volume_grid_get_for_read(), BKE_volume_load(), BKE_volume_num_grids(), DO_MAX, DO_MIN, G, and UNUSED_VARS.
Referenced by BKE_volume_boundbox_get(), GeometrySet::compute_boundbox_without_instances(), and blender::io::usd::USDVolumeWriter::do_write().
Definition at line 1501 of file volume.cc.
References BKE_id_new_nomain(), BKE_volume_init_grids(), Volume::display, Volume::id, ID_VO, Volume::mat, MEM_dupallocN, ID::name, Volume::render, STRNCPY, and Volume::totcol.
Referenced by BKE_volume_data_update().
int BKE_volume_num_grids | ( | const Volume * | volume | ) |
Definition at line 1231 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and UNUSED_VARS.
Referenced by BKE_volume_grid_active_get_for_read(), BKE_volume_grid_find_for_read(), BKE_volume_is_points_only(), and BKE_volume_min_max().
bool BKE_volume_save | ( | const Volume * | volume, |
const Main * | bmain, | ||
ReportList * | reports, | ||
const char * | filepath | ||
) |
Definition at line 946 of file volume.cc.
References BKE_reportf(), BKE_volume_load(), e, file, Volume_Runtime::grids, RPT_ERROR, Volume::runtime, and UNUSED_VARS.
Definition at line 796 of file volume.cc.
References BKE_volume_grid_find_for_read(), BLI_strncpy(), Volume::runtime, Volume::velocity_grid, Volume_Runtime::velocity_x_grid, Volume_Runtime::velocity_y_grid, and Volume_Runtime::velocity_z_grid.
Referenced by BKE_volume_load().
Definition at line 1620 of file volume.cc.
References DAG_EVAL_RENDER, DEG_get_input_scene(), DEG_get_mode(), depsgraph, RenderData::mode, Scene::r, R_SIMPLIFY, scene, and RenderData::simplify_volumes.
int BKE_volume_simplify_level | ( | const Depsgraph * | depsgraph | ) |
Definition at line 1604 of file volume.cc.
References ceilf, DAG_EVAL_RENDER, DEG_get_input_scene(), DEG_get_mode(), depsgraph, RenderData::mode, Scene::r, R_SIMPLIFY, scene, and RenderData::simplify_volumes.
Referenced by volume_update_simplify_level().
Definition at line 930 of file volume.cc.
References CLOG_INFO, Volume_Runtime::grids, Volume::id, LOG, ID::name, Volume::runtime, and UNUSED_VARS.
Referenced by BKE_packedfile_unpack_volume(), BKE_volume_eval_geometry(), blender::io::usd::USDVolumeWriter::do_write(), and volume_import_exec().
|
static |
Definition at line 1141 of file volume.cc.
References GeometrySet::get_component_for_write(), GeometrySet::has(), ReadOnly, VolumeComponent::release(), GeometrySet::remove(), and VolumeComponent::replace().
Referenced by BKE_volume_data_update().
|
static |
Definition at line 615 of file volume.cc.
References Volume::adt, BKE_animdata_blend_read_data(), BKE_packedfile_blend_read(), BLO_read_data_address, BLO_read_pointer_array(), Volume_Runtime::frame, Volume::mat, Volume::packedfile, and Volume::runtime.
|
static |
Definition at line 641 of file volume.cc.
References Freestyle::a, BLO_expand, Volume::mat, and Volume::totcol.
|
static |
Definition at line 628 of file volume.cc.
References Freestyle::a, BKE_volume_init_grids(), BLO_read_id_address, Volume::id, ID::lib, Volume::mat, and Volume::totcol.
|
static |
Definition at line 589 of file volume.cc.
References Volume::adt, BKE_animdata_blend_write(), BKE_id_blend_write(), BKE_packedfile_blend_write(), BLO_write_id_struct, BLO_write_is_undo(), BLO_write_pointer_array(), Volume_Runtime::grids, Volume::id, ID_IS_OVERRIDE_LIBRARY, Volume::mat, Volume::packedfile, Volume::runtime, and Volume::totcol.
|
static |
Definition at line 521 of file volume.cc.
References Volume::batch_cache, BKE_packedfile_duplicate(), Volume_Runtime::grids, Volume::mat, MEM_dupallocN, Volume::packedfile, and Volume::runtime.
|
static |
Definition at line 1087 of file 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::modifyGeometrySet, ModifierData::next, scene, and ModifierData::type.
Referenced by BKE_volume_data_update().
|
static |
Definition at line 564 of file volume.cc.
References Volume_Runtime::grids, Volume::runtime, and user_data.
|
static |
Definition at line 556 of file volume.cc.
References BKE_LIB_FOREACHID_PROCESS_IDSUPER, data, IDWALK_CB_USER, Volume::mat, and Volume::totcol.
|
static |
Definition at line 577 of file volume.cc.
References BKE_bpath_foreach_path_fixed_process(), BKE_BPATH_FOREACH_PATH_SKIP_PACKED, Volume::filepath, BPathForeachPathData::flag, id, and Volume::packedfile.
Definition at line 544 of file volume.cc.
References BKE_animdata_free(), BKE_volume_batch_cache_free(), Volume_Runtime::grids, Volume::id, Volume::mat, MEM_SAFE_FREE, and Volume::runtime.
Definition at line 509 of file volume.cc.
References BKE_volume_init_grids(), BLI_assert, BLI_strncpy(), DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, MEMCPY_STRUCT_AFTER, and Volume::velocity_grid.
Definition at line 699 of file volume.cc.
References BLI_path_frame_get(), clamp_i(), DEG_get_ctime(), depsgraph, FILE_MAX, Volume::filepath, Volume::frame_duration, Volume::frame_offset, Volume::frame_start, if(), Volume::is_sequence, Volume::sequence_mode, STRNCPY, VOLUME_FRAME_NONE, VOLUME_SEQUENCE_CLIP, VOLUME_SEQUENCE_EXTEND, VOLUME_SEQUENCE_PING_PONG, and VOLUME_SEQUENCE_REPEAT.
Referenced by BKE_volume_eval_geometry().
Definition at line 1072 of file volume.cc.
References BKE_volume_simplify_level(), Volume_Runtime::default_simplify_level, depsgraph, Volume_Runtime::grids, Volume::runtime, 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 1212 of file volume.cc.
Referenced by BKE_volume_batch_cache_dirty_tag(), and DRW_engines_register().
Definition at line 1213 of file volume.cc.
Referenced by BKE_volume_batch_cache_free(), and DRW_engines_register().
IDTypeInfo IDType_ID_VO |