Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | PTCacheData |
struct | PTCacheFile |
struct | PTCacheID |
struct | PTCacheBaker |
struct | PTCacheEditKey |
struct | PTCacheEditPoint |
struct | PTCacheUndo |
struct | PTCacheEdit |
Typedefs | |
typedef struct PTCacheData | PTCacheData |
typedef struct PTCacheFile | PTCacheFile |
typedef struct PTCacheID | PTCacheID |
typedef struct PTCacheBaker | PTCacheBaker |
typedef struct PTCacheEditKey | PTCacheEditKey |
typedef struct PTCacheEditPoint | PTCacheEditPoint |
typedef struct PTCacheUndo | PTCacheUndo |
typedef struct PTCacheEdit | PTCacheEdit |
Enumerations | |
enum | { PTCACHE_FILE_PTCACHE = 0 } |
enum | { PT_CACHE_EDIT_UPDATE_PARTICLE_FROM_EVAL = (1 << 0) } |
#define PEK_HIDE 4 |
Definition at line 186 of file BKE_pointcache.h.
#define PEK_SELECT 1 |
Definition at line 184 of file BKE_pointcache.h.
#define PEK_TAG 2 |
Definition at line 185 of file BKE_pointcache.h.
#define PEK_USE_WCO 8 |
Definition at line 187 of file BKE_pointcache.h.
#define PEP_EDIT_RECALC 2 |
Definition at line 203 of file BKE_pointcache.h.
#define PEP_HIDE 8 |
Definition at line 205 of file BKE_pointcache.h.
#define PEP_TAG 1 |
Definition at line 202 of file BKE_pointcache.h.
#define PEP_TRANSFORM 4 |
Definition at line 204 of file BKE_pointcache.h.
#define PTCACHE_CLEAR_AFTER 3 |
Definition at line 24 of file BKE_pointcache.h.
#define PTCACHE_CLEAR_ALL 0 |
Definition at line 21 of file BKE_pointcache.h.
#define PTCACHE_CLEAR_BEFORE 2 |
Definition at line 23 of file BKE_pointcache.h.
#define PTCACHE_CLEAR_FRAME 1 |
Definition at line 22 of file BKE_pointcache.h.
#define PTCACHE_EXT ".bphys" |
Definition at line 33 of file BKE_pointcache.h.
#define PTCACHE_FILE_READ 0 |
Definition at line 37 of file BKE_pointcache.h.
#define PTCACHE_FILE_UPDATE 2 |
Definition at line 39 of file BKE_pointcache.h.
#define PTCACHE_FILE_WRITE 1 |
Definition at line 38 of file BKE_pointcache.h.
#define PTCACHE_PATH "blendcache_" |
Definition at line 34 of file BKE_pointcache.h.
#define PTCACHE_READ_EXACT 1 |
Definition at line 59 of file BKE_pointcache.h.
#define PTCACHE_READ_INTERPOLATED 2 |
Definition at line 60 of file BKE_pointcache.h.
#define PTCACHE_READ_OLD 3 |
Definition at line 61 of file BKE_pointcache.h.
#define PTCACHE_RESET_BAKED 1 |
Definition at line 28 of file BKE_pointcache.h.
#define PTCACHE_RESET_DEPSGRAPH 0 |
Definition at line 27 of file BKE_pointcache.h.
#define PTCACHE_RESET_OUTDATED 2 |
Definition at line 29 of file BKE_pointcache.h.
#define PTCACHE_TYPE_CLOTH 2 |
Definition at line 44 of file BKE_pointcache.h.
#define PTCACHE_TYPE_DYNAMICPAINT 5 |
Definition at line 47 of file BKE_pointcache.h.
#define PTCACHE_TYPE_PARTICLES 1 |
Definition at line 43 of file BKE_pointcache.h.
#define PTCACHE_TYPE_RIGIDBODY 6 |
Definition at line 48 of file BKE_pointcache.h.
#define PTCACHE_TYPE_SIM_PARTICLES 7 |
Definition at line 49 of file BKE_pointcache.h.
#define PTCACHE_TYPE_SMOKE_DOMAIN 3 |
Definition at line 45 of file BKE_pointcache.h.
#define PTCACHE_TYPE_SMOKE_HIGHRES 4 |
Definition at line 46 of file BKE_pointcache.h.
#define PTCACHE_TYPE_SOFTBODY 0 |
Definition at line 42 of file BKE_pointcache.h.
#define PTCACHE_TYPEFLAG_COMPRESS (1 << 16) |
Definition at line 52 of file BKE_pointcache.h.
#define PTCACHE_TYPEFLAG_EXTRADATA (1 << 17) |
Definition at line 53 of file BKE_pointcache.h.
#define PTCACHE_TYPEFLAG_FLAGMASK 0xFFFF0000 |
Definition at line 56 of file BKE_pointcache.h.
#define PTCACHE_TYPEFLAG_TYPEMASK 0x0000FFFF |
Definition at line 55 of file BKE_pointcache.h.
#define PTCACHE_VEL_PER_SEC 1 |
Definition at line 103 of file BKE_pointcache.h.
typedef struct PTCacheBaker PTCacheBaker |
typedef struct PTCacheData PTCacheData |
typedef struct PTCacheEdit PTCacheEdit |
typedef struct PTCacheEditKey PTCacheEditKey |
typedef struct PTCacheEditPoint PTCacheEditPoint |
typedef struct PTCacheFile PTCacheFile |
typedef struct PTCacheUndo PTCacheUndo |
anonymous enum |
Enumerator | |
---|---|
PTCACHE_FILE_PTCACHE |
Definition at line 105 of file BKE_pointcache.h.
anonymous enum |
Enumerator | |
---|---|
PT_CACHE_EDIT_UPDATE_PARTICLE_FROM_EVAL |
Definition at line 230 of file BKE_pointcache.h.
struct PointCache* BKE_ptcache_add | ( | struct ListBase * | ptcaches | ) |
Definition at line 3014 of file pointcache.c.
References BLI_addtail(), PointCache::endframe, PointCache::index, MEM_callocN, PointCache::startframe, and PointCache::step.
Referenced by BKE_fluid_modifier_create_type_data(), BKE_modifier_blend_write(), blo_do_versions_280(), blo_do_versions_pre250(), dynamicPaint_createNewSurface(), initData(), object_add_or_copy_particle_system(), ptcache_add_new_exec(), and sbNew().
void BKE_ptcache_bake | ( | struct PTCacheBaker * | baker | ) |
Bake cache or simulate to current frame with settings defined in the baker. if bake is not given run simulations to current frame.
Definition at line 3156 of file pointcache.c.
References PTCacheBaker::anim_init, PTCacheBaker::bake, bake(), PTCacheBaker::bake_job, BKE_ptcache_id_clear(), BKE_ptcache_id_from_particles(), BKE_ptcache_ids_from_object(), BKE_ptcache_write(), BKE_scene_graph_update_for_newframe(), BLI_assert, BLI_freelistN(), PTCacheID::cache, PTCacheID::calldata, RenderData::cfra, DEG_get_evaluated_object(), PTCacheBaker::depsgraph, depsgraph, PointCache::endframe, ListBase::first, PointCache::flag, float(), RenderData::framelen, G, GS, ID_OB, if(), PointCache::last_exact, MAX2, MAX_DUPLI_RECUR, MAXFRAME, MIN2, ID::name, PTCacheID::next, NULL, Base::object, PTCacheID::owner_id, ParticleSystem::part, PART_EMITTER, PART_HAIR, PART_PHYS_KEYED, ParticleSettings::phystype, PTCacheBaker::pid, PIL_check_seconds_timer(), psys_eval_get(), psys_get_pointcache_start_end(), PTCACHE_BAKED, PTCACHE_BAKING, PTCACHE_CLEAR_ALL, PTCACHE_DISK_CACHE, ptcache_dt_to_str(), PTCACHE_OUTDATED, PTCACHE_REDO_NEEDED, PTCACHE_SIMULATION_VALID, PTCACHE_TYPE_PARTICLES, PTCACHE_TYPE_RIGIDBODY, PTCACHE_TYPE_SMOKE_DOMAIN, PTCACHE_TYPE_SMOKE_HIGHRES, PTCacheBaker::quick_step, Scene::r, PTCacheBaker::render, PTCacheBaker::scene, scene, SETLOOPER_VIEW_LAYER, RenderData::sfra, PointCache::startframe, PTCacheID::type, ParticleSettings::type, PTCacheBaker::update_progress, and PTCacheBaker::view_layer.
Referenced by BKE_ptcache_quick_cache_all(), ptcache_bake_exec(), ptcache_job_startjob(), and update_physics_cache().
void BKE_ptcache_blend_read_data | ( | struct BlendDataReader * | reader, |
struct ListBase * | ptcaches, | ||
struct PointCache ** | ocache, | ||
int | force_disk | ||
) |
Definition at line 3896 of file pointcache.c.
References BLO_read_data_address, BLO_read_list(), direct_link_pointcache(), ListBase::first, ListBase::last, LISTBASE_FOREACH, and PTCACHE_DISK_CACHE.
Referenced by BKE_modifier_blend_read_data(), BKE_particle_system_blend_read_data(), object_blend_read_data(), and scene_blend_read_data().
void BKE_ptcache_blend_write | ( | struct BlendWriter * | writer, |
struct ListBase * | ptcaches | ||
) |
Definition at line 3820 of file pointcache.c.
References BLO_write_raw(), BLO_write_struct, BLO_write_struct_array_by_name(), BPHYS_TOT_DATA, PTCacheMem::data, PTCacheMem::data_types, PTCacheMem::extradata, LISTBASE_FOREACH, MEM_allocN_len, ptcache_data_struct, PTCACHE_DISK_CACHE, ptcache_extra_struct, and PTCacheMem::totpoint.
Referenced by BKE_modifier_blend_write(), BKE_particle_system_blend_write(), object_blend_write(), and scene_blend_write().
struct PointCache* BKE_ptcache_copy_list | ( | struct ListBase * | ptcaches_new, |
const struct ListBase * | ptcaches_old, | ||
int | flag | ||
) |
Referenced by BKE_fluid_modifier_copy(), BKE_object_copy_particlesystem(), BKE_object_copy_softbody(), and copyData().
int BKE_ptcache_data_size | ( | int | data_type | ) |
Size of cache data type.
Definition at line 1707 of file pointcache.c.
References ptcache_data_size.
Referenced by direct_link_pointcache_cb().
void BKE_ptcache_disk_cache_rename | ( | struct PTCacheID * | pid, |
const char * | name_src, | ||
const char * | name_dst | ||
) |
Rename all disk cache files with a new name. Doesn't touch the actual content of the files.
Definition at line 3517 of file pointcache.c.
References BLI_join_dirfile(), BLI_rename(), BLI_strncpy(), PTCacheID::cache, closedir(), dirent::d_name, len, MAX_PTCACHE_FILE, MAX_PTCACHE_PATH, PointCache::name, NULL, opendir(), ptcache_filename(), ptcache_filename_ext_append(), ptcache_frame_from_filename(), ptcache_path(), readdir(), STREQ, and STREQLEN.
Convert disk cache to memory cache.
Definition at line 3421 of file pointcache.c.
References BKE_ptcache_id_clear(), BLI_addtail(), PTCacheID::cache, PointCache::endframe, PointCache::flag, PointCache::mem_cache, NULL, PTCACHE_BAKED, PTCACHE_CLEAR_ALL, ptcache_disk_frame_to_mem(), and PointCache::startframe.
Referenced by BKE_ptcache_toggle_disk_cache(), and psys_make_temp_pointcache().
void BKE_ptcache_free | ( | struct PointCache * | cache | ) |
Definition at line 3041 of file pointcache.c.
References BKE_ptcache_free_mem(), PointCache::cached_frames, PointCache::edit, PointCache::free_edit, PointCache::mem_cache, and MEM_freeN.
Referenced by BKE_modifier_blend_read_data(), BKE_ptcache_free_list(), and ptcache_remove_exec().
Definition at line 3052 of file pointcache.c.
References BKE_ptcache_free(), and BLI_pophead().
Referenced by BKE_fluid_modifier_copy(), BKE_fluid_modifier_freeDomain(), BKE_modifier_blend_write(), BKE_rigidbody_free_world(), copyData(), dynamicPaint_freeSurface(), dynamicPaint_Modifier_copy(), freeData(), psys_free(), and sbFree().
Definition at line 3029 of file pointcache.c.
References BLI_freelistN(), ListBase::first, PTCacheMem::next, and ptcache_mem_clear().
Referenced by BKE_ptcache_free(), psys_clear_temp_pointcache(), undoptcache_free_data(), and undoptcache_to_editcache().
Definition at line 2592 of file pointcache.c.
References BKE_ptcache_id_exist(), BLI_delete(), BLI_freelinkN(), BLI_freelistN(), BLI_join_dirfile(), BLI_strncpy(), PTCacheID::cache, PointCache::cached_frames, closedir(), dirent::d_name, PointCache::endframe, ListBase::first, PointCache::flag, PTCacheMem::frame, PointCache::last_exact, len, ID::lib, MAX_PTCACHE_FILE, MAX_PTCACHE_PATH, MEM_allocN_len, PointCache::mem_cache, MIN2, PTCacheMem::next, NULL, opendir(), PTCacheID::owner_id, PTCACHE_BAKED, PTCACHE_CLEAR_AFTER, PTCACHE_CLEAR_ALL, PTCACHE_CLEAR_BEFORE, PTCACHE_CLEAR_FRAME, PTCACHE_DISK_CACHE, ptcache_filename(), ptcache_filename_ext_append(), PTCACHE_FLAG_INFO_DIRTY, ptcache_frame_from_filename(), PTCACHE_IGNORE_CLEAR, ptcache_mem_clear(), ptcache_path(), readdir(), PointCache::startframe, and STREQLEN.
Referenced by BKE_ptcache_bake(), BKE_ptcache_disk_to_mem(), BKE_ptcache_id_reset(), BKE_ptcache_mem_to_disk(), BKE_ptcache_read(), BKE_ptcache_toggle_disk_cache(), cloth_clear_cache(), free_hair(), psys_changed_type(), psys_prepare_physics(), ptcache_mem_frame_to_disk(), ptcache_write_needed(), ptcache_write_stream(), and system_step().
Definition at line 2742 of file pointcache.c.
References BLI_exists(), PTCacheID::cache, PointCache::cached_frames, PointCache::endframe, ListBase::first, PointCache::flag, PTCacheMem::frame, MAX_PTCACHE_FILE, PointCache::mem_cache, PTCacheMem::next, PTCACHE_DISK_CACHE, ptcache_filename(), and PointCache::startframe.
Referenced by BKE_ptcache_id_clear(), BKE_ptcache_read(), BKE_ptcache_update_info(), ptcache_find_frames_around(), ptcache_write(), and ptcache_write_needed().
PTCacheID BKE_ptcache_id_find | ( | struct Object * | ob, |
struct Scene * | scene, | ||
struct PointCache * | cache | ||
) |
ob | Optional, may be NULL. |
scene | Optional may be NULL. |
Definition at line 1092 of file pointcache.c.
References BKE_ptcache_ids_from_object(), BLI_freelistN(), LISTBASE_FOREACH, MAX_DUPLI_RECUR, result, and scene.
Referenced by ptcache_add_new_exec(), ptcache_baker_create(), and ptcache_remove_exec().
void BKE_ptcache_id_from_cloth | ( | PTCacheID * | pid, |
struct Object * | ob, | ||
struct ClothModifierData * | clmd | ||
) |
Definition at line 962 of file pointcache.c.
References BPHYS_DATA_LOCATION, BPHYS_DATA_VELOCITY, BPHYS_DATA_XCONST, PTCacheID::cache, PTCacheID::cache_ptr, PTCacheID::calldata, PTCacheID::data_types, PTCacheID::default_step, PTCacheID::error, PTCacheID::file_type, Object::id, PointCache::index, PTCacheID::info_types, PTCacheID::interpolate_extra_data, PTCacheID::interpolate_point, PTCacheID::max_step, NULL, PTCacheID::owner_id, ClothModifierData::point_cache, ptcache_basic_header_read(), ptcache_basic_header_write(), ptcache_cloth_error(), ptcache_cloth_extra_read(), ptcache_cloth_extra_write(), ptcache_cloth_interpolate(), ptcache_cloth_read(), ptcache_cloth_totpoint(), ptcache_cloth_write(), PTCACHE_FILE_PTCACHE, PTCACHE_TYPE_CLOTH, PTCacheID::ptcaches, ClothModifierData::ptcaches, PTCacheID::read_extra_data, PTCacheID::read_header, PTCacheID::read_point, PTCacheID::read_stream, PTCacheID::stack_index, PTCacheID::totpoint, PTCacheID::totwrite, PTCacheID::type, PTCacheID::write_extra_data, PTCacheID::write_header, PTCacheID::write_point, and PTCacheID::write_stream.
Referenced by BKE_ptcache_object_reset(), cloth_clear_cache(), clothModifier_do(), and foreach_object_modifier_ptcache().
void BKE_ptcache_id_from_dynamicpaint | ( | PTCacheID * | pid, |
struct Object * | ob, | ||
struct DynamicPaintSurface * | surface | ||
) |
Definition at line 1016 of file pointcache.c.
References BPHYS_DATA_DYNAMICPAINT, PTCacheID::cache, PTCacheID::cache_ptr, PTCacheID::calldata, PTCacheID::data_types, PTCacheID::default_step, PTCacheID::error, PTCacheID::file_type, Object::id, PointCache::index, PTCacheID::info_types, PTCacheID::interpolate_extra_data, PTCacheID::interpolate_point, PTCacheID::max_step, NULL, PTCacheID::owner_id, ptcache_basic_header_read(), ptcache_basic_header_write(), ptcache_dynamicpaint_error(), ptcache_dynamicpaint_read(), ptcache_dynamicpaint_totpoint(), ptcache_dynamicpaint_write(), PTCACHE_FILE_PTCACHE, PTCACHE_TYPE_DYNAMICPAINT, PTCacheID::ptcaches, PTCacheID::read_extra_data, PTCacheID::read_header, PTCacheID::read_point, PTCacheID::read_stream, PTCacheID::stack_index, surface, PTCacheID::totpoint, PTCacheID::totwrite, PTCacheID::type, PTCacheID::write_extra_data, PTCacheID::write_header, PTCacheID::write_point, and PTCacheID::write_stream.
Referenced by BKE_ptcache_object_reset(), dynamicPaint_frameUpdate(), and foreach_object_modifier_ptcache().
void BKE_ptcache_id_from_particles | ( | PTCacheID * | pid, |
struct Object * | ob, | ||
struct ParticleSystem * | psys | ||
) |
Definition at line 900 of file pointcache.c.
References ParticleSettings::avefac, ParticleSettings::avemode, BPHYS_DATA_AVELOCITY, BPHYS_DATA_BOIDS, BPHYS_DATA_INDEX, BPHYS_DATA_LOCATION, BPHYS_DATA_ROTATION, BPHYS_DATA_TIMES, BPHYS_DATA_VELOCITY, PTCacheID::cache, PTCacheID::cache_ptr, PTCacheID::calldata, PTCacheID::data_types, PTCacheID::default_step, PTCacheID::error, PTCacheID::file_type, PTCacheID::flag, SPHFluidSettings::flag, ParticleSettings::flag, ParticleSettings::fluid, Object::id, PointCache::index, PTCacheID::info_types, PTCacheID::interpolate_extra_data, PTCacheID::interpolate_point, PTCacheID::max_step, NULL, PTCacheID::owner_id, ParticleSystem::part, PART_AVE_RAND, PART_HAIR, PART_PHYS_BOIDS, PART_PHYS_FLUID, PART_ROT_VEL, PART_ROTATIONS, ParticleSettings::phystype, ParticleSystem::pointcache, ptcache_basic_header_read(), ptcache_basic_header_write(), PTCACHE_FILE_PTCACHE, ptcache_particle_error(), ptcache_particle_extra_read(), ptcache_particle_extra_write(), ptcache_particle_interpolate(), ptcache_particle_read(), ptcache_particle_totpoint(), ptcache_particle_totwrite(), ptcache_particle_write(), PTCACHE_TYPE_PARTICLES, PTCACHE_VEL_PER_SEC, PTCacheID::ptcaches, ParticleSystem::ptcaches, PTCacheID::read_extra_data, PTCacheID::read_header, PTCacheID::read_point, PTCacheID::read_stream, ParticleSettings::rotmode, SPH_VISCOELASTIC_SPRINGS, PTCacheID::stack_index, PTCacheID::totpoint, PTCacheID::totwrite, PTCacheID::type, ParticleSettings::type, PTCacheID::write_extra_data, PTCacheID::write_header, PTCacheID::write_point, and PTCacheID::write_stream.
Referenced by BKE_ptcache_bake(), BKE_ptcache_object_reset(), foreach_object_particle_ptcache(), free_hair(), psys_changed_type(), psys_make_temp_pointcache(), psys_prepare_physics(), and system_step().
void BKE_ptcache_id_from_rigidbody | ( | PTCacheID * | pid, |
struct Object * | ob, | ||
struct RigidBodyWorld * | rbw | ||
) |
Definition at line 1054 of file pointcache.c.
References BPHYS_DATA_LOCATION, BPHYS_DATA_ROTATION, PTCacheID::cache, PTCacheID::cache_ptr, PTCacheID::calldata, PTCacheID::data_types, PTCacheID::default_step, PTCacheID::error, PTCacheID::file_type, Object::id, PointCache::index, PTCacheID::info_types, PTCacheID::interpolate_extra_data, PTCacheID::interpolate_point, PTCacheID::max_step, NULL, PTCacheID::owner_id, RigidBodyWorld_Shared::pointcache, ptcache_basic_header_read(), ptcache_basic_header_write(), PTCACHE_FILE_PTCACHE, ptcache_rigidbody_error(), ptcache_rigidbody_interpolate(), ptcache_rigidbody_read(), ptcache_rigidbody_totpoint(), ptcache_rigidbody_write(), PTCACHE_TYPE_RIGIDBODY, PTCacheID::ptcaches, RigidBodyWorld_Shared::ptcaches, PTCacheID::read_extra_data, PTCacheID::read_header, PTCacheID::read_point, PTCacheID::read_stream, RigidBodyWorld::shared, PTCacheID::stack_index, PTCacheID::totpoint, PTCacheID::totwrite, PTCacheID::type, PTCacheID::write_extra_data, PTCacheID::write_header, PTCacheID::write_point, and PTCacheID::write_stream.
Referenced by BKE_ptcache_object_reset(), foreach_object_ptcache(), and scene_lib_override_apply_post().
void BKE_ptcache_id_from_smoke | ( | PTCacheID * | pid, |
struct Object * | ob, | ||
struct FluidModifierData * | fmd | ||
) |
The fluid modifier does not actually use this anymore, but some parts of Blender expect that it still has a point cache currently. For example, the fluid modifier uses DEG_add_collision_relations, which internally creates relations with the point cache.
Definition at line 999 of file pointcache.c.
References PTCacheID::cache, PTCacheID::cache_ptr, PTCacheID::calldata, FluidModifierData::domain, Object::id, PointCache::index, PTCacheID::owner_id, FluidDomainSettings::point_cache, PTCACHE_TYPE_SMOKE_DOMAIN, PTCacheID::ptcaches, FluidDomainSettings::ptcaches, PTCacheID::stack_index, and PTCacheID::type.
Referenced by BKE_ptcache_object_reset(), and foreach_object_modifier_ptcache().
Definition at line 864 of file pointcache.c.
References BPHYS_DATA_LOCATION, BPHYS_DATA_VELOCITY, PTCacheID::cache, PTCacheID::cache_ptr, PTCacheID::calldata, PTCacheID::data_types, PTCacheID::default_step, PTCacheID::error, PTCacheID::file_type, Object::id, PointCache::index, PTCacheID::info_types, PTCacheID::interpolate_extra_data, PTCacheID::interpolate_point, PTCacheID::max_step, NULL, PTCacheID::owner_id, SoftBody_Shared::pointcache, ptcache_basic_header_read(), ptcache_basic_header_write(), PTCACHE_FILE_PTCACHE, ptcache_softbody_error(), ptcache_softbody_interpolate(), ptcache_softbody_read(), ptcache_softbody_totpoint(), ptcache_softbody_write(), PTCACHE_TYPE_SOFTBODY, PTCacheID::ptcaches, SoftBody_Shared::ptcaches, PTCacheID::read_extra_data, PTCacheID::read_header, PTCacheID::read_point, PTCacheID::read_stream, SoftBody::shared, PTCacheID::stack_index, PTCacheID::totpoint, PTCacheID::totwrite, PTCacheID::type, PTCacheID::write_extra_data, PTCacheID::write_header, PTCacheID::write_point, and PTCacheID::write_stream.
Referenced by BKE_ptcache_object_reset(), foreach_object_ptcache(), and sbObjectStep().
Definition at line 2870 of file pointcache.c.
References BKE_ptcache_id_clear(), BKE_ptcache_invalidate(), PTCacheID::cache, PTCacheID::calldata, RenderData::cfra, clear(), cloth_free_modifier(), dynamicPaint_clearSurface(), PointCache::flag, psys_reset(), PSYS_RESET_DEPSGRAPH, PTCACHE_BAKED, PTCACHE_CLEAR_AFTER, PTCACHE_CLEAR_ALL, PTCACHE_OUTDATED, PTCACHE_REDO_NEEDED, PTCACHE_RESET_BAKED, PTCACHE_RESET_DEPSGRAPH, PTCACHE_RESET_OUTDATED, PTCACHE_TYPE_CLOTH, PTCACHE_TYPE_DYNAMICPAINT, PTCACHE_TYPE_PARTICLES, PTCACHE_TYPE_SOFTBODY, Scene::r, reset, sbFreeSimulation(), scene, and PTCacheID::type.
Referenced by BKE_ptcache_object_reset(), clothModifier_do(), dynamicPaint_frameUpdate(), sbObjectStep(), and system_step().
void BKE_ptcache_id_time | ( | PTCacheID * | pid, |
struct Scene * | scene, | ||
float | cfra, | ||
int * | startframe, | ||
int * | endframe, | ||
float * | timescale | ||
) |
Definition at line 2773 of file pointcache.c.
References BKE_scene_ctime_get(), BKE_scene_frame_to_ctime(), PTCacheID::cache, PointCache::cached_frames, PointCache::cached_frames_len, RenderData::cfra, closedir(), dirent::d_name, PointCache::endframe, ListBase::first, PointCache::flag, PTCacheMem::frame, len, MAX2, MAX_PTCACHE_FILE, MAX_PTCACHE_PATH, PointCache::mem_cache, MEM_callocN, MEM_freeN, PTCacheMem::next, NULL, opendir(), PTCACHE_DISK_CACHE, ptcache_filename(), ptcache_filename_ext_append(), ptcache_frame_from_filename(), ptcache_path(), Scene::r, readdir(), scene, PointCache::startframe, STREQLEN, and time.
Referenced by BKE_ptcache_toggle_disk_cache(), clothModifier_do(), dynamicPaint_frameUpdate(), sbObjectStep(), and system_step().
void BKE_ptcache_ids_from_object | ( | struct ListBase * | lb, |
struct Object * | ob, | ||
struct Scene * | scene, | ||
int | duplis | ||
) |
Definition at line 1250 of file pointcache.c.
References data, ListBase::first, foreach_object_ptcache(), ListBase::last, NULL, ptcache_ids_from_object_cb(), and scene.
Referenced by BKE_ptcache_bake(), BKE_ptcache_id_find(), blo_do_versions_250(), blender::deg::DepsgraphRelationBuilder::build_object_pointcache(), ED_object_editmode_exit_ex(), object_cacheIgnoreClear(), object_lib_override_apply_post(), pe_get_current(), ptcache_free_bake_all_exec(), special_aftertrans_update__object(), and timeline_draw_cache().
void BKE_ptcache_invalidate | ( | struct PointCache * | cache | ) |
Set correct flags after unsuccessful simulation step.
Definition at line 3796 of file pointcache.c.
References PointCache::flag, PointCache::last_exact, MIN2, PTCACHE_SIMULATION_VALID, PointCache::simframe, and PointCache::startframe.
Referenced by BKE_ptcache_id_reset(), clothModifier_do(), do_init_cloth(), psys_reset(), sbObjectStep(), and system_step().
Loads simulation from external (disk) cache files.
Definition at line 3574 of file pointcache.c.
References BLI_snprintf(), BLI_strncpy(), PTCacheID::cache, PointCache::cached_frames, PointCache::cached_frames_len, closedir(), dirent::d_name, PointCache::endframe, PointCache::flag, PointCache::index, len, MAX2, MAX_PTCACHE_FILE, MAX_PTCACHE_PATH, MAXFRAME, MEM_freeN, MIN2, NULL, opendir(), pf, PTCACHE_BAKED, PTCACHE_DISK_CACHE, ptcache_file_close(), ptcache_file_extension(), ptcache_file_header_begin_read(), ptcache_file_open(), PTCACHE_FILE_READ, ptcache_file_read(), ptcache_filename(), PTCACHE_FLAG_INFO_DIRTY, ptcache_frame_from_filename(), PTCACHE_FRAMES_SKIPPED, ptcache_old_elemsize(), PTCACHE_OUTDATED, ptcache_path(), PTCACHE_READ_INFO, PTCACHE_SIMULATION_VALID, PTCACHE_TYPE_SMOKE_DOMAIN, PTCacheID::read_header, readdir(), PointCache::startframe, STREQLEN, PointCache::totpoint, and PTCacheID::type.
void BKE_ptcache_make_particle_key | ( | struct ParticleKey * | key, |
int | index, | ||
void ** | data, | ||
float | time | ||
) |
Definition at line 257 of file pointcache.c.
References ParticleKey::ave, BPHYS_DATA_AVELOCITY, BPHYS_DATA_LOCATION, BPHYS_DATA_ROTATION, BPHYS_DATA_VELOCITY, ParticleKey::co, data, NULL, OB_NEGX, OB_POSZ, PTCACHE_DATA_TO, ParticleKey::rot, time, ParticleKey::time, vec_to_quat(), and ParticleKey::vel.
Referenced by get_pointcache_keys_for_time(), ptcache_cloth_interpolate(), ptcache_particle_interpolate(), ptcache_particle_read(), and ptcache_softbody_interpolate().
int BKE_ptcache_mem_index_find | ( | struct PTCacheMem * | pm, |
unsigned int | index | ||
) |
Is point with index in memory cache? Check to see if point number "index" is in pm
(uses binary search for index data).
Definition at line 1727 of file pointcache.c.
References BPHYS_DATA_INDEX, data, PTCacheMem::data, high(), low(), and PTCacheMem::totpoint.
Referenced by BKE_ptcache_mem_pointers_seek(), get_pointcache_keys_for_time(), get_pointcache_times_for_particle(), and psys_get_dietime_from_cache().
Definition at line 1772 of file pointcache.c.
References BPHYS_TOT_DATA, and ptcache_data_size.
Referenced by PE_create_particle_edit(), ptcache_disk_frame_to_mem(), ptcache_interpolate(), ptcache_mem_frame_to_disk(), ptcache_read(), ptcache_write(), and undoptcache_to_editcache().
void BKE_ptcache_mem_pointers_init | ( | struct PTCacheMem * | pm, |
void * | cur[BPHYS_TOT_DATA] | ||
) |
Definition at line 1762 of file pointcache.c.
References BPHYS_TOT_DATA, PTCacheMem::data, PTCacheMem::data_types, and NULL.
Referenced by ptcache_disk_frame_to_mem(), ptcache_interpolate(), ptcache_mem_frame_to_disk(), ptcache_read(), ptcache_write(), and undoptcache_to_editcache().
int BKE_ptcache_mem_pointers_seek | ( | int | point_index, |
struct PTCacheMem * | pm, | ||
void * | cur[BPHYS_TOT_DATA] | ||
) |
Definition at line 1782 of file pointcache.c.
References BKE_ptcache_mem_index_find(), BPHYS_TOT_DATA, PTCacheMem::data, PTCacheMem::data_types, NULL, point_index, and ptcache_data_size.
Referenced by PE_create_particle_edit(), and ptcache_write().
Convert memory cache to disk cache.
Definition at line 3445 of file pointcache.c.
References BKE_ptcache_id_clear(), BKE_ptcache_write(), PTCacheID::cache, ListBase::first, PointCache::flag, PointCache::mem_cache, PTCacheMem::next, PTCACHE_BAKED, PTCACHE_CLEAR_ALL, PTCACHE_DISK_CACHE, and ptcache_mem_frame_to_disk().
Referenced by BKE_ptcache_toggle_disk_cache().
Check whether object has a point cache.
Definition at line 1263 of file pointcache.c.
References foreach_object_ptcache(), NULL, ptcache_object_has_cb(), and scene.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_pointcache(), and blender::deg::DepsgraphRelationBuilder::build_particle_systems().
Definition at line 2930 of file pointcache.c.
References BIK_clear_cache(), BKE_ptcache_id_from_cloth(), BKE_ptcache_id_from_dynamicpaint(), BKE_ptcache_id_from_particles(), BKE_ptcache_id_from_rigidbody(), BKE_ptcache_id_from_smoke(), BKE_ptcache_id_from_softbody(), BKE_ptcache_id_reset(), PTCacheID::cache, FluidDomainSettings::cache_type, DynamicPaintModifierData::canvas, ParticleSystem::clmd, FluidModifierData::domain, eModifierType_Cloth, eModifierType_DynamicPaint, eModifierType_Fluid, ListBase::first, PointCache::flag, RigidBodyOb::flag, FLUID_DOMAIN_CACHE_REPLAY, ID_RECALC_PSYS_CHILD, ID_RECALC_PSYS_REDO, MOD_FLUID_TYPE_DOMAIN, Object::modifiers, ModifierData::next, ParticleSystem::next, OB_ARMATURE, ParticleSystem::part, PART_HAIR, Object::particlesystem, Object::pose, PSYS_RESET_ALL, PTCACHE_BAKED, PTCACHE_OUTDATED, RBO_FLAG_NEEDS_RESHAPE, ParticleSystem::recalc, reset, Object::rigidbody_constraint, Object::rigidbody_object, Scene::rigidbody_world, scene, Object::soft, surface, DynamicPaintCanvasSettings::surfaces, ModifierData::type, FluidModifierData::type, Object::type, and ParticleSettings::type.
Referenced by BKE_object_eval_ptcache_reset(), ED_object_editmode_exit_ex(), SCULPT_dynamic_topology_disable_ex(), and special_aftertrans_update__object().
void BKE_ptcache_quick_cache_all | ( | struct Main * | bmain, |
struct Scene * | scene, | ||
struct ViewLayer * | view_layer | ||
) |
Bakes cache with cache_step sized jumps in time, not accurate but very fast.
Definition at line 3124 of file pointcache.c.
References PTCacheBaker::anim_init, PTCacheBaker::bake, BKE_ptcache_bake(), PTCacheBaker::bmain, Scene::physics_settings, PhysicsSettings::quick_cache_step, PTCacheBaker::quick_step, PTCacheBaker::render, PTCacheBaker::scene, scene, and PTCacheBaker::view_layer.
Main cache reading call. Possible to get old or interpolated result.
Definition at line 2280 of file pointcache.c.
References BKE_ptcache_id_clear(), BKE_ptcache_id_exist(), PTCacheID::cache, PTCacheID::calldata, PointCache::flag, blender::math::floor(), PTCacheID::interpolate_point, PointCache::last_exact, MAX2, PTCACHE_CLEAR_AFTER, ptcache_find_frames_around(), PTCACHE_FRAMES_SKIPPED, ptcache_interpolate(), PTCACHE_OUTDATED, ptcache_read(), PTCACHE_READ_EXACT, PTCACHE_READ_INFO, PTCACHE_READ_INTERPOLATED, PTCACHE_READ_OLD, ptcache_read_stream(), PTCacheID::read_point, PTCacheID::read_stream, ret, PointCache::simframe, and PTCacheID::totpoint.
Referenced by clothModifier_do(), dynamicPaint_frameUpdate(), sbObjectStep(), and system_step().
Convert disk cache to memory cache and vice versa. Clears the cache that was converted.
Definition at line 3472 of file pointcache.c.
References BKE_main_blendfile_path_from_global(), BKE_object_delete_ptcache(), BKE_ptcache_disk_to_mem(), BKE_ptcache_id_clear(), BKE_ptcache_id_time(), BKE_ptcache_mem_to_disk(), PTCacheID::cache, PointCache::cached_frames, PointCache::cached_frames_len, PointCache::flag, G, G_DEBUG, PointCache::index, PointCache::last_exact, MEM_freeN, NULL, PTCacheID::owner_id, PTCACHE_CLEAR_ALL, PTCACHE_DISK_CACHE, and PTCACHE_FLAG_INFO_DIRTY.
Definition at line 3687 of file pointcache.c.
References BKE_ptcache_id_exist(), BLI_snprintf(), BLI_str_format_byte_unit(), BLI_str_format_int_grouped(), BLI_strncpy(), BPHYS_TOT_DATA, PTCacheID::cache, PTCacheID::calldata, PTCacheExtra::data, PTCacheMem::data, PointCache::endframe, PTCacheMem::extradata, ListBase::first, PointCache::flag, PointCache::info, PointCache::last_exact, MEM_allocN_len, PointCache::mem_cache, PTCacheExtra::next, PTCacheMem::next, NULL, PTCACHE_DISK_CACHE, PTCACHE_EXTERNAL, PTCACHE_FLAG_INFO_DIRTY, PTCACHE_FRAMES_SKIPPED, PTCACHE_OUTDATED, PTCACHE_TYPE_SMOKE_DOMAIN, PointCache::startframe, TIP_, PTCacheID::totpoint, PointCache::totpoint, and PTCacheID::type.
void BKE_ptcache_validate | ( | struct PointCache * | cache, |
int | framenr | ||
) |
Set correct flags after successful simulation step.
Definition at line 3789 of file pointcache.c.
References PointCache::flag, PTCACHE_SIMULATION_VALID, and PointCache::simframe.
Referenced by clothModifier_do(), dynamicPaint_frameUpdate(), sbObjectStep(), and system_step().
int BKE_ptcache_write | ( | PTCacheID * | pid, |
unsigned int | cfra | ||
) |
Main cache writing call. Writes cache to disk or memory.
Definition at line 2540 of file pointcache.c.
References PTCacheID::cache, PointCache::cached_frames, PTCacheID::calldata, PTCacheID::data_types, error(), PointCache::flag, PTCacheID::info_types, PointCache::last_exact, PTCACHE_FLAG_INFO_DIRTY, PTCACHE_FRAMES_SKIPPED, ptcache_write(), ptcache_write_needed(), ptcache_write_stream(), PointCache::startframe, PTCacheID::totpoint, PTCacheID::write_point, and PTCacheID::write_stream.
Referenced by BKE_ptcache_bake(), BKE_ptcache_mem_to_disk(), clothModifier_do(), dynamicPaint_frameUpdate(), sbObjectStep(), and system_step().