diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 618e69b5436..7dfbf3c5cc5 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -267,7 +267,7 @@ BLI_INLINE void psys_frand_vec(ParticleSystem *psys, unsigned int seed, float ve } /* ----------- functions needed outside particlesystem ---------------- */ -/* particle.c */ +/* particle.cc */ /* Few helpers for count-all etc. */ @@ -540,7 +540,7 @@ void BKE_particlesystem_reset_all(struct Object *object); /* ----------- functions needed only inside particlesystem ------------ */ -/* particle.c */ +/* particle.cc */ void psys_disable_all(struct Object *ob); void psys_enable_all(struct Object *ob); diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 101baf1e983..7e11481b9c8 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -244,7 +244,7 @@ set(SRC intern/paint.cc intern/paint_canvas.cc intern/paint_toolslots.c - intern/particle.c + intern/particle.cc intern/particle_child.c intern/particle_distribute.c intern/particle_system.c diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.cc similarity index 90% rename from source/blender/blenkernel/intern/particle.c rename to source/blender/blenkernel/intern/particle.cc index f9abe7de830..0b1d8606807 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.cc @@ -8,9 +8,9 @@ /* Allow using deprecated functionality for .blend file I/O. */ #define DNA_DEPRECATED_ALLOW -#include -#include -#include +#include +#include +#include #include "MEM_guardedalloc.h" @@ -87,24 +87,25 @@ static void particle_settings_init(ID *id) MEMCPY_STRUCT_AFTER(particle_settings, DNA_struct_default_get(ParticleSettings), id); - particle_settings->effector_weights = BKE_effector_add_weights(NULL); + particle_settings->effector_weights = BKE_effector_add_weights(nullptr); particle_settings->pd = BKE_partdeflect_new(PFIELD_NULL); particle_settings->pd2 = BKE_partdeflect_new(PFIELD_NULL); } -static void particle_settings_copy_data(Main *UNUSED(bmain), +static void particle_settings_copy_data(Main * /*bmain*/, ID *id_dst, const ID *id_src, - const int UNUSED(flag)) + const int /*flag*/) { ParticleSettings *particle_settings_dst = (ParticleSettings *)id_dst; const ParticleSettings *partticle_settings_src = (const ParticleSettings *)id_src; particle_settings_dst->pd = BKE_partdeflect_copy(partticle_settings_src->pd); particle_settings_dst->pd2 = BKE_partdeflect_copy(partticle_settings_src->pd2); - particle_settings_dst->effector_weights = MEM_dupallocN( - partticle_settings_src->effector_weights); - particle_settings_dst->fluid = MEM_dupallocN(partticle_settings_src->fluid); + particle_settings_dst->effector_weights = static_cast( + MEM_dupallocN(partticle_settings_src->effector_weights)); + particle_settings_dst->fluid = static_cast( + MEM_dupallocN(partticle_settings_src->fluid)); if (partticle_settings_src->clumpcurve) { particle_settings_dst->clumpcurve = BKE_curvemapping_copy(partticle_settings_src->clumpcurve); @@ -120,7 +121,8 @@ static void particle_settings_copy_data(Main *UNUSED(bmain), for (int a = 0; a < MAX_MTEX; a++) { if (partticle_settings_src->mtex[a]) { - particle_settings_dst->mtex[a] = MEM_dupallocN(partticle_settings_src->mtex[a]); + particle_settings_dst->mtex[a] = static_cast( + MEM_dupallocN(partticle_settings_src->mtex[a])); } } @@ -266,10 +268,10 @@ static void particle_settings_blend_write(BlendWriter *writer, ID *id, const voi } LISTBASE_FOREACH (ParticleDupliWeight *, dw, &part->instance_weights) { - /* update indices, but only if dw->ob is set (can be NULL after loading e.g.) */ - if (dw->ob != NULL) { + /* update indices, but only if dw->ob is set (can be nullptr after loading e.g.) */ + if (dw->ob != nullptr) { dw->index = 0; - if (part->instance_collection) { /* can be NULL if lining fails or set to None */ + if (part->instance_collection) { /* can be nullptr if lining fails or set to None */ FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (part->instance_collection, object) { if (object == dw->ob) { break; @@ -300,10 +302,10 @@ static void particle_settings_blend_write(BlendWriter *writer, ID *id, const voi } } -void BKE_particle_partdeflect_blend_read_data(BlendDataReader *UNUSED(reader), PartDeflect *pd) +void BKE_particle_partdeflect_blend_read_data(BlendDataReader * /*reader*/, PartDeflect *pd) { if (pd) { - pd->rng = NULL; + pd->rng = nullptr; } } @@ -479,33 +481,33 @@ static void particle_settings_blend_read_expand(BlendExpander *expander, ID *id) } IDTypeInfo IDType_ID_PA = { - .id_code = ID_PA, - .id_filter = FILTER_ID_PA, - .main_listbase_index = INDEX_ID_PA, - .struct_size = sizeof(ParticleSettings), - .name = "ParticleSettings", - .name_plural = "particles", - .translation_context = BLT_I18NCONTEXT_ID_PARTICLESETTINGS, - .flags = 0, - .asset_type_info = NULL, + /*id_code*/ ID_PA, + /*id_filter*/ FILTER_ID_PA, + /*main_listbase_index*/ INDEX_ID_PA, + /*struct_size*/ sizeof(ParticleSettings), + /*name*/ "ParticleSettings", + /*name_plural*/ "particles", + /*translation_context*/ BLT_I18NCONTEXT_ID_PARTICLESETTINGS, + /*flags*/ 0, + /*asset_type_info*/ nullptr, - .init_data = particle_settings_init, - .copy_data = particle_settings_copy_data, - .free_data = particle_settings_free_data, - .make_local = NULL, - .foreach_id = particle_settings_foreach_id, - .foreach_cache = NULL, - .foreach_path = NULL, - .owner_pointer_get = NULL, + /*init_data*/ particle_settings_init, + /*copy_data*/ particle_settings_copy_data, + /*free_data*/ particle_settings_free_data, + /*make_local*/ nullptr, + /*foreach_id*/ particle_settings_foreach_id, + /*foreach_cache*/ nullptr, + /*foreach_path*/ nullptr, + /*owner_pointer_get*/ nullptr, - .blend_write = particle_settings_blend_write, - .blend_read_data = particle_settings_blend_read_data, - .blend_read_lib = particle_settings_blend_read_lib, - .blend_read_expand = particle_settings_blend_read_expand, + /*blend_write*/ particle_settings_blend_write, + /*blend_read_data*/ particle_settings_blend_read_data, + /*blend_read_lib*/ particle_settings_blend_read_lib, + /*blend_read_expand*/ particle_settings_blend_read_expand, - .blend_read_undo_preserve = NULL, + /*blend_read_undo_preserve*/ nullptr, - .lib_override_apply_post = NULL, + /*lib_override_apply_post*/ nullptr, }; uint PSYS_FRAND_SEED_OFFSET[PSYS_FRAND_COUNT]; @@ -597,11 +599,11 @@ static ParticleCacheKey **psys_alloc_path_cache_buffers(ListBase *bufs, int tot, tot = MAX2(tot, 1); totkey = 0; - cache = MEM_callocN(tot * sizeof(void *), "PathCacheArray"); + cache = static_cast(MEM_callocN(tot * sizeof(void *), "PathCacheArray")); while (totkey < tot) { totbufkey = MIN2(tot - totkey, PATH_CACHE_BUF_SIZE); - buf = MEM_callocN(sizeof(LinkData), "PathCacheLinkData"); + buf = static_cast(MEM_callocN(sizeof(LinkData), "PathCacheLinkData")); buf->data = MEM_callocN(sizeof(ParticleCacheKey) * totbufkey * totkeys, "ParticleCacheKey"); for (i = 0; i < totbufkey; i++) { @@ -623,7 +625,7 @@ static void psys_free_path_cache_buffers(ParticleCacheKey **cache, ListBase *buf MEM_freeN(cache); } - for (buf = bufs->first; buf; buf = buf->next) { + for (buf = static_cast(bufs->first); buf; buf = buf->next) { MEM_freeN(buf->data); } BLI_freelistN(bufs); @@ -636,28 +638,29 @@ static void psys_free_path_cache_buffers(ParticleCacheKey **cache, ListBase *buf ParticleSystem *psys_get_current(Object *ob) { ParticleSystem *psys; - if (ob == NULL) { - return NULL; + if (ob == nullptr) { + return nullptr; } - for (psys = ob->particlesystem.first; psys; psys = psys->next) { + for (psys = static_cast(ob->particlesystem.first); psys; psys = psys->next) { if (psys->flag & PSYS_CURRENT) { return psys; } } - return NULL; + return nullptr; } short psys_get_current_num(Object *ob) { ParticleSystem *psys; short i; - if (ob == NULL) { + if (ob == nullptr) { return 0; } - for (psys = ob->particlesystem.first, i = 0; psys; psys = psys->next, i++) { + for (psys = static_cast(ob->particlesystem.first), i = 0; psys; + psys = psys->next, i++) { if (psys->flag & PSYS_CURRENT) { return i; } @@ -670,11 +673,12 @@ void psys_set_current_num(Object *ob, int index) ParticleSystem *psys; short i; - if (ob == NULL) { + if (ob == nullptr) { return; } - for (psys = ob->particlesystem.first, i = 0; psys; psys = psys->next, i++) { + for (psys = static_cast(ob->particlesystem.first), i = 0; psys; + psys = psys->next, i++) { if (i == index) { psys->flag |= PSYS_CURRENT; } @@ -690,9 +694,9 @@ void psys_sim_data_init(ParticleSimulationData *sim) ParticleSettings *part = psys->part; /* Prepare lattice deform. */ - psys->lattice_deform_data = NULL; + psys->lattice_deform_data = nullptr; if (psys_in_edit_mode(sim->depsgraph, sim->psys) == 0) { - Object *lattice = NULL; + Object *lattice = nullptr; ModifierData *md = (ModifierData *)psys_get_modifier(sim->ob, sim->psys); bool for_render = DEG_get_mode(sim->depsgraph) == DAG_EVAL_RENDER; int mode = for_render ? eModifierMode_Render : eModifierMode_Realtime; @@ -709,7 +713,7 @@ void psys_sim_data_init(ParticleSimulationData *sim) } } if (lattice) { - psys->lattice_deform_data = BKE_lattice_deform_data_create(lattice, NULL); + psys->lattice_deform_data = BKE_lattice_deform_data_create(lattice, nullptr); } } @@ -731,13 +735,13 @@ void psys_sim_data_free(ParticleSimulationData *sim) if (psys->lattice_deform_data) { BKE_lattice_deform_data_destroy(psys->lattice_deform_data); - psys->lattice_deform_data = NULL; + psys->lattice_deform_data = nullptr; } } void psys_disable_all(Object *ob) { - ParticleSystem *psys = ob->particlesystem.first; + ParticleSystem *psys = static_cast(ob->particlesystem.first); for (; psys; psys = psys->next) { psys->flag |= PSYS_DISABLED; @@ -745,7 +749,7 @@ void psys_disable_all(Object *ob) } void psys_enable_all(Object *ob) { - ParticleSystem *psys = ob->particlesystem.first; + ParticleSystem *psys = static_cast(ob->particlesystem.first); for (; psys; psys = psys->next) { psys->flag &= ~PSYS_DISABLED; @@ -754,7 +758,7 @@ void psys_enable_all(Object *ob) ParticleSystem *psys_orig_get(ParticleSystem *psys) { - if (psys->orig_psys == NULL) { + if (psys->orig_psys == nullptr) { return psys; } return psys->orig_psys; @@ -766,8 +770,8 @@ struct ParticleSystem *psys_eval_get(Depsgraph *depsgraph, Object *object, Parti if (object_eval == object) { return psys; } - ParticleSystem *psys_eval = object_eval->particlesystem.first; - while (psys_eval != NULL) { + ParticleSystem *psys_eval = static_cast(object_eval->particlesystem.first); + while (psys_eval != nullptr) { if (psys_eval->orig_psys == psys) { return psys_eval; } @@ -778,7 +782,7 @@ struct ParticleSystem *psys_eval_get(Depsgraph *depsgraph, Object *object, Parti static PTCacheEdit *psys_orig_edit_get(ParticleSystem *psys) { - if (psys->orig_psys == NULL) { + if (psys->orig_psys == nullptr) { return psys->edit; } return psys->orig_psys->edit; @@ -790,7 +794,7 @@ bool psys_in_edit_mode(Depsgraph *depsgraph, const ParticleSystem *psys) ViewLayer *view_layer = DEG_get_input_view_layer(depsgraph); BKE_view_layer_synced_ensure(scene, view_layer); const Object *object = BKE_view_layer_active_object_get(view_layer); - if (object == NULL) { + if (object == nullptr) { /* TODO(sergey): Needs double-check with multi-object edit. */ return false; } @@ -842,16 +846,16 @@ void psys_find_group_weights(ParticleSettings *part) /* Find object pointers based on index. If the collection is linked from * another library linking may not have the object pointers available on * file load, so we have to retrieve them later. See T49273. */ - ListBase instance_collection_objects = {NULL, NULL}; + ListBase instance_collection_objects = {nullptr, nullptr}; if (part->instance_collection) { instance_collection_objects = BKE_collection_object_cache_get(part->instance_collection); } LISTBASE_FOREACH (ParticleDupliWeight *, dw, &part->instance_weights) { - if (dw->ob == NULL) { - Base *base = BLI_findlink(&instance_collection_objects, dw->index); - if (base != NULL) { + if (dw->ob == nullptr) { + Base *base = static_cast(BLI_findlink(&instance_collection_objects, dw->index)); + if (base != nullptr) { dw->ob = base->object; } } @@ -870,10 +874,10 @@ void psys_check_group_weights(ParticleSettings *part) /* Find object pointers. */ psys_find_group_weights(part); - /* Remove NULL objects, that were removed from the collection. */ - dw = part->instance_weights.first; + /* Remove nullptr objects, that were removed from the collection. */ + dw = static_cast(part->instance_weights.first); while (dw) { - if (dw->ob == NULL || + if (dw->ob == nullptr || !BKE_collection_has_object_recursive(part->instance_collection, dw->ob)) { tdw = dw->next; BLI_freelinkN(&part->instance_weights, dw); @@ -887,13 +891,14 @@ void psys_check_group_weights(ParticleSettings *part) /* Add new objects in the collection. */ int index = 0; FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (part->instance_collection, object) { - dw = part->instance_weights.first; + dw = static_cast(part->instance_weights.first); while (dw && dw->ob != object) { dw = dw->next; } if (!dw) { - dw = MEM_callocN(sizeof(ParticleDupliWeight), "ParticleDupliWeight"); + dw = static_cast( + MEM_callocN(sizeof(ParticleDupliWeight), "ParticleDupliWeight")); dw->ob = object; dw->count = 1; BLI_addtail(&part->instance_weights, dw); @@ -905,7 +910,7 @@ void psys_check_group_weights(ParticleSettings *part) /* Ensure there is an element marked as current. */ int current = 0; - for (dw = part->instance_weights.first; dw; dw = dw->next) { + for (dw = static_cast(part->instance_weights.first); dw; dw = dw->next) { if (dw->flag & PART_DUPLIW_CURRENT) { current = 1; break; @@ -913,7 +918,7 @@ void psys_check_group_weights(ParticleSettings *part) } if (!current) { - dw = part->instance_weights.first; + dw = static_cast(part->instance_weights.first); if (dw) { dw->flag |= PART_DUPLIW_CURRENT; } @@ -952,7 +957,7 @@ void free_hair(Object *object, ParticleSystem *psys, int dynamics) if (psys->clmd) { if (dynamics) { BKE_modifier_free((ModifierData *)psys->clmd); - psys->clmd = NULL; + psys->clmd = nullptr; PTCacheID pid; BKE_ptcache_id_from_particles(&pid, object, psys); BKE_ptcache_id_clear(&pid, PTCACHE_CLEAR_ALL, 0); @@ -963,14 +968,14 @@ void free_hair(Object *object, ParticleSystem *psys, int dynamics) } if (psys->hair_in_mesh) { - BKE_id_free(NULL, psys->hair_in_mesh); + BKE_id_free(nullptr, psys->hair_in_mesh); } - psys->hair_in_mesh = NULL; + psys->hair_in_mesh = nullptr; if (psys->hair_out_mesh) { - BKE_id_free(NULL, psys->hair_out_mesh); + BKE_id_free(nullptr, psys->hair_out_mesh); } - psys->hair_out_mesh = NULL; + psys->hair_out_mesh = nullptr; } void free_keyed_keys(ParticleSystem *psys) { @@ -986,7 +991,7 @@ void free_keyed_keys(ParticleSystem *psys) LOOP_PARTICLES { if (pa->keys) { - pa->keys = NULL; + pa->keys = nullptr; pa->totkey = 0; } } @@ -995,19 +1000,19 @@ void free_keyed_keys(ParticleSystem *psys) static void free_child_path_cache(ParticleSystem *psys) { psys_free_path_cache_buffers(psys->childcache, &psys->childcachebufs); - psys->childcache = NULL; + psys->childcache = nullptr; psys->totchildcache = 0; } void psys_free_path_cache(ParticleSystem *psys, PTCacheEdit *edit) { if (edit) { psys_free_path_cache_buffers(edit->pathcache, &edit->pathcachebufs); - edit->pathcache = NULL; + edit->pathcache = nullptr; edit->totcached = 0; } if (psys) { psys_free_path_cache_buffers(psys->pathcache, &psys->pathcachebufs); - psys->pathcache = NULL; + psys->pathcache = nullptr; psys->totcached = 0; free_child_path_cache(psys); @@ -1017,7 +1022,7 @@ void psys_free_children(ParticleSystem *psys) { if (psys->child) { MEM_freeN(psys->child); - psys->child = NULL; + psys->child = nullptr; psys->totchild = 0; } @@ -1028,7 +1033,7 @@ void psys_free_particles(ParticleSystem *psys) PARTICLE_P; if (psys->particles) { - /* Even though psys->part should never be NULL, + /* Even though psys->part should never be nullptr, * this can happen as an exception during deletion. * See ID_REMAP_SKIP/FORCE/FLAG_NEVER_NULL_USAGE in BKE_library_remap. */ if (psys->part && psys->part->type == PART_HAIR) { @@ -1049,7 +1054,7 @@ void psys_free_particles(ParticleSystem *psys) } MEM_freeN(psys->particles); - psys->particles = NULL; + psys->particles = nullptr; psys->totpart = 0; } } @@ -1075,7 +1080,7 @@ void psys_free(Object *ob, ParticleSystem *psys) int nr = 0; ParticleSystem *tpsys; - psys_free_path_cache(psys, NULL); + psys_free_path_cache(psys, nullptr); /* NOTE: We pass dynamics=0 to free_hair() to prevent it from doing an * unneeded clear of the cache. But for historical reason that code path @@ -1089,7 +1094,7 @@ void psys_free(Object *ob, ParticleSystem *psys) * paths there is beyond me. */ free_hair(ob, psys, 0); - if (psys->clmd != NULL) { + if (psys->clmd != nullptr) { BKE_modifier_free((ModifierData *)psys->clmd); } @@ -1101,12 +1106,13 @@ void psys_free(Object *ob, ParticleSystem *psys) if (psys->child) { MEM_freeN(psys->child); - psys->child = NULL; + psys->child = nullptr; psys->totchild = 0; } /* check if we are last non-visible particle system */ - for (tpsys = ob->particlesystem.first; tpsys; tpsys = tpsys->next) { + for (tpsys = static_cast(ob->particlesystem.first); tpsys; + tpsys = tpsys->next) { if (tpsys->part) { if (ELEM(tpsys->part->ren_as, PART_DRAW_OB, PART_DRAW_GR)) { nr++; @@ -1119,12 +1125,12 @@ void psys_free(Object *ob, ParticleSystem *psys) ob->transflag &= ~OB_DUPLIPARTS; } - psys->part = NULL; + psys->part = nullptr; if ((psys->flag & PSYS_SHARED_CACHES) == 0) { BKE_ptcache_free_list(&psys->ptcaches); } - psys->pointcache = NULL; + psys->pointcache = nullptr; BLI_freelistN(&psys->targets); @@ -1161,8 +1167,8 @@ void psys_copy_particles(ParticleSystem *psys_dst, ParticleSystem *psys_src) psys_dst->totpart = psys_src->totpart; psys_dst->totchild = psys_src->totchild; /* Copy particles and children. */ - psys_dst->particles = MEM_dupallocN(psys_src->particles); - psys_dst->child = MEM_dupallocN(psys_src->child); + psys_dst->particles = static_cast(MEM_dupallocN(psys_src->particles)); + psys_dst->child = static_cast(MEM_dupallocN(psys_src->child)); /* Ideally this should only be performed if `(psys_dst->part->type == PART_HAIR)`. * @@ -1175,19 +1181,19 @@ void psys_copy_particles(ParticleSystem *psys_dst, ParticleSystem *psys_src) * data, which should still be preserved in case the missing particle settings ID becomes valid * again. * - * Furthermore, #free_hair() always frees `pa->hair` if it's not NULL, regardless of the + * Furthermore, #free_hair() always frees `pa->hair` if it's not nullptr, regardless of the * particle type. So *not* copying here would cause a double free (or more), e.g. freeing the * copy-on-write copy and the original data will crash Blender. * In any case, sharing pointers between `psys_src` and `psys_dst` should be forbidden. * - * So while we could in theory 'sanitize' the situation by setting `pa->hair` to NULL in the new - * copy (in case of non-`PART_HAIR` type), it is probably safer for now to systematically + * So while we could in theory 'sanitize' the situation by setting `pa->hair` to nullptr in the + * new copy (in case of non-`PART_HAIR` type), it is probably safer for now to systematically * duplicate the `hair` data if available. */ { ParticleData *pa; int p; for (p = 0, pa = psys_dst->particles; p < psys_dst->totpart; p++, pa++) { - pa->hair = MEM_dupallocN(pa->hair); + pa->hair = static_cast(MEM_dupallocN(pa->hair)); } } if (psys_dst->particles && (psys_dst->particles->keys || psys_dst->particles->boid)) { @@ -1195,17 +1201,17 @@ void psys_copy_particles(ParticleSystem *psys_dst, ParticleSystem *psys_src) BoidParticle *boid = psys_dst->particles->boid; ParticleData *pa; int p; - if (key != NULL) { - key = MEM_dupallocN(key); + if (key != nullptr) { + key = static_cast(MEM_dupallocN(key)); } - if (boid != NULL) { - boid = MEM_dupallocN(boid); + if (boid != nullptr) { + boid = static_cast(MEM_dupallocN(boid)); } for (p = 0, pa = psys_dst->particles; p < psys_dst->totpart; p++, pa++) { - if (boid != NULL) { + if (boid != nullptr) { pa->boid = boid++; } - if (key != NULL) { + if (key != nullptr) { pa->keys = key; key += pa->totkey; } @@ -1288,7 +1294,7 @@ typedef struct ParticleInterpolationData { * It uses #ParticleInterpolationData.pm to store the current memory cache frame * so it's thread safe. */ -static void get_pointcache_keys_for_time(Object *UNUSED(ob), +static void get_pointcache_keys_for_time(Object * /*ob*/, PointCache *cache, PTCacheMem **cur, int index, @@ -1296,11 +1302,11 @@ static void get_pointcache_keys_for_time(Object *UNUSED(ob), ParticleKey *key1, ParticleKey *key2) { - static PTCacheMem *pm = NULL; + static PTCacheMem *pm = nullptr; int index1, index2; if (index < 0) { /* initialize */ - *cur = cache->mem_cache.first; + *cur = static_cast(cache->mem_cache.first); if (*cur) { *cur = (*cur)->next; @@ -1308,7 +1314,7 @@ static void get_pointcache_keys_for_time(Object *UNUSED(ob), } else { if (*cur) { - while (*cur && (*cur)->next && (float)(*cur)->frame < t) { + while (*cur && (*cur)->next && float((*cur)->frame) < t) { *cur = (*cur)->next; } @@ -1320,21 +1326,21 @@ static void get_pointcache_keys_for_time(Object *UNUSED(ob), return; } - BKE_ptcache_make_particle_key(key2, index2, pm->data, (float)pm->frame); + BKE_ptcache_make_particle_key(key2, index2, pm->data, float(pm->frame)); if (index1 < 0) { copy_particle_key(key1, key2, 1); } else { - BKE_ptcache_make_particle_key(key1, index1, pm->prev->data, (float)pm->prev->frame); + BKE_ptcache_make_particle_key(key1, index1, pm->prev->data, float(pm->prev->frame)); } } else if (cache->mem_cache.first) { - pm = cache->mem_cache.first; + pm = static_cast(cache->mem_cache.first); index2 = BKE_ptcache_mem_index_find(pm, index); if (index2 < 0) { return; } - BKE_ptcache_make_particle_key(key2, index2, pm->data, (float)pm->frame); + BKE_ptcache_make_particle_key(key2, index2, pm->data, float(pm->frame)); copy_particle_key(key1, key2, 1); } } @@ -1347,7 +1353,7 @@ static int get_pointcache_times_for_particle(PointCache *cache, PTCacheMem *pm; int ret = 0; - for (pm = cache->mem_cache.first; pm; pm = pm->next) { + for (pm = static_cast(cache->mem_cache.first); pm; pm = pm->next) { if (BKE_ptcache_mem_index_find(pm, index) >= 0) { *r_start = pm->frame; ret++; @@ -1355,7 +1361,7 @@ static int get_pointcache_times_for_particle(PointCache *cache, } } - for (pm = cache->mem_cache.last; pm; pm = pm->prev) { + for (pm = static_cast(cache->mem_cache.last); pm; pm = pm->prev) { if (BKE_ptcache_mem_index_find(pm, index) >= 0) { /* Die *after* the last available frame. */ *r_dietime = pm->frame + 1; @@ -1372,7 +1378,7 @@ float psys_get_dietime_from_cache(PointCache *cache, int index) PTCacheMem *pm; int dietime = 10000000; /* some max value so that we can default to pa->time+lifetime */ - for (pm = cache->mem_cache.last; pm; pm = pm->prev) { + for (pm = static_cast(cache->mem_cache.last); pm; pm = pm->prev) { if (BKE_ptcache_mem_index_find(pm, index) >= 0) { /* Die *after* the last available frame. */ dietime = pm->frame + 1; @@ -1380,7 +1386,7 @@ float psys_get_dietime_from_cache(PointCache *cache, int index) } } - return (float)dietime; + return float(dietime); } static void init_particle_interpolation(Object *ob, @@ -1393,7 +1399,7 @@ static void init_particle_interpolation(Object *ob, PTCacheEditPoint *point = pind->epoint; pind->ekey[0] = point->keys; - pind->ekey[1] = point->totkey > 1 ? point->keys + 1 : NULL; + pind->ekey[1] = point->totkey > 1 ? point->keys + 1 : nullptr; pind->birthtime = *(point->keys->time); pind->dietime = *((point->keys + point->totkey - 1)->time); @@ -1401,14 +1407,14 @@ static void init_particle_interpolation(Object *ob, else if (pind->keyed) { ParticleKey *key = pa->keys; pind->kkey[0] = key; - pind->kkey[1] = pa->totkey > 1 ? key + 1 : NULL; + pind->kkey[1] = pa->totkey > 1 ? key + 1 : nullptr; pind->birthtime = key->time; pind->dietime = (key + pa->totkey - 1)->time; } else if (pind->cache) { float start = 0.0f, dietime = 0.0f; - get_pointcache_keys_for_time(ob, pind->cache, &pind->pm, -1, 0.0f, NULL, NULL); + get_pointcache_keys_for_time(ob, pind->cache, &pind->pm, -1, 0.0f, nullptr, nullptr); pind->birthtime = pa ? pa->time : pind->cache->startframe; pind->dietime = pa ? pa->dietime : (pind->cache->endframe + 1); @@ -1485,7 +1491,7 @@ static void do_particle_interpolation(ParticleSystem *psys, } else if (pind->keyed) { /* we have only one key, so let's use that */ - if (pind->kkey[1] == NULL) { + if (pind->kkey[1] == nullptr) { copy_particle_key(result, pind->kkey[0], 1); return; } @@ -1499,7 +1505,7 @@ static void do_particle_interpolation(ParticleSystem *psys, } if (psys->part->phystype == PART_PHYS_KEYED && psys->flag & PSYS_KEYED_TIMING) { - ParticleTarget *pt = psys->targets.first; + ParticleTarget *pt = static_cast(psys->targets.first); pt = pt->next; @@ -1567,7 +1573,7 @@ static void do_particle_interpolation(ParticleSystem *psys, memcpy(keys + 2, pind->kkey[1], sizeof(ParticleKey)); } else if (pind->cache) { - get_pointcache_keys_for_time(NULL, pind->cache, &pind->pm, p, real_t, keys + 1, keys + 2); + get_pointcache_keys_for_time(nullptr, pind->cache, &pind->pm, p, real_t, keys + 1, keys + 2); } else { hair_to_particle(keys + 1, pind->hkey[0]); @@ -1855,16 +1861,16 @@ void psys_interpolate_mcol(const MCol *mcol, int quad, const float w[4], MCol *m if (quad) { cp4 = (char *)&mcol[3]; - cp[0] = (int)(w[0] * cp1[0] + w[1] * cp2[0] + w[2] * cp3[0] + w[3] * cp4[0]); - cp[1] = (int)(w[0] * cp1[1] + w[1] * cp2[1] + w[2] * cp3[1] + w[3] * cp4[1]); - cp[2] = (int)(w[0] * cp1[2] + w[1] * cp2[2] + w[2] * cp3[2] + w[3] * cp4[2]); - cp[3] = (int)(w[0] * cp1[3] + w[1] * cp2[3] + w[2] * cp3[3] + w[3] * cp4[3]); + cp[0] = int(w[0] * cp1[0] + w[1] * cp2[0] + w[2] * cp3[0] + w[3] * cp4[0]); + cp[1] = int(w[0] * cp1[1] + w[1] * cp2[1] + w[2] * cp3[1] + w[3] * cp4[1]); + cp[2] = int(w[0] * cp1[2] + w[1] * cp2[2] + w[2] * cp3[2] + w[3] * cp4[2]); + cp[3] = int(w[0] * cp1[3] + w[1] * cp2[3] + w[2] * cp3[3] + w[3] * cp4[3]); } else { - cp[0] = (int)(w[0] * cp1[0] + w[1] * cp2[0] + w[2] * cp3[0]); - cp[1] = (int)(w[0] * cp1[1] + w[1] * cp2[1] + w[2] * cp3[1]); - cp[2] = (int)(w[0] * cp1[2] + w[1] * cp2[2] + w[2] * cp3[2]); - cp[3] = (int)(w[0] * cp1[3] + w[1] * cp2[3] + w[2] * cp3[3]); + cp[0] = int(w[0] * cp1[0] + w[1] * cp2[0] + w[2] * cp3[0]); + cp[1] = int(w[0] * cp1[1] + w[1] * cp2[1] + w[2] * cp3[1]); + cp[2] = int(w[0] * cp1[2] + w[1] * cp2[2] + w[2] * cp3[2]); + cp[3] = int(w[0] * cp1[3] + w[1] * cp2[3] + w[2] * cp3[3]); } } @@ -1880,7 +1886,7 @@ static float psys_interpolate_value_from_verts( return values[index]; case PART_FROM_FACE: case PART_FROM_VOLUME: { - MFace *mfaces = CustomData_get_layer(&mesh->fdata, CD_MFACE); + MFace *mfaces = static_cast(CustomData_get_layer(&mesh->fdata, CD_MFACE)); MFace *mf = &mfaces[index]; return interpolate_particle_value( values[mf->v1], values[mf->v2], values[mf->v3], values[mf->v4], fw, mf->v4); @@ -1938,9 +1944,9 @@ int psys_particle_dm_face_lookup(Mesh *mesh_final, float uv[2]; const float(*faceuv)[2]; - const int *index_mf_to_mpoly_deformed = NULL; - const int *index_mf_to_mpoly = NULL; - const int *index_mp_to_orig = NULL; + const int *index_mf_to_mpoly_deformed = nullptr; + const int *index_mf_to_mpoly = nullptr; + const int *index_mp_to_orig = nullptr; const int totface_final = mesh_final->totface; const int totface_deformed = mesh_original ? mesh_original->totface : totface_final; @@ -1949,12 +1955,15 @@ int psys_particle_dm_face_lookup(Mesh *mesh_final, return DMCACHE_NOTFOUND; } - index_mf_to_mpoly = CustomData_get_layer(&mesh_final->fdata, CD_ORIGINDEX); - index_mp_to_orig = CustomData_get_layer(&mesh_final->pdata, CD_ORIGINDEX); + index_mf_to_mpoly = static_cast( + CustomData_get_layer(&mesh_final->fdata, CD_ORIGINDEX)); + index_mp_to_orig = static_cast( + CustomData_get_layer(&mesh_final->pdata, CD_ORIGINDEX)); BLI_assert(index_mf_to_mpoly); if (mesh_original) { - index_mf_to_mpoly_deformed = CustomData_get_layer(&mesh_original->fdata, CD_ORIGINDEX); + index_mf_to_mpoly_deformed = static_cast( + CustomData_get_layer(&mesh_original->fdata, CD_ORIGINDEX)); } else { BLI_assert(BKE_mesh_is_deformed_only(mesh_final)); @@ -1964,16 +1973,17 @@ int psys_particle_dm_face_lookup(Mesh *mesh_final, pindex_orig = index_mf_to_mpoly_deformed[findex_orig]; - if (mesh_original == NULL) { + if (mesh_original == nullptr) { mesh_original = mesh_final; } - index_mf_to_mpoly_deformed = NULL; + index_mf_to_mpoly_deformed = nullptr; - mtessface_final = CustomData_get_layer(&mesh_final->fdata, CD_MFACE); - osface_final = CustomData_get_layer(&mesh_final->fdata, CD_ORIGSPACE); + mtessface_final = static_cast(CustomData_get_layer(&mesh_final->fdata, CD_MFACE)); + osface_final = static_cast( + CustomData_get_layer(&mesh_final->fdata, CD_ORIGSPACE)); - if (osface_final == NULL) { + if (osface_final == nullptr) { /* Assume we don't need osface_final data, and we get a direct 1-1 mapping... */ if (findex_orig < totface_final) { // printf("\tNO CD_ORIGSPACE, assuming not needed\n"); @@ -2039,7 +2049,7 @@ static int psys_map_index_on_dm(Mesh *mesh, int index, int index_dmcache, const float fw[4], - float UNUSED(foffset), + float /*foffset*/, int *mapindex, float mapfw[4]) { @@ -2089,11 +2099,13 @@ static int psys_map_index_on_dm(Mesh *mesh, /* modify the original weights to become * weights for the derived mesh face */ - OrigSpaceFace *osface = CustomData_get_layer(&mesh->fdata, CD_ORIGSPACE); - const MFace *mfaces = CustomData_get_layer(&mesh->fdata, CD_MFACE); + OrigSpaceFace *osface = static_cast( + CustomData_get_layer(&mesh->fdata, CD_ORIGSPACE)); + const MFace *mfaces = static_cast( + CustomData_get_layer(&mesh->fdata, CD_MFACE)); const MFace *mface = &mfaces[i]; - if (osface == NULL) { + if (osface == nullptr) { mapfw[0] = mapfw[1] = mapfw[2] = mapfw[3] = 0.0f; } else { @@ -2143,7 +2155,7 @@ void psys_particle_on_dm(Mesh *mesh_final, return; } - orcodata = CustomData_get_layer(&mesh_final->vdata, CD_ORCO); + orcodata = static_cast(CustomData_get_layer(&mesh_final->vdata, CD_ORCO)); const float(*vert_normals)[3] = BKE_mesh_vertex_normals_ensure(mesh_final); if (from == PART_FROM_VERT) { @@ -2174,10 +2186,10 @@ void psys_particle_on_dm(Mesh *mesh_final, MTFace *mtface; MVert *mvert; - MFace *mfaces = CustomData_get_layer(&mesh_final->fdata, CD_MFACE); + MFace *mfaces = static_cast(CustomData_get_layer(&mesh_final->fdata, CD_MFACE)); mface = &mfaces[mapindex]; mvert = BKE_mesh_verts_for_write(mesh_final); - mtface = CustomData_get_layer(&mesh_final->fdata, CD_MTFACE); + mtface = static_cast(CustomData_get_layer(&mesh_final->fdata, CD_MTFACE)); if (mtface) { mtface += mapindex; @@ -2241,7 +2253,7 @@ ParticleSystemModifierData *psys_get_modifier(Object *ob, ParticleSystem *psys) ModifierData *md; ParticleSystemModifierData *psmd; - for (md = ob->modifiers.first; md; md = md->next) { + for (md = static_cast(ob->modifiers.first); md; md = md->next) { if (md->type == eModifierType_ParticleSystem) { psmd = (ParticleSystemModifierData *)md; if (psmd->psys == psys) { @@ -2249,7 +2261,7 @@ ParticleSystemModifierData *psys_get_modifier(Object *ob, ParticleSystem *psys) } } } - return NULL; + return nullptr; } /************************************************/ @@ -2257,9 +2269,9 @@ ParticleSystemModifierData *psys_get_modifier(Object *ob, ParticleSystem *psys) /************************************************/ /* ready for future use */ -static void psys_particle_on_shape(int UNUSED(distr), - int UNUSED(index), - float *UNUSED(fuv), +static void psys_particle_on_shape(int /*distr*/, + int /*index*/, + float * /*fuv*/, float vec[3], float nor[3], float utan[3], @@ -2398,14 +2410,14 @@ void precalc_guides(ParticleSimulationData *sim, ListBase *effectors) pd_point_from_particle(sim, pa, &state, &point); - for (eff = effectors->first; eff; eff = eff->next) { + for (eff = static_cast(effectors->first); eff; eff = eff->next) { if (eff->pd->forcefield != PFIELD_GUIDE) { continue; } if (!eff->guide_data) { - eff->guide_data = MEM_callocN(sizeof(GuideEffectorData) * psys->totpart, - "GuideEffectorData"); + eff->guide_data = static_cast( + MEM_callocN(sizeof(GuideEffectorData) * psys->totpart, "GuideEffectorData")); } data = eff->guide_data + p; @@ -2428,9 +2440,9 @@ bool do_guides(Depsgraph *depsgraph, float time) { CurveMapping *clumpcurve = (part->child_flag & PART_CHILD_USE_CLUMP_CURVE) ? part->clumpcurve : - NULL; + nullptr; CurveMapping *roughcurve = (part->child_flag & PART_CHILD_USE_ROUGH_CURVE) ? part->roughcurve : - NULL; + nullptr; EffectorCache *eff; PartDeflect *pd; Curve *cu; @@ -2442,7 +2454,7 @@ bool do_guides(Depsgraph *depsgraph, float vec_to_point[3]; if (effectors) { - for (eff = effectors->first; eff; eff = eff->next) { + for (eff = static_cast(effectors->first); eff; eff = eff->next) { pd = eff->pd; if (pd->forcefield != PFIELD_GUIDE) { @@ -2464,14 +2476,18 @@ bool do_guides(Depsgraph *depsgraph, cu = (Curve *)eff->ob->data; if (pd->flag & PFIELD_GUIDE_PATH_ADD) { - if (BKE_where_on_path( - eff->ob, data->strength * guidetime, guidevec, guidedir, NULL, &radius, &weight) == - 0) { + if (BKE_where_on_path(eff->ob, + data->strength * guidetime, + guidevec, + guidedir, + nullptr, + &radius, + &weight) == 0) { return 0; } } else { - if (BKE_where_on_path(eff->ob, guidetime, guidevec, guidedir, NULL, &radius, &weight) == + if (BKE_where_on_path(eff->ob, guidetime, guidevec, guidedir, nullptr, &radius, &weight) == 0) { return 0; } @@ -2503,7 +2519,7 @@ bool do_guides(Depsgraph *depsgraph, BKE_displist_calc_taper(depsgraph, eff->scene, cu->taperobj, - (int)(data->strength * guidetime * 100.0f), + int(data->strength * guidetime * 100.0f), 100)); } else { /* Curve size. */ @@ -2587,10 +2603,10 @@ static void do_path_effectors(ParticleSimulationData *sim, ParticleCacheKey *ca, int k, int steps, - float *UNUSED(rootco), + float * /*rootco*/, float effector, - float UNUSED(dfra), - float UNUSED(cfra), + float /*dfra*/, + float /*cfra*/, float *length, float *vec) { @@ -2613,12 +2629,12 @@ static void do_path_effectors(ParticleSimulationData *sim, sim->psys->part->effector_weights, &epoint, force, - NULL, - NULL); + nullptr, + nullptr); mul_v3_fl(force, - effector * powf((float)k / (float)steps, 100.0f * sim->psys->part->eff_hair) / - (float)steps); + effector * powf(float(k) / float(steps), 100.0f * sim->psys->part->eff_hair) / + float(steps)); add_v3_v3(force, vec); @@ -2669,7 +2685,7 @@ float *psys_cache_vgroup(Mesh *mesh, ParticleSystem *psys, int vgroup) const MDeformVert *dvert = BKE_mesh_deform_verts(mesh); if (dvert) { int totvert = mesh->totvert, i; - vg = MEM_callocN(sizeof(float) * totvert, "vg_cache"); + vg = static_cast(MEM_callocN(sizeof(float) * totvert, "vg_cache")); if (psys->vg_neg & (1 << vgroup)) { for (i = 0; i < totvert; i++) { vg[i] = 1.0f - BKE_defvert_find_weight(&dvert[i], psys->vgroup[vgroup] - 1); @@ -2694,10 +2710,10 @@ void psys_find_parents(ParticleSimulationData *sim, const bool use_render_params int p, totparent, totchild = sim->psys->totchild; float co[3], orco[3]; int from = PART_FROM_FACE; - totparent = (int)(totchild * part->parents * 0.3f); + totparent = int(totchild * part->parents * 0.3f); if (use_render_params && part->child_percent && part->child_render_percent) { - totparent *= (float)part->child_percent / (float)part->child_render_percent; + totparent *= float(part->child_percent) / float(part->child_render_percent); } /* hard limit, workaround for it being ignored above */ @@ -2735,7 +2751,7 @@ void psys_find_parents(ParticleSimulationData *sim, const bool use_render_params for (; p < totchild; p++, cpa++) { psys_particle_on_emitter( sim->psmd, from, cpa->num, DMCACHE_ISCHILD, cpa->fuv, cpa->foffset, co, 0, 0, 0, orco); - cpa->parent = BLI_kdtree_3d_find_nearest(tree, orco, NULL); + cpa->parent = BLI_kdtree_3d_find_nearest(tree, orco, nullptr); } BLI_kdtree_3d_free(tree); @@ -2761,7 +2777,7 @@ static bool psys_thread_context_init_path(ParticleThreadContext *ctx, ParticleEditSettings *pset = &scene->toolsettings->particle; if ((use_render_params == 0) && - (psys_orig_edit_get(psys) == NULL || pset->flag & PE_DRAW_PART) == 0) { + (psys_orig_edit_get(psys) == nullptr || pset->flag & PE_DRAW_PART) == 0) { totchild = 0; } @@ -2769,10 +2785,10 @@ static bool psys_thread_context_init_path(ParticleThreadContext *ctx, } if (totchild && part->childtype == PART_CHILD_FACES) { - totparent = (int)(totchild * part->parents * 0.3f); + totparent = int(totchild * part->parents * 0.3f); if (use_render_params && part->child_percent && part->child_render_percent) { - totparent *= (float)part->child_percent / (float)part->child_render_percent; + totparent *= float(part->child_percent) / float(part->child_render_percent); } /* part->parents could still be 0 so we can't test with totparent */ @@ -2783,7 +2799,7 @@ static bool psys_thread_context_init_path(ParticleThreadContext *ctx, segments = 1 << part->ren_step; } else { - totchild = (int)((float)totchild * (float)part->disp / 100.0f); + totchild = int(float(totchild) * float(part->disp) / 100.0f); } totparent = MIN2(totparent, totchild); @@ -2827,21 +2843,21 @@ static bool psys_thread_context_init_path(ParticleThreadContext *ctx, BKE_curvemapping_changed_all(ctx->clumpcurve); } else { - ctx->clumpcurve = NULL; + ctx->clumpcurve = nullptr; } if ((part->child_flag & PART_CHILD_USE_ROUGH_CURVE) && part->roughcurve) { ctx->roughcurve = BKE_curvemapping_copy(part->roughcurve); BKE_curvemapping_changed_all(ctx->roughcurve); } else { - ctx->roughcurve = NULL; + ctx->roughcurve = nullptr; } if ((part->child_flag & PART_CHILD_USE_TWIST_CURVE) && part->twistcurve) { ctx->twistcurve = BKE_curvemapping_copy(part->twistcurve); BKE_curvemapping_changed_all(ctx->twistcurve); } else { - ctx->twistcurve = NULL; + ctx->twistcurve = nullptr; } return true; @@ -3010,7 +3026,7 @@ static void psys_thread_create_path(ParticleTask *task, * ctx->sim.psmd->dm_final, * ctx->sim.psmd->dm_deformed, * pa->num, pa->fuv, - * NULL); + * nullptr); */ cpa_num = ELEM(pa->num_dmcache, DMCACHE_ISCHILD, DMCACHE_NOTFOUND) ? pa->num : pa->num_dmcache; @@ -3065,7 +3081,7 @@ static void psys_thread_create_path(ParticleTask *task, /* Fade the effect of rotation for even lengths in the end */ project_v3_v3v3(dvec, off2[w], (key[w] + k)->vel); - madd_v3_v3fl(off2[w], dvec, -(float)k / (float)ctx->segments); + madd_v3_v3fl(off2[w], dvec, -float(k) / float(ctx->segments)); } add_v3_v3(off2[w], (key[w] + k)->co); @@ -3099,7 +3115,7 @@ static void psys_thread_create_path(ParticleTask *task, part->childrad); } - child->time = (float)k / (float)ctx->segments; + child->time = float(k) / float(ctx->segments); } /* apply effectors */ @@ -3126,8 +3142,8 @@ static void psys_thread_create_path(ParticleTask *task, } { - ParticleData *pa = NULL; - ParticleCacheKey *par = NULL; + ParticleData *pa = nullptr; + ParticleCacheKey *par = nullptr; float par_co[3]; float par_orco[3]; @@ -3153,7 +3169,7 @@ static void psys_thread_create_path(ParticleTask *task, } if (pa->flag & PARS_UNEXIST) { - pa = NULL; + pa = nullptr; } } @@ -3168,9 +3184,9 @@ static void psys_thread_create_path(ParticleTask *task, pa->fuv, pa->foffset, par_co, - NULL, - NULL, - NULL, + nullptr, + nullptr, + nullptr, par_orco); psys_apply_child_modifiers( @@ -3187,9 +3203,9 @@ static void psys_thread_create_path(ParticleTask *task, } } -static void exec_child_path_cache(TaskPool *__restrict UNUSED(pool), void *taskdata) +static void exec_child_path_cache(TaskPool *__restrict /*pool*/, void *taskdata) { - ParticleTask *task = taskdata; + ParticleTask *task = static_cast(taskdata); ParticleThreadContext *ctx = task->ctx; ParticleSystem *psys = ctx->sim.psys; ParticleCacheKey **cache = psys->childcache; @@ -3246,7 +3262,7 @@ void psys_cache_child_paths(ParticleSimulationData *sim, ParticleTask *task = &tasks_parent[i]; psys_task_init_path(task, sim); - BLI_task_pool_push(task_pool, exec_child_path_cache, task, false, NULL); + BLI_task_pool_push(task_pool, exec_child_path_cache, task, false, nullptr); } BLI_task_pool_work_and_wait(task_pool); @@ -3257,7 +3273,7 @@ void psys_cache_child_paths(ParticleSimulationData *sim, ParticleTask *task = &tasks_child[i]; psys_task_init_path(task, sim); - BLI_task_pool_push(task_pool, exec_child_path_cache, task, false, NULL); + BLI_task_pool_push(task_pool, exec_child_path_cache, task, false, nullptr); } BLI_task_pool_work_and_wait(task_pool); @@ -3321,7 +3337,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re Mesh *hair_mesh = (psys->part->type == PART_HAIR && psys->flag & PSYS_HAIR_DYNAMICS) ? psys->hair_out_mesh : - NULL; + nullptr; ParticleKey result; @@ -3333,16 +3349,15 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re float birthtime = 0.0, dietime = 0.0; float t, time = 0.0, dfra = 1.0; - // float frs_sec = sim->scene->r.frs_sec; /*UNUSED*/ float col[4] = {0.5f, 0.5f, 0.5f, 1.0f}; float prev_tangent[3] = {0.0f, 0.0f, 0.0f}, hairmat[4][4]; float rotmat[3][3]; int k; - int segments = (int)pow(2.0, (double)((use_render_params) ? part->ren_step : part->draw_step)); + int segments = int(pow(2.0, double((use_render_params) ? part->ren_step : part->draw_step))); int totpart = psys->totpart; float length, vec[3]; - float *vg_effector = NULL; - float *vg_length = NULL, pa_length = 1.0f; + float *vg_effector = nullptr; + float *vg_length = nullptr, pa_length = 1.0f; int keyed, baked; /* we don't have anything valid to create paths from so let's quit here */ @@ -3351,7 +3366,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re } if (psys_in_edit_mode(sim->depsgraph, psys)) { - if ((psys->edit == NULL || pset->flag & PE_DRAW_PART) == 0) { + if ((psys->edit == nullptr || pset->flag & PE_DRAW_PART) == 0) { return; } } @@ -3397,8 +3412,8 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re } pind.keyed = keyed; - pind.cache = baked ? psys->pointcache : NULL; - pind.epoint = NULL; + pind.cache = baked ? psys->pointcache : nullptr; + pind.epoint = nullptr; pind.bspline = (psys->part->flag & PART_HAIR_BSPLINE); pind.mesh = hair_mesh; @@ -3434,7 +3449,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re /*--interpolate actual path from data points--*/ for (k = 0, ca = cache[p]; k <= segments; k++, ca++) { - time = (float)k / (float)segments; + time = float(k) / float(segments); t = birthtime + time * (dietime - birthtime); result.time = -t; do_particle_interpolation(psys, p, pa, t, &pind, &result); @@ -3489,7 +3504,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re sim->psys->effectors, (ParticleKey *)ca, p, - (float)k / (float)segments); + float(k) / float(segments)); } } @@ -3517,7 +3532,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra, const bool use_re copy_v3_v3((ca - 1)->vel, ca->vel); } - ca->time = (float)k / (float)segments; + ca->time = float(k) / float(segments); } /* First rotation is based on emitting face orientation. * This is way better than having flipping rotations resulting @@ -3553,7 +3568,7 @@ typedef struct CacheEditrPathsIterData { static void psys_cache_edit_paths_iter(void *__restrict iter_data_v, const int iter, - const TaskParallelTLS *__restrict UNUSED(tls)) + const TaskParallelTLS *__restrict /*tls*/) { CacheEditrPathsIterData *iter_data = (CacheEditrPathsIterData *)iter_data_v; PTCacheEdit *edit = iter_data->edit; @@ -3568,7 +3583,7 @@ static void psys_cache_edit_paths_iter(void *__restrict iter_data_v, ParticleSystem *psys = edit->psys; ParticleCacheKey **cache = edit->pathcache; ParticleSystemModifierData *psmd = iter_data->psmd; - ParticleData *pa = iter_data->pa ? iter_data->pa + iter : NULL; + ParticleData *pa = iter_data->pa ? iter_data->pa + iter : nullptr; PTCacheEditKey *ekey = point->keys; const int segments = iter_data->segments; const bool use_weight = iter_data->use_weight; @@ -3578,15 +3593,15 @@ static void psys_cache_edit_paths_iter(void *__restrict iter_data_v, ParticleInterpolationData pind; pind.keyed = 0; - pind.cache = NULL; + pind.cache = nullptr; pind.epoint = point; pind.bspline = psys ? (psys->part->flag & PART_HAIR_BSPLINE) : 0; - pind.mesh = NULL; + pind.mesh = nullptr; /* should init_particle_interpolation set this ? */ if (use_weight) { - pind.hkey[0] = NULL; - /* pa != NULL since the weight brush is only available for hair */ + pind.hkey[0] = nullptr; + /* pa != nullptr since the weight brush is only available for hair */ pind.hkey[0] = pa->hair; pind.hkey[1] = pa->hair + 1; } @@ -3618,7 +3633,7 @@ static void psys_cache_edit_paths_iter(void *__restrict iter_data_v, int k; float t, time = 0.0f, keytime = 0.0f; for (k = 0, ca = cache[iter]; k <= segments; k++, ca++) { - time = (float)k / (float)segments; + time = float(k) / float(segments); t = birthtime + time * (dietime - birthtime); ParticleKey result; result.time = -t; @@ -3729,12 +3744,12 @@ void psys_cache_edit_paths(Depsgraph *depsgraph, ParticleSystem *psys = edit->psys; - ParticleData *pa = psys ? psys->particles : NULL; + ParticleData *pa = psys ? psys->particles : nullptr; int segments = 1 << pset->draw_step; int totpart = edit->totpoint, recalc_set = 0; - if (edit->psmd_eval == NULL) { + if (edit->psmd_eval == nullptr) { return; } @@ -3754,8 +3769,8 @@ void psys_cache_edit_paths(Depsgraph *depsgraph, recalc_set = 1; } - const bool use_weight = (pset->brushtype == PE_BRUSH_WEIGHT) && (psys != NULL) && - (psys->particles != NULL); + const bool use_weight = (pset->brushtype == PE_BRUSH_WEIGHT) && (psys != nullptr) && + (psys->particles != nullptr); CacheEditrPathsIterData iter_data; iter_data.object = ob; @@ -3877,11 +3892,13 @@ static void psys_face_mat(Object *ob, Mesh *mesh, ParticleData *pa, float mat[4] return; } - MFace *mfaces = CustomData_get_layer(&mesh->fdata, CD_MFACE); + MFace *mfaces = static_cast(CustomData_get_layer(&mesh->fdata, CD_MFACE)); mface = &mfaces[i]; - const OrigSpaceFace *osface = CustomData_get(&mesh->fdata, i, CD_ORIGSPACE); + const OrigSpaceFace *osface = static_cast( + CustomData_get(&mesh->fdata, i, CD_ORIGSPACE)); - if (orco && (orcodata = CustomData_get_layer(&mesh->vdata, CD_ORCO))) { + if (orco && + (orcodata = static_cast(CustomData_get_layer(&mesh->vdata, CD_ORCO)))) { copy_v3_v3(v[0], orcodata[mface->v1]); copy_v3_v3(v[1], orcodata[mface->v2]); copy_v3_v3(v[2], orcodata[mface->v3]); @@ -3889,7 +3906,7 @@ static void psys_face_mat(Object *ob, Mesh *mesh, ParticleData *pa, float mat[4] /* ugly hack to use non-transformed orcos, since only those * give symmetric results for mirroring in particle mode */ if (CustomData_get_layer(&mesh->vdata, CD_ORIGINDEX)) { - BKE_mesh_orco_verts_transform(ob->data, v, 3, 1); + BKE_mesh_orco_verts_transform(static_cast(ob->data), v, 3, 1); } } else { @@ -3899,11 +3916,11 @@ static void psys_face_mat(Object *ob, Mesh *mesh, ParticleData *pa, float mat[4] copy_v3_v3(v[2], verts[mface->v3].co); } - triatomat(v[0], v[1], v[2], (osface) ? osface->uv : NULL, mat); + triatomat(v[0], v[1], v[2], (osface) ? osface->uv : nullptr, mat); } void psys_mat_hair_to_object( - Object *UNUSED(ob), Mesh *mesh, short from, ParticleData *pa, float hairmat[4][4]) + Object * /*ob*/, Mesh *mesh, short from, ParticleData *pa, float hairmat[4][4]) { float vec[3]; @@ -3929,7 +3946,7 @@ void psys_mat_hair_to_orco( /* see psys_face_mat for why this function is called */ if (CustomData_get_layer(&mesh->vdata, CD_ORIGINDEX)) { - BKE_mesh_orco_verts_transform(ob->data, &orco, 1, 1); + BKE_mesh_orco_verts_transform(static_cast(ob->data), &orco, 1, 1); } copy_v3_v3(hairmat[3], orco); } @@ -3965,24 +3982,24 @@ static ModifierData *object_add_or_copy_particle_system( ParticleSystemModifierData *psmd; if (!ob || ob->type != OB_MESH) { - return NULL; + return nullptr; } - if (name == NULL) { - name = (psys_orig != NULL) ? psys_orig->name : DATA_("ParticleSystem"); + if (name == nullptr) { + name = (psys_orig != nullptr) ? psys_orig->name : DATA_("ParticleSystem"); } - psys = ob->particlesystem.first; + psys = static_cast(ob->particlesystem.first); for (; psys; psys = psys->next) { psys->flag &= ~PSYS_CURRENT; } - psys = MEM_callocN(sizeof(ParticleSystem), "particle_system"); + psys = static_cast(MEM_callocN(sizeof(ParticleSystem), "particle_system")); psys->pointcache = BKE_ptcache_add(&psys->ptcaches); BLI_addtail(&ob->particlesystem, psys); psys_unique_name(ob, psys, name); - if (psys_orig != NULL) { + if (psys_orig != nullptr) { psys->part = psys_orig->part; id_us_plus(&psys->part->id); } @@ -4000,7 +4017,7 @@ static ModifierData *object_add_or_copy_particle_system( psys->totpart = 0; psys->flag = PSYS_CURRENT; - if (scene != NULL) { + if (scene != nullptr) { psys->cfra = BKE_scene_frame_to_ctime(scene, scene->r.cfra + 1); } @@ -4012,7 +4029,7 @@ static ModifierData *object_add_or_copy_particle_system( ModifierData *object_add_particle_system(Main *bmain, Scene *scene, Object *ob, const char *name) { - return object_add_or_copy_particle_system(bmain, scene, ob, name, NULL); + return object_add_or_copy_particle_system(bmain, scene, ob, name, nullptr); } ModifierData *object_copy_particle_system(Main *bmain, @@ -4020,11 +4037,11 @@ ModifierData *object_copy_particle_system(Main *bmain, Object *ob, const ParticleSystem *psys_orig) { - return object_add_or_copy_particle_system(bmain, scene, ob, NULL, psys_orig); + return object_add_or_copy_particle_system(bmain, scene, ob, nullptr, psys_orig); } void object_remove_particle_system(Main *bmain, - Scene *UNUSED(scene), + Scene * /*scene*/, Object *ob, ParticleSystem *psys) { @@ -4042,7 +4059,7 @@ void object_remove_particle_system(Main *bmain, /* Clear particle system pointer in flow settings. */ if ((fmd->type == MOD_FLUID_TYPE_FLOW) && fmd->flow && fmd->flow->psys) { if (fmd->flow->psys == psys) { - fmd->flow->psys = NULL; + fmd->flow->psys = nullptr; } } /* Clear particle flag in domain settings when removing particle system manually. */ @@ -4090,7 +4107,7 @@ void object_remove_particle_system(Main *bmain, DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; if (pmd->brush && pmd->brush->psys) { if (pmd->brush->psys == psys) { - pmd->brush->psys = NULL; + pmd->brush->psys = nullptr; } } } @@ -4127,7 +4144,7 @@ ParticleSettings *BKE_particlesettings_add(Main *bmain, const char *name) { ParticleSettings *part; - part = BKE_id_new(bmain, ID_PA, name); + part = static_cast(BKE_id_new(bmain, ID_PA, name)); return part; } @@ -4191,9 +4208,9 @@ static int get_particle_uv(Mesh *mesh, const MTFace *tf; int i; - tf = CustomData_get_layer_named(&mesh->fdata, CD_MTFACE, name); + tf = static_cast(CustomData_get_layer_named(&mesh->fdata, CD_MTFACE, name)); - if (tf == NULL) { + if (tf == nullptr) { return 0; } @@ -4316,7 +4333,7 @@ static void get_cpa_texture(Mesh *mesh, break; case TEXCO_UV: if (fw && get_particle_uv(mesh, - NULL, + nullptr, face_index, fw, mtex->uvname, @@ -4337,7 +4354,7 @@ static void get_cpa_texture(Mesh *mesh, break; } - RE_texture_evaluate(mtex, texvec, 0, NULL, false, false, &value, rgba); + RE_texture_evaluate(mtex, texvec, 0, nullptr, false, false, &value, rgba); if ((event & mtex->mapto) & PAMAP_ROUGH) { ptex->rough1 = ptex->rough2 = ptex->roughe = texture_value_blend( @@ -4378,7 +4395,7 @@ void psys_get_texture( ptex->rough1 = ptex->rough2 = ptex->roughe = 1.0f; ptex->twist = 1.0f; - ptex->time = (float)(pa - sim->psys->particles) / (float)sim->psys->totpart; + ptex->time = float(pa - sim->psys->particles) / float(sim->psys->totpart); for (m = 0; m < MAX_MTEX; m++, mtexp++) { mtex = *mtexp; @@ -4443,8 +4460,7 @@ void psys_get_texture( /* texture coordinates in range [-1, 1] */ texvec[0] = 2.0f * (cfra - pa->time) / (pa->dietime - pa->time) - 1.0f; if (sim->psys->totpart > 0) { - texvec[1] = 2.0f * (float)(pa - sim->psys->particles) / (float)sim->psys->totpart - - 1.0f; + texvec[1] = 2.0f * float(pa - sim->psys->particles) / float(sim->psys->totpart) - 1.0f; } else { texvec[1] = 0.0f; @@ -4453,7 +4469,7 @@ void psys_get_texture( break; } - RE_texture_evaluate(mtex, texvec, 0, NULL, false, false, &value, rgba); + RE_texture_evaluate(mtex, texvec, 0, nullptr, false, false, &value, rgba); if ((event & mtex->mapto) & PAMAP_TIME) { /* the first time has to set the base value for time regardless of blend mode */ @@ -4533,8 +4549,8 @@ float psys_get_child_time( } float psys_get_child_size(ParticleSystem *psys, ChildParticle *cpa, - float UNUSED(cfra), - float *UNUSED(pa_time)) + float /*cfra*/, + float * /*pa_time*/) { ParticleSettings *part = psys->part; float size; /* time XXX */ @@ -4670,13 +4686,13 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, pa = psys->particles + p; pind.keyed = keyed; - pind.cache = cached ? psys->pointcache : NULL; - pind.epoint = NULL; + pind.cache = cached ? psys->pointcache : nullptr; + pind.epoint = nullptr; pind.bspline = (psys->part->flag & PART_HAIR_BSPLINE); /* `pind.dm` disabled in edit-mode means we don't get effectors taken into * account when subdividing for instance. */ pind.mesh = psys_in_edit_mode(sim->depsgraph, psys) ? - NULL : + nullptr : psys->hair_out_mesh; /* XXX(@sybren): EEK. */ init_particle_interpolation(sim->ob, psys, pa, &pind); do_particle_interpolation(psys, p, pa, t, &pind, state); @@ -4722,7 +4738,7 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, cpa = psys->child + p - totpart; if (state->time < 0.0f) { - t = psys_get_child_time(psys, cpa, -state->time, NULL, NULL); + t = psys_get_child_time(psys, cpa, -state->time, nullptr, nullptr); } if (part->childtype == PART_CHILD_FACES) { @@ -4852,8 +4868,8 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, } /* apply different deformations to the child path */ - ParticleChildModifierContext modifier_ctx = {NULL}; - modifier_ctx.thread_ctx = NULL; + ParticleChildModifierContext modifier_ctx = {nullptr}; + modifier_ctx.thread_ctx = nullptr; modifier_ctx.sim = sim; modifier_ctx.ptex = &ptex; modifier_ctx.cpa = cpa; @@ -4862,7 +4878,7 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, modifier_ctx.par_vel = par->vel; modifier_ctx.par_rot = par->rot; modifier_ctx.par_orco = par_orco; - modifier_ctx.parent_keys = psys->childcache ? psys->childcache[p - totpart] : NULL; + modifier_ctx.parent_keys = psys->childcache ? psys->childcache[p - totpart] : nullptr; do_child_modifiers(&modifier_ctx, hairmat, state, t); /* try to estimate correct velocity */ @@ -4896,8 +4912,8 @@ bool psys_get_particle_state(ParticleSimulationData *sim, { ParticleSystem *psys = sim->psys; ParticleSettings *part = psys->part; - ParticleData *pa = NULL; - ChildParticle *cpa = NULL; + ParticleData *pa = nullptr; + ChildParticle *cpa = nullptr; float cfra; int totpart = psys->totpart; float timestep = psys_get_timestep(sim); @@ -4917,7 +4933,7 @@ bool psys_get_particle_state(ParticleSimulationData *sim, cpa = psys->child + p - totpart; - state->time = psys_get_child_time(psys, cpa, cfra, NULL, NULL); + state->time = psys_get_child_time(psys, cpa, cfra, nullptr, nullptr); if (!always) { if ((state->time < 0.0f && !(part->flag & PART_UNBORN)) || @@ -4969,17 +4985,17 @@ bool psys_get_particle_state(ParticleSimulationData *sim, CLAMP(t, 0.0f, 1.0f); unit_m4(mat); - ParticleChildModifierContext modifier_ctx = {NULL}; - modifier_ctx.thread_ctx = NULL; + ParticleChildModifierContext modifier_ctx = {nullptr}; + modifier_ctx.thread_ctx = nullptr; modifier_ctx.sim = sim; - modifier_ctx.ptex = NULL; + modifier_ctx.ptex = nullptr; modifier_ctx.cpa = cpa; modifier_ctx.orco = cpa->fuv; modifier_ctx.par_co = key1->co; modifier_ctx.par_vel = key1->vel; modifier_ctx.par_rot = key1->rot; modifier_ctx.par_orco = par_orco; - modifier_ctx.parent_keys = psys->childcache ? psys->childcache[p - totpart] : NULL; + modifier_ctx.parent_keys = psys->childcache ? psys->childcache[p - totpart] : nullptr; do_child_modifiers(&modifier_ctx, mat, state, t); @@ -5068,7 +5084,7 @@ void psys_get_dupli_texture(ParticleSystem *psys, float loc[3]; int num; - /* XXX: on checking '(psmd->dm != NULL)' + /* XXX: on checking '(psmd->dm != nullptr)' * This is incorrect but needed for meta-ball evaluation. * Ideally this would be calculated via the depsgraph, however with meta-balls, * the entire scenes dupli's are scanned, which also looks into uncalculated data. @@ -5082,15 +5098,17 @@ void psys_get_dupli_texture(ParticleSystem *psys, bool is_grid = (part->distr == PART_DISTR_GRID && part->from != PART_FROM_VERT); if (cpa) { - if ((part->childtype == PART_CHILD_FACES) && (psmd->mesh_final != NULL)) { + if ((part->childtype == PART_CHILD_FACES) && (psmd->mesh_final != nullptr)) { if (!is_grid) { CustomData *mtf_data = &psmd->mesh_final->fdata; const int uv_idx = CustomData_get_render_layer(mtf_data, CD_MTFACE); if (uv_idx >= 0) { - const MTFace *mtface = CustomData_get_layer_n(mtf_data, CD_MTFACE, uv_idx); - if (mtface != NULL) { - const MFace *mface = CustomData_get(&psmd->mesh_final->fdata, cpa->num, CD_MFACE); + const MTFace *mtface = static_cast( + CustomData_get_layer_n(mtf_data, CD_MTFACE, uv_idx)); + if (mtface != nullptr) { + const MFace *mface = static_cast( + CustomData_get(&psmd->mesh_final->fdata, cpa->num, CD_MFACE)); mtface += cpa->num; psys_interpolate_uvs(mtface, mface->v4, cpa->fuv, uv); } @@ -5114,7 +5132,7 @@ void psys_get_dupli_texture(ParticleSystem *psys, pa = psys->particles + cpa->pa[0]; } - if ((part->from == PART_FROM_FACE) && (psmd->mesh_final != NULL) && !is_grid) { + if ((part->from == PART_FROM_FACE) && (psmd->mesh_final != nullptr) && !is_grid) { num = pa->num_dmcache; if (num == DMCACHE_NOTFOUND) { @@ -5132,8 +5150,10 @@ void psys_get_dupli_texture(ParticleSystem *psys, const int uv_idx = CustomData_get_render_layer(mtf_data, CD_MTFACE); if (uv_idx >= 0) { - const MTFace *mtface = CustomData_get_layer_n(mtf_data, CD_MTFACE, uv_idx); - const MFace *mface = CustomData_get(&psmd->mesh_final->fdata, num, CD_MFACE); + const MTFace *mtface = static_cast( + CustomData_get_layer_n(mtf_data, CD_MTFACE, uv_idx)); + const MFace *mface = static_cast( + CustomData_get(&psmd->mesh_final->fdata, num, CD_MFACE)); mtface += num; psys_interpolate_uvs(mtface, mface->v4, pa->fuv, uv); } @@ -5160,7 +5180,7 @@ void psys_get_dupli_path_transform(ParticleSimulationData *sim, sub_v3_v3v3(vec, (cache + cache->segments)->co, cache->co); len = normalize_v3(vec); - if (pa == NULL && psys->part->childflat != PART_CHILD_FACES) { + if (pa == nullptr && psys->part->childflat != PART_CHILD_FACES) { pa = psys->particles + cpa->pa[0]; } @@ -5219,7 +5239,7 @@ void psys_get_dupli_path_transform(ParticleSimulationData *sim, if (psys->part->randphasefac != 0.0f) { phasefac += psys->part->randphasefac * psys_frand(psys, (pa - psys->particles) + 20); } - axis_angle_to_quat(q_phase, vec, phasefac * (float)M_PI); + axis_angle_to_quat(q_phase, vec, phasefac * float(M_PI)); mul_qt_v3(q_phase, side); } @@ -5276,8 +5296,8 @@ void psys_apply_hair_lattice(Depsgraph *depsgraph, Scene *scene, Object *ob, Par } /* Draw Engine */ -void (*BKE_particle_batch_cache_dirty_tag_cb)(ParticleSystem *psys, int mode) = NULL; -void (*BKE_particle_batch_cache_free_cb)(ParticleSystem *psys) = NULL; +void (*BKE_particle_batch_cache_dirty_tag_cb)(ParticleSystem *psys, int mode) = nullptr; +void (*BKE_particle_batch_cache_free_cb)(ParticleSystem *psys) = nullptr; void BKE_particle_batch_cache_dirty_tag(ParticleSystem *psys, int mode) { @@ -5352,7 +5372,7 @@ void BKE_particle_system_blend_read_data(BlendDataReader *reader, ListBase *part if (psys->particles && psys->particles->keys) { for (a = 0, pa = psys->particles; a < psys->totpart; a++, pa++) { - pa->keys = NULL; + pa->keys = nullptr; pa->totkey = 0; } @@ -5364,51 +5384,51 @@ void BKE_particle_system_blend_read_data(BlendDataReader *reader, ListBase *part BLO_read_data_address(reader, &pa->boid); /* This is purely runtime data, but still can be an issue if left dangling. */ - pa->boid->ground = NULL; + pa->boid->ground = nullptr; for (a = 1, pa++; a < psys->totpart; a++, pa++) { pa->boid = (pa - 1)->boid + 1; - pa->boid->ground = NULL; + pa->boid->ground = nullptr; } } else if (psys->particles) { for (a = 0, pa = psys->particles; a < psys->totpart; a++, pa++) { - pa->boid = NULL; + pa->boid = nullptr; } } BLO_read_data_address(reader, &psys->fluid_springs); BLO_read_data_address(reader, &psys->child); - psys->effectors = NULL; + psys->effectors = nullptr; BLO_read_list(reader, &psys->targets); - psys->edit = NULL; - psys->free_edit = NULL; - psys->pathcache = NULL; - psys->childcache = NULL; + psys->edit = nullptr; + psys->free_edit = nullptr; + psys->pathcache = nullptr; + psys->childcache = nullptr; BLI_listbase_clear(&psys->pathcachebufs); BLI_listbase_clear(&psys->childcachebufs); - psys->pdd = NULL; + psys->pdd = nullptr; if (psys->clmd) { BLO_read_data_address(reader, &psys->clmd); - psys->clmd->clothObject = NULL; - psys->clmd->hairdata = NULL; + psys->clmd->clothObject = nullptr; + psys->clmd->hairdata = nullptr; BLO_read_data_address(reader, &psys->clmd->sim_parms); BLO_read_data_address(reader, &psys->clmd->coll_parms); if (psys->clmd->sim_parms) { - psys->clmd->sim_parms->effector_weights = NULL; + psys->clmd->sim_parms->effector_weights = nullptr; if (psys->clmd->sim_parms->presets > 10) { psys->clmd->sim_parms->presets = 0; } } - psys->hair_in_mesh = psys->hair_out_mesh = NULL; - psys->clmd->solver_result = NULL; + psys->hair_in_mesh = psys->hair_out_mesh = nullptr; + psys->clmd->solver_result = nullptr; } BKE_ptcache_blend_read_data(reader, &psys->ptcaches, &psys->pointcache, 0); @@ -5416,11 +5436,11 @@ void BKE_particle_system_blend_read_data(BlendDataReader *reader, ListBase *part psys->clmd->point_cache = psys->pointcache; } - psys->tree = NULL; - psys->bvhtree = NULL; + psys->tree = nullptr; + psys->bvhtree = nullptr; - psys->orig_psys = NULL; - psys->batch_cache = NULL; + psys->orig_psys = nullptr; + psys->batch_cache = nullptr; } } @@ -5444,9 +5464,9 @@ void BKE_particle_system_blend_read_lib(BlendLibReader *reader, /* XXX(@campbellbarton): from reading existing code this seems correct but intended usage * of point-cache with cloth should be added in #ParticleSystem. */ psys->clmd->point_cache = psys->pointcache; - psys->clmd->ptcaches.first = psys->clmd->ptcaches.last = NULL; + psys->clmd->ptcaches.first = psys->clmd->ptcaches.last = nullptr; BLO_read_id_address(reader, id->lib, &psys->clmd->coll_parms->group); - psys->clmd->modifier.error = NULL; + psys->clmd->modifier.error = nullptr; } } else {