Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
BKE_pointcache.h File Reference
#include "DNA_boid_types.h"
#include "DNA_pointcache_types.h"
#include <stdio.h>

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
 

Macros

#define PTCACHE_CLEAR_ALL   0
 
#define PTCACHE_CLEAR_FRAME   1
 
#define PTCACHE_CLEAR_BEFORE   2
 
#define PTCACHE_CLEAR_AFTER   3
 
#define PTCACHE_RESET_DEPSGRAPH   0
 
#define PTCACHE_RESET_BAKED   1
 
#define PTCACHE_RESET_OUTDATED   2
 
#define PTCACHE_EXT   ".bphys"
 
#define PTCACHE_PATH   "blendcache_"
 
#define PTCACHE_FILE_READ   0
 
#define PTCACHE_FILE_WRITE   1
 
#define PTCACHE_FILE_UPDATE   2
 
#define PTCACHE_TYPE_SOFTBODY   0
 
#define PTCACHE_TYPE_PARTICLES   1
 
#define PTCACHE_TYPE_CLOTH   2
 
#define PTCACHE_TYPE_SMOKE_DOMAIN   3
 
#define PTCACHE_TYPE_SMOKE_HIGHRES   4
 
#define PTCACHE_TYPE_DYNAMICPAINT   5
 
#define PTCACHE_TYPE_RIGIDBODY   6
 
#define PTCACHE_TYPE_SIM_PARTICLES   7
 
#define PTCACHE_TYPEFLAG_COMPRESS   (1 << 16)
 
#define PTCACHE_TYPEFLAG_EXTRADATA   (1 << 17)
 
#define PTCACHE_TYPEFLAG_TYPEMASK   0x0000FFFF
 
#define PTCACHE_TYPEFLAG_FLAGMASK   0xFFFF0000
 
#define PTCACHE_READ_EXACT   1
 
#define PTCACHE_READ_INTERPOLATED   2
 
#define PTCACHE_READ_OLD   3
 
#define PTCACHE_VEL_PER_SEC   1
 
#define PEK_SELECT   1
 
#define PEK_TAG   2
 
#define PEK_HIDE   4
 
#define PEK_USE_WCO   8
 
#define PEP_TAG   1
 
#define PEP_EDIT_RECALC   2
 
#define PEP_TRANSFORM   4
 
#define PEP_HIDE   8
 

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) }
 

Functions

void BKE_ptcache_make_particle_key (struct ParticleKey *key, int index, void **data, float time)
 
void BKE_ptcache_id_from_softbody (PTCacheID *pid, struct Object *ob, struct SoftBody *sb)
 
void BKE_ptcache_id_from_particles (PTCacheID *pid, struct Object *ob, struct ParticleSystem *psys)
 
void BKE_ptcache_id_from_cloth (PTCacheID *pid, struct Object *ob, struct ClothModifierData *clmd)
 
void BKE_ptcache_id_from_smoke (PTCacheID *pid, struct Object *ob, struct FluidModifierData *fmd)
 
void BKE_ptcache_id_from_dynamicpaint (PTCacheID *pid, struct Object *ob, struct DynamicPaintSurface *surface)
 
void BKE_ptcache_id_from_rigidbody (PTCacheID *pid, struct Object *ob, struct RigidBodyWorld *rbw)
 
PTCacheID BKE_ptcache_id_find (struct Object *ob, struct Scene *scene, struct PointCache *cache)
 
void BKE_ptcache_ids_from_object (struct ListBase *lb, struct Object *ob, struct Scene *scene, int duplis)
 
bool BKE_ptcache_object_has (struct Scene *scene, struct Object *ob, int duplis)
 
void BKE_ptcache_id_clear (PTCacheID *id, int mode, unsigned int cfra)
 
bool BKE_ptcache_id_exist (PTCacheID *id, int cfra)
 
int BKE_ptcache_id_reset (struct Scene *scene, PTCacheID *id, int mode)
 
void BKE_ptcache_id_time (PTCacheID *pid, struct Scene *scene, float cfra, int *startframe, int *endframe, float *timescale)
 
int BKE_ptcache_object_reset (struct Scene *scene, struct Object *ob, int mode)
 
void BKE_ptcache_update_info (PTCacheID *pid)
 
int BKE_ptcache_data_size (int data_type)
 
int BKE_ptcache_mem_index_find (struct PTCacheMem *pm, unsigned int index)
 
void BKE_ptcache_mem_pointers_init (struct PTCacheMem *pm, void *cur[BPHYS_TOT_DATA])
 
void BKE_ptcache_mem_pointers_incr (void *cur[BPHYS_TOT_DATA])
 
int BKE_ptcache_mem_pointers_seek (int point_index, struct PTCacheMem *pm, void *cur[BPHYS_TOT_DATA])
 
int BKE_ptcache_read (PTCacheID *pid, float cfra, bool no_extrapolate_old)
 
int BKE_ptcache_write (PTCacheID *pid, unsigned int cfra)
 
struct PointCacheBKE_ptcache_add (struct ListBase *ptcaches)
 
void BKE_ptcache_free_mem (struct ListBase *mem_cache)
 
void BKE_ptcache_free (struct PointCache *cache)
 
void BKE_ptcache_free_list (struct ListBase *ptcaches)
 
struct PointCacheBKE_ptcache_copy_list (struct ListBase *ptcaches_new, const struct ListBase *ptcaches_old, int flag)
 
void BKE_ptcache_quick_cache_all (struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer)
 
void BKE_ptcache_bake (struct PTCacheBaker *baker)
 
void BKE_ptcache_disk_to_mem (struct PTCacheID *pid)
 
void BKE_ptcache_mem_to_disk (struct PTCacheID *pid)
 
void BKE_ptcache_toggle_disk_cache (struct PTCacheID *pid)
 
void BKE_ptcache_disk_cache_rename (struct PTCacheID *pid, const char *name_src, const char *name_dst)
 
void BKE_ptcache_load_external (struct PTCacheID *pid)
 
void BKE_ptcache_validate (struct PointCache *cache, int framenr)
 
void BKE_ptcache_invalidate (struct PointCache *cache)
 
void BKE_ptcache_blend_write (struct BlendWriter *writer, struct ListBase *ptcaches)
 
void BKE_ptcache_blend_read_data (struct BlendDataReader *reader, struct ListBase *ptcaches, struct PointCache **ocache, int force_disk)
 

Macro Definition Documentation

◆ PEK_HIDE

#define PEK_HIDE   4

Definition at line 186 of file BKE_pointcache.h.

◆ PEK_SELECT

#define PEK_SELECT   1

Definition at line 184 of file BKE_pointcache.h.

◆ PEK_TAG

#define PEK_TAG   2

Definition at line 185 of file BKE_pointcache.h.

◆ PEK_USE_WCO

#define PEK_USE_WCO   8

Definition at line 187 of file BKE_pointcache.h.

◆ PEP_EDIT_RECALC

#define PEP_EDIT_RECALC   2

Definition at line 203 of file BKE_pointcache.h.

◆ PEP_HIDE

#define PEP_HIDE   8

Definition at line 205 of file BKE_pointcache.h.

◆ PEP_TAG

#define PEP_TAG   1

Definition at line 202 of file BKE_pointcache.h.

◆ PEP_TRANSFORM

#define PEP_TRANSFORM   4

Definition at line 204 of file BKE_pointcache.h.

◆ PTCACHE_CLEAR_AFTER

#define PTCACHE_CLEAR_AFTER   3

Definition at line 24 of file BKE_pointcache.h.

◆ PTCACHE_CLEAR_ALL

#define PTCACHE_CLEAR_ALL   0

Definition at line 21 of file BKE_pointcache.h.

◆ PTCACHE_CLEAR_BEFORE

#define PTCACHE_CLEAR_BEFORE   2

Definition at line 23 of file BKE_pointcache.h.

◆ PTCACHE_CLEAR_FRAME

#define PTCACHE_CLEAR_FRAME   1

Definition at line 22 of file BKE_pointcache.h.

◆ PTCACHE_EXT

#define PTCACHE_EXT   ".bphys"

Definition at line 33 of file BKE_pointcache.h.

◆ PTCACHE_FILE_READ

#define PTCACHE_FILE_READ   0

Definition at line 37 of file BKE_pointcache.h.

◆ PTCACHE_FILE_UPDATE

#define PTCACHE_FILE_UPDATE   2

Definition at line 39 of file BKE_pointcache.h.

◆ PTCACHE_FILE_WRITE

#define PTCACHE_FILE_WRITE   1

Definition at line 38 of file BKE_pointcache.h.

◆ PTCACHE_PATH

#define PTCACHE_PATH   "blendcache_"

Definition at line 34 of file BKE_pointcache.h.

◆ PTCACHE_READ_EXACT

#define PTCACHE_READ_EXACT   1

Definition at line 59 of file BKE_pointcache.h.

◆ PTCACHE_READ_INTERPOLATED

#define PTCACHE_READ_INTERPOLATED   2

Definition at line 60 of file BKE_pointcache.h.

◆ PTCACHE_READ_OLD

#define PTCACHE_READ_OLD   3

Definition at line 61 of file BKE_pointcache.h.

◆ PTCACHE_RESET_BAKED

#define PTCACHE_RESET_BAKED   1

Definition at line 28 of file BKE_pointcache.h.

◆ PTCACHE_RESET_DEPSGRAPH

#define PTCACHE_RESET_DEPSGRAPH   0

Definition at line 27 of file BKE_pointcache.h.

◆ PTCACHE_RESET_OUTDATED

#define PTCACHE_RESET_OUTDATED   2

Definition at line 29 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_CLOTH

#define PTCACHE_TYPE_CLOTH   2

Definition at line 44 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_DYNAMICPAINT

#define PTCACHE_TYPE_DYNAMICPAINT   5

Definition at line 47 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_PARTICLES

#define PTCACHE_TYPE_PARTICLES   1

Definition at line 43 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_RIGIDBODY

#define PTCACHE_TYPE_RIGIDBODY   6

Definition at line 48 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_SIM_PARTICLES

#define PTCACHE_TYPE_SIM_PARTICLES   7

Definition at line 49 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_SMOKE_DOMAIN

#define PTCACHE_TYPE_SMOKE_DOMAIN   3

Definition at line 45 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_SMOKE_HIGHRES

#define PTCACHE_TYPE_SMOKE_HIGHRES   4

Definition at line 46 of file BKE_pointcache.h.

◆ PTCACHE_TYPE_SOFTBODY

#define PTCACHE_TYPE_SOFTBODY   0

Definition at line 42 of file BKE_pointcache.h.

◆ PTCACHE_TYPEFLAG_COMPRESS

#define PTCACHE_TYPEFLAG_COMPRESS   (1 << 16)

Definition at line 52 of file BKE_pointcache.h.

◆ PTCACHE_TYPEFLAG_EXTRADATA

#define PTCACHE_TYPEFLAG_EXTRADATA   (1 << 17)

Definition at line 53 of file BKE_pointcache.h.

◆ PTCACHE_TYPEFLAG_FLAGMASK

#define PTCACHE_TYPEFLAG_FLAGMASK   0xFFFF0000

Definition at line 56 of file BKE_pointcache.h.

◆ PTCACHE_TYPEFLAG_TYPEMASK

#define PTCACHE_TYPEFLAG_TYPEMASK   0x0000FFFF

Definition at line 55 of file BKE_pointcache.h.

◆ PTCACHE_VEL_PER_SEC

#define PTCACHE_VEL_PER_SEC   1

Definition at line 103 of file BKE_pointcache.h.

Typedef Documentation

◆ PTCacheBaker

typedef struct PTCacheBaker PTCacheBaker

◆ PTCacheData

typedef struct PTCacheData PTCacheData

◆ PTCacheEdit

typedef struct PTCacheEdit PTCacheEdit

◆ PTCacheEditKey

◆ PTCacheEditPoint

◆ PTCacheFile

typedef struct PTCacheFile PTCacheFile

◆ PTCacheID

typedef struct PTCacheID PTCacheID

◆ PTCacheUndo

typedef struct PTCacheUndo PTCacheUndo

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PTCACHE_FILE_PTCACHE 

Definition at line 105 of file BKE_pointcache.h.

◆ anonymous enum

anonymous enum
Enumerator
PT_CACHE_EDIT_UPDATE_PARTICLE_FROM_EVAL 

Definition at line 230 of file BKE_pointcache.h.

Function Documentation

◆ BKE_ptcache_add()

struct PointCache* BKE_ptcache_add ( struct ListBase ptcaches)

◆ BKE_ptcache_bake()

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().

◆ BKE_ptcache_blend_read_data()

void BKE_ptcache_blend_read_data ( struct BlendDataReader reader,
struct ListBase ptcaches,
struct PointCache **  ocache,
int  force_disk 
)

◆ BKE_ptcache_blend_write()

void BKE_ptcache_blend_write ( struct BlendWriter writer,
struct ListBase ptcaches 
)

◆ BKE_ptcache_copy_list()

struct PointCache* BKE_ptcache_copy_list ( struct ListBase ptcaches_new,
const struct ListBase ptcaches_old,
int  flag 
)

◆ BKE_ptcache_data_size()

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().

◆ BKE_ptcache_disk_cache_rename()

void BKE_ptcache_disk_cache_rename ( struct PTCacheID pid,
const char *  name_src,
const char *  name_dst 
)

◆ BKE_ptcache_disk_to_mem()

void BKE_ptcache_disk_to_mem ( struct PTCacheID pid)

◆ BKE_ptcache_free()

void BKE_ptcache_free ( struct PointCache cache)

◆ BKE_ptcache_free_list()

void BKE_ptcache_free_list ( struct ListBase ptcaches)

◆ BKE_ptcache_free_mem()

void BKE_ptcache_free_mem ( struct ListBase mem_cache)

◆ BKE_ptcache_id_clear()

void BKE_ptcache_id_clear ( PTCacheID id,
int  mode,
unsigned int  cfra 
)

◆ BKE_ptcache_id_exist()

bool BKE_ptcache_id_exist ( PTCacheID id,
int  cfra 
)

◆ BKE_ptcache_id_find()

PTCacheID BKE_ptcache_id_find ( struct Object ob,
struct Scene scene,
struct PointCache cache 
)
Parameters
obOptional, may be NULL.
sceneOptional 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().

◆ BKE_ptcache_id_from_cloth()

void BKE_ptcache_id_from_cloth ( PTCacheID pid,
struct Object ob,
struct ClothModifierData clmd 
)

◆ BKE_ptcache_id_from_dynamicpaint()

void BKE_ptcache_id_from_dynamicpaint ( PTCacheID pid,
struct Object ob,
struct DynamicPaintSurface surface 
)

◆ BKE_ptcache_id_from_particles()

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().

◆ BKE_ptcache_id_from_rigidbody()

void BKE_ptcache_id_from_rigidbody ( PTCacheID pid,
struct Object ob,
struct RigidBodyWorld rbw 
)

◆ BKE_ptcache_id_from_smoke()

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().

◆ BKE_ptcache_id_from_softbody()

void BKE_ptcache_id_from_softbody ( PTCacheID pid,
struct Object ob,
struct SoftBody sb 
)

◆ BKE_ptcache_id_reset()

int BKE_ptcache_id_reset ( struct Scene scene,
PTCacheID id,
int  mode 
)

◆ BKE_ptcache_id_time()

void BKE_ptcache_id_time ( PTCacheID pid,
struct Scene scene,
float  cfra,
int *  startframe,
int *  endframe,
float timescale 
)

◆ BKE_ptcache_ids_from_object()

void BKE_ptcache_ids_from_object ( struct ListBase lb,
struct Object ob,
struct Scene scene,
int  duplis 
)

◆ BKE_ptcache_invalidate()

void BKE_ptcache_invalidate ( struct PointCache cache)

◆ BKE_ptcache_load_external()

void BKE_ptcache_load_external ( struct PTCacheID pid)

◆ BKE_ptcache_make_particle_key()

void BKE_ptcache_make_particle_key ( struct ParticleKey key,
int  index,
void **  data,
float  time 
)

◆ BKE_ptcache_mem_index_find()

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().

◆ BKE_ptcache_mem_pointers_incr()

void BKE_ptcache_mem_pointers_incr ( void cur[BPHYS_TOT_DATA])

◆ BKE_ptcache_mem_pointers_init()

void BKE_ptcache_mem_pointers_init ( struct PTCacheMem pm,
void cur[BPHYS_TOT_DATA] 
)

◆ BKE_ptcache_mem_pointers_seek()

int BKE_ptcache_mem_pointers_seek ( int  point_index,
struct PTCacheMem pm,
void cur[BPHYS_TOT_DATA] 
)

◆ BKE_ptcache_mem_to_disk()

void BKE_ptcache_mem_to_disk ( struct PTCacheID pid)

◆ BKE_ptcache_object_has()

bool BKE_ptcache_object_has ( struct Scene scene,
struct Object ob,
int  duplis 
)

◆ BKE_ptcache_object_reset()

int BKE_ptcache_object_reset ( struct Scene scene,
struct Object ob,
int  mode 
)

◆ BKE_ptcache_quick_cache_all()

void BKE_ptcache_quick_cache_all ( struct Main bmain,
struct Scene scene,
struct ViewLayer view_layer 
)

◆ BKE_ptcache_read()

int BKE_ptcache_read ( PTCacheID pid,
float  cfra,
bool  no_extrapolate_old 
)

◆ BKE_ptcache_toggle_disk_cache()

void BKE_ptcache_toggle_disk_cache ( struct PTCacheID pid)

◆ BKE_ptcache_update_info()

void BKE_ptcache_update_info ( PTCacheID pid)

◆ BKE_ptcache_validate()

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().

◆ BKE_ptcache_write()

int BKE_ptcache_write ( PTCacheID pid,
unsigned int  cfra 
)