Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_fileops.h"
#include "BLI_hash.h"
#include "BLI_math.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "DNA_defaults.h"
#include "DNA_fluid_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_rigidbody_types.h"
#include "BKE_attribute.h"
#include "BKE_effect.h"
#include "BKE_fluid.h"
#include "BKE_global.h"
#include "BKE_lib_id.h"
#include "BKE_modifier.h"
#include "BKE_pointcache.h"
Go to the source code of this file.
Macros | |
#define | DT_DEFAULT 0.1f |
#define | PHI_MAX 9999.0f |
#define DT_DEFAULT 0.1f |
void BKE_fluid_cache_endframe_set | ( | FluidDomainSettings * | settings, |
int | value | ||
) |
Definition at line 4533 of file fluid.c.
References FluidDomainSettings::cache_frame_end, and FluidDomainSettings::cache_frame_start.
void BKE_fluid_cache_new_name_for_current_session | ( | int | maxlen, |
char * | r_name | ||
) |
Definition at line 5110 of file fluid.c.
References BLI_hash_int(), BLI_snprintf(), counter, and FLUID_DOMAIN_DIR_DEFAULT.
Referenced by BKE_fluid_modifier_create_type_data(), and fluid_validatepaths().
void BKE_fluid_cache_startframe_set | ( | FluidDomainSettings * | settings, |
int | value | ||
) |
Definition at line 4527 of file fluid.c.
References FluidDomainSettings::cache_frame_end, and FluidDomainSettings::cache_frame_start.
void BKE_fluid_cachetype_data_set | ( | FluidDomainSettings * | settings, |
int | cache_data_format | ||
) |
Definition at line 4548 of file fluid.c.
References FluidDomainSettings::cache_data_format.
void BKE_fluid_cachetype_mesh_set | ( | FluidDomainSettings * | settings, |
int | cache_mesh_format | ||
) |
Definition at line 4539 of file fluid.c.
References FluidDomainSettings::cache_mesh_format.
void BKE_fluid_cachetype_noise_set | ( | FluidDomainSettings * | settings, |
int | cache_noise_format | ||
) |
Definition at line 4566 of file fluid.c.
References FluidDomainSettings::cache_noise_format.
void BKE_fluid_cachetype_particle_set | ( | FluidDomainSettings * | settings, |
int | cache_particle_format | ||
) |
Definition at line 4557 of file fluid.c.
References FluidDomainSettings::cache_particle_format.
void BKE_fluid_collisionextents_set | ( | FluidDomainSettings * | settings, |
int | value, | ||
bool | clear | ||
) |
Definition at line 4575 of file fluid.c.
References FluidDomainSettings::border_collisions, and clear().
Referenced by BKE_fluid_domain_type_set().
void BKE_fluid_domain_type_set | ( | Object * | object, |
FluidDomainSettings * | settings, | ||
int | type | ||
) |
Definition at line 4595 of file fluid.c.
References BKE_fluid_collisionextents_set(), FLUID_DOMAIN_BORDER_BACK, FLUID_DOMAIN_BORDER_BOTTOM, FLUID_DOMAIN_BORDER_FRONT, FLUID_DOMAIN_BORDER_LEFT, FLUID_DOMAIN_BORDER_RIGHT, FLUID_DOMAIN_BORDER_TOP, FLUID_DOMAIN_TYPE_GAS, FLUID_DOMAIN_TYPE_LIQUID, OB_SOLID, OB_WIRE, type, and FluidDomainSettings::type.
Referenced by modifier_replace_with_fluid().
void BKE_fluid_effector_type_set | ( | Object * | UNUSEDobject, |
FluidEffectorSettings * | settings, | ||
int | type | ||
) |
Definition at line 4642 of file fluid.c.
References type, and FluidEffectorSettings::type.
void BKE_fluid_fields_sanitize | ( | FluidDomainSettings * | settings | ) |
Definition at line 4647 of file fluid.c.
References FluidDomainSettings::coba_field, ELEM, FLUID_DOMAIN_FIELD_COLOR_B, FLUID_DOMAIN_FIELD_COLOR_G, FLUID_DOMAIN_FIELD_COLOR_R, FLUID_DOMAIN_FIELD_DENSITY, FLUID_DOMAIN_FIELD_FLAME, FLUID_DOMAIN_FIELD_FUEL, FLUID_DOMAIN_FIELD_HEAT, FLUID_DOMAIN_FIELD_PHI, FLUID_DOMAIN_FIELD_PHI_IN, FLUID_DOMAIN_FIELD_PHI_OBSTACLE, FLUID_DOMAIN_FIELD_PHI_OUT, FLUID_DOMAIN_TYPE_GAS, FLUID_DOMAIN_TYPE_LIQUID, FluidDomainSettings::openvdb_data_depth, FluidDomainSettings::type, VDB_PRECISION_HALF_FLOAT, and VDB_PRECISION_MINI_FLOAT.
void BKE_fluid_flow_behavior_set | ( | Object * | UNUSEDobject, |
FluidFlowSettings * | settings, | ||
int | behavior | ||
) |
Definition at line 4622 of file fluid.c.
References FluidFlowSettings::behavior.
Referenced by BKE_fluid_flow_type_set().
void BKE_fluid_flow_type_set | ( | Object * | object, |
FluidFlowSettings * | settings, | ||
int | type | ||
) |
Definition at line 4627 of file fluid.c.
References BKE_fluid_flow_behavior_set(), FLUID_FLOW_BEHAVIOR_GEOMETRY, FLUID_FLOW_BEHAVIOR_INFLOW, FLUID_FLOW_TYPE_LIQUID, type, and FluidFlowSettings::type.
Referenced by modifier_replace_with_fluid().
void BKE_fluid_modifier_copy | ( | const struct FluidModifierData * | fmd, |
struct FluidModifierData * | tfmd, | ||
const int | flag | ||
) |
Definition at line 4865 of file fluid.c.
References FluidDomainSettings::active_fields, FluidDomainSettings::adapt_margin, FluidDomainSettings::adapt_res, FluidDomainSettings::adapt_threshold, FluidDomainSettings::alpha, FluidDomainSettings::axis_slice_method, FluidFlowSettings::behavior, FluidDomainSettings::beta, BKE_fluid_modifier_create_type_data(), BKE_ptcache_copy_list(), BKE_ptcache_free_list(), BLI_strncpy(), FluidDomainSettings::border_collisions, FluidDomainSettings::boundary_width, FluidDomainSettings::burning_rate, FluidDomainSettings::cache_data_format, FluidDomainSettings::cache_directory, FluidDomainSettings::cache_flag, FluidDomainSettings::cache_frame_end, FluidDomainSettings::cache_frame_offset, FluidDomainSettings::cache_frame_pause_data, FluidDomainSettings::cache_frame_pause_guide, FluidDomainSettings::cache_frame_pause_mesh, FluidDomainSettings::cache_frame_pause_noise, FluidDomainSettings::cache_frame_pause_particles, FluidDomainSettings::cache_frame_start, FluidDomainSettings::cache_mesh_format, FluidDomainSettings::cache_noise_format, FluidDomainSettings::cache_particle_format, FluidDomainSettings::cache_type, FluidDomainSettings::cfl_condition, FluidDomainSettings::clipping, FluidDomainSettings::coba, FluidDomainSettings::coba_field, FluidFlowSettings::color, copy_v3_v3(), copy_v3_v3_int(), copy_v4_v4(), FluidFlowSettings::density, FluidDomainSettings::display_thickness, FluidDomainSettings::diss_speed, FluidModifierData::domain, FluidDomainSettings::draw_velocity, FluidModifierData::effector, FluidDomainSettings::effector_group, FluidDomainSettings::effector_weights, eModifierFlag_SharedCaches, Mesh::flag, ModifierData::flag, FluidDomainSettings::flags, FluidFlowSettings::flags, FluidEffectorSettings::flags, FluidDomainSettings::flame_ignition, FluidDomainSettings::flame_max_temp, FluidDomainSettings::flame_smoke, FluidDomainSettings::flame_smoke_color, FluidDomainSettings::flame_vorticity, FluidDomainSettings::flip_ratio, FluidModifierData::flow, FluidDomainSettings::fluid_group, FluidDomainSettings::force_group, FluidDomainSettings::fractions_distance, FluidDomainSettings::fractions_threshold, FluidFlowSettings::fuel_amount, FluidDomainSettings::gravity, FluidDomainSettings::grid_scale, FluidDomainSettings::gridlines_cell_filter, FluidDomainSettings::gridlines_color_field, FluidDomainSettings::gridlines_lower_bound, FluidDomainSettings::gridlines_range_color, FluidDomainSettings::gridlines_upper_bound, FluidDomainSettings::guide_alpha, FluidDomainSettings::guide_beta, FluidEffectorSettings::guide_mode, FluidDomainSettings::guide_parent, FluidDomainSettings::guide_res, FluidDomainSettings::guide_source, FluidDomainSettings::guide_vel_factor, FluidDomainSettings::highres_sampling, FluidDomainSettings::interp_method, LIB_ID_COPY_SET_COPIED_ON_WRITE, FluidDomainSettings::maxres, MEM_dupallocN, MEM_freeN, FluidDomainSettings::mesh_concave_lower, FluidDomainSettings::mesh_concave_upper, FluidDomainSettings::mesh_generator, FluidDomainSettings::mesh_particle_radius, FluidDomainSettings::mesh_scale, FluidDomainSettings::mesh_smoothen_neg, FluidDomainSettings::mesh_smoothen_pos, FluidModifierData::modifier, FluidDomainSettings::noise_pos_scale, FluidDomainSettings::noise_scale, FluidDomainSettings::noise_strength, FluidFlowSettings::noise_texture, FluidDomainSettings::noise_time_anim, FluidDomainSettings::openvdb_compression, FluidDomainSettings::openvdb_data_depth, FluidDomainSettings::particle_band_width, FluidDomainSettings::particle_maximum, FluidDomainSettings::particle_minimum, FluidDomainSettings::particle_number, FluidDomainSettings::particle_radius, FluidDomainSettings::particle_randomness, FluidDomainSettings::particle_scale, FluidFlowSettings::particle_size, FluidDomainSettings::particle_type, FluidDomainSettings::point_cache, FluidFlowSettings::psys, FluidDomainSettings::ptcaches, FluidDomainSettings::show_gridlines, FluidDomainSettings::simulation_method, FluidDomainSettings::slice_axis, FluidDomainSettings::slice_depth, FluidDomainSettings::slice_per_voxel, FluidDomainSettings::sndparticle_boundary, FluidDomainSettings::sndparticle_combined_export, FluidDomainSettings::sndparticle_k_b, FluidDomainSettings::sndparticle_k_d, FluidDomainSettings::sndparticle_k_ta, FluidDomainSettings::sndparticle_k_wc, FluidDomainSettings::sndparticle_l_max, FluidDomainSettings::sndparticle_l_min, FluidDomainSettings::sndparticle_potential_radius, FluidDomainSettings::sndparticle_tau_max_k, FluidDomainSettings::sndparticle_tau_max_ta, FluidDomainSettings::sndparticle_tau_max_wc, FluidDomainSettings::sndparticle_tau_min_k, FluidDomainSettings::sndparticle_tau_min_ta, FluidDomainSettings::sndparticle_tau_min_wc, FluidDomainSettings::sndparticle_update_radius, FluidDomainSettings::solver_res, FluidFlowSettings::source, FluidFlowSettings::subframes, FluidEffectorSettings::subframes, FluidFlowSettings::surface_distance, FluidEffectorSettings::surface_distance, FluidDomainSettings::surface_tension, FluidDomainSettings::sys_particle_maximum, FluidFlowSettings::temperature, FluidFlowSettings::texture_offset, FluidFlowSettings::texture_size, FluidFlowSettings::texture_type, FluidModifierData::time, FluidDomainSettings::time_scale, FluidDomainSettings::timesteps_maximum, FluidDomainSettings::timesteps_minimum, FluidDomainSettings::type, FluidFlowSettings::type, FluidEffectorSettings::type, FluidModifierData::type, FluidDomainSettings::use_coba, FluidFlowSettings::uvlayer_name, FluidDomainSettings::vector_draw_mac_components, FluidDomainSettings::vector_draw_type, FluidDomainSettings::vector_field, FluidDomainSettings::vector_scale, FluidDomainSettings::vector_scale_with_magnitude, FluidFlowSettings::vel_coord, FluidFlowSettings::vel_multi, FluidEffectorSettings::vel_multi, FluidFlowSettings::vel_normal, FluidFlowSettings::vel_random, FluidDomainSettings::velocity_scale, FluidFlowSettings::vgroup_density, FluidDomainSettings::viscosity_base, FluidDomainSettings::viscosity_exponent, FluidDomainSettings::viscosity_value, FluidFlowSettings::volume_density, and FluidDomainSettings::vorticity.
Referenced by copyData().
void BKE_fluid_modifier_create_type_data | ( | struct FluidModifierData * | fmd | ) |
Definition at line 4809 of file fluid.c.
References BKE_effector_add_weights(), BKE_fluid_cache_new_name_for_current_session(), BKE_fluid_modifier_freeDomain(), BKE_fluid_modifier_freeEffector(), BKE_fluid_modifier_freeFlow(), BKE_modifier_path_init(), BKE_ptcache_add(), BLI_rw_mutex_alloc(), FluidDomainSettings::cache_data_format, FluidDomainSettings::cache_directory, FluidDomainSettings::cache_noise_format, FluidDomainSettings::cache_particle_format, DNA_struct_default_alloc, FluidModifierData::domain, FluidModifierData::effector, FluidDomainSettings::effector_weights, PointCache::flag, FluidModifierData::flow, FLUID_DOMAIN_FILE_UNI, FluidDomainSettings::fluid_mutex, FluidDomainSettings::fmd, FluidFlowSettings::fmd, FluidEffectorSettings::fmd, MOD_FLUID_TYPE_DOMAIN, MOD_FLUID_TYPE_EFFEC, MOD_FLUID_TYPE_FLOW, NULL, FluidDomainSettings::openvdb_compression, FluidDomainSettings::point_cache, PTCACHE_DISK_CACHE, FluidDomainSettings::ptcaches, PointCache::step, FluidModifierData::type, and VDB_COMPRESSION_ZIP.
Referenced by BKE_fluid_modifier_copy(), and modifier_ensure_type().
void BKE_fluid_modifier_free | ( | FluidModifierData * | fmd | ) |
Definition at line 4798 of file fluid.c.
References BKE_fluid_modifier_freeDomain(), BKE_fluid_modifier_freeEffector(), and BKE_fluid_modifier_freeFlow().
Referenced by copyData(), freeData(), and modifier_ensure_type().
|
static |
Definition at line 4692 of file fluid.c.
References BKE_ptcache_free_list(), BLI_rw_mutex_free(), FluidDomainSettings::coba, FluidModifierData::domain, FluidDomainSettings::effector_weights, eModifierFlag_SharedCaches, ModifierData::flag, FluidDomainSettings::fluid, FluidDomainSettings::fluid_mutex, manta_free(), MEM_freeN, MEM_SAFE_FREE, FluidModifierData::modifier, NULL, FluidDomainSettings::point_cache, and FluidDomainSettings::ptcaches.
Referenced by BKE_fluid_modifier_create_type_data(), and BKE_fluid_modifier_free().
|
static |
Definition at line 4738 of file fluid.c.
References BKE_id_free(), FluidModifierData::effector, FluidEffectorSettings::flags, FLUID_EFFECTOR_NEEDS_UPDATE, MEM_freeN, MEM_SAFE_FREE, FluidEffectorSettings::mesh, NULL, FluidEffectorSettings::numverts, and FluidEffectorSettings::verts_old.
Referenced by BKE_fluid_modifier_create_type_data(), and BKE_fluid_modifier_free().
|
static |
Definition at line 4721 of file fluid.c.
References BKE_id_free(), FluidFlowSettings::flags, FluidModifierData::flow, FLUID_FLOW_NEEDS_UPDATE, MEM_freeN, MEM_SAFE_FREE, FluidFlowSettings::mesh, NULL, FluidFlowSettings::numverts, and FluidFlowSettings::verts_old.
Referenced by BKE_fluid_modifier_create_type_data(), and BKE_fluid_modifier_free().
void BKE_fluid_modifier_reset | ( | struct FluidModifierData * | fmd | ) |
Definition at line 4793 of file fluid.c.
References BKE_fluid_modifier_reset_ex().
|
static |
Definition at line 4755 of file fluid.c.
References FluidDomainSettings::active_fields, BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), FluidModifierData::domain, FluidModifierData::effector, FluidFlowSettings::flags, FluidEffectorSettings::flags, FluidModifierData::flow, FluidDomainSettings::fluid, FLUID_EFFECTOR_NEEDS_UPDATE, FLUID_FLOW_NEEDS_UPDATE, FluidDomainSettings::fluid_mutex, manta_free(), MEM_SAFE_FREE, NULL, FluidFlowSettings::numverts, FluidEffectorSettings::numverts, THREAD_LOCK_WRITE, FluidModifierData::time, FluidDomainSettings::total_cells, FluidFlowSettings::verts_old, and FluidEffectorSettings::verts_old.
Referenced by BKE_fluid_modifier_reset().
void BKE_fluid_particles_set | ( | FluidDomainSettings * | settings, |
int | value, | ||
bool | clear | ||
) |
Definition at line 4585 of file fluid.c.
References clear(), and FluidDomainSettings::particle_type.