Commit: f2bb044fdba43139c26d3ce2de41965af1dfab0f Author: Hans Goudey Date: Sat Jan 21 15:44:58 2023 -0600 Branches: master https://developer.blender.org/rBf2bb044fdba43139c26d3ce2de41965af1dfab0f
Cleanup: Move six mesh-related files to C++ For continued refactoring of the Mesh data structure. See T103343. =================================================================== M source/blender/blenkernel/CMakeLists.txt R088 source/blender/blenkernel/intern/deform.c source/blender/blenkernel/intern/deform.cc M source/blender/editors/object/CMakeLists.txt R088 source/blender/editors/object/object_bake.c source/blender/editors/object/object_bake.cc R090 source/blender/editors/object/object_bake_api.c source/blender/editors/object/object_bake_api.cc M source/blender/editors/space_view3d/CMakeLists.txt R078 source/blender/editors/space_view3d/drawobject.c source/blender/editors/space_view3d/drawobject.cc M source/blender/editors/uvedit/CMakeLists.txt R086 source/blender/editors/uvedit/uvedit_unwrap_ops.c source/blender/editors/uvedit/uvedit_unwrap_ops.cc =================================================================== diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 8a714d8d911..8d6fe6c3cf7 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -119,7 +119,7 @@ set(SRC intern/customdata.cc intern/customdata_file.c intern/data_transfer.cc - intern/deform.c + intern/deform.cc intern/displist.cc intern/dynamicpaint.cc intern/editlattice.c diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.cc similarity index 88% rename from source/blender/blenkernel/intern/deform.c rename to source/blender/blenkernel/intern/deform.cc index 8bc98270054..a01c6d724a4 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.cc @@ -5,11 +5,11 @@ * \ingroup bke */ -#include <ctype.h> -#include <math.h> -#include <stddef.h> -#include <stdlib.h> -#include <string.h> +#include <cctype> +#include <cmath> +#include <cstddef> +#include <cstdlib> +#include <cstring> #include "MEM_guardedalloc.h" @@ -46,7 +46,7 @@ bDeformGroup *BKE_object_defgroup_new(Object *ob, const char *name) BLI_assert(OB_TYPE_SUPPORT_VGROUP(ob->type)); - defgroup = MEM_callocN(sizeof(bDeformGroup), __func__); + defgroup = MEM_cnew<bDeformGroup>(__func__); BLI_strncpy(defgroup->name, name, sizeof(defgroup->name)); @@ -62,31 +62,26 @@ bDeformGroup *BKE_object_defgroup_new(Object *ob, const char *name) void BKE_defgroup_copy_list(ListBase *outbase, const ListBase *inbase) { - bDeformGroup *defgroup, *defgroupn; - BLI_listbase_clear(outbase); - - for (defgroup = inbase->first; defgroup; defgroup = defgroup->next) { - defgroupn = BKE_defgroup_duplicate(defgroup); + LISTBASE_FOREACH (const bDeformGroup *, defgroup, inbase) { + bDeformGroup *defgroupn = BKE_defgroup_duplicate(defgroup); BLI_addtail(outbase, defgroupn); } } bDeformGroup *BKE_defgroup_duplicate(const bDeformGroup *ingroup) { - bDeformGroup *outgroup; - if (!ingroup) { BLI_assert(0); - return NULL; + return nullptr; } - outgroup = MEM_callocN(sizeof(bDeformGroup), "copy deformGroup"); + bDeformGroup *outgroup = MEM_cnew<bDeformGroup>(__func__); /* For now, just copy everything over. */ memcpy(outgroup, ingroup, sizeof(bDeformGroup)); - outgroup->next = outgroup->prev = NULL; + outgroup->next = outgroup->prev = nullptr; return outgroup; } @@ -132,10 +127,10 @@ void BKE_defvert_copy(MDeformVert *dvert_dst, const MDeformVert *dvert_src) } if (dvert_src->totweight) { - dvert_dst->dw = MEM_dupallocN(dvert_src->dw); + dvert_dst->dw = static_cast<MDeformWeight *>(MEM_dupallocN(dvert_src->dw)); } else { - dvert_dst->dw = NULL; + dvert_dst->dw = nullptr; } dvert_dst->totweight = dvert_src->totweight; @@ -157,7 +152,7 @@ void BKE_defvert_copy_index(MDeformVert *dvert_dst, dw_dst->weight = dw_src->weight; } else { - /* Source was NULL, assign zero (could also remove). */ + /* Source was nullptr, assign zero (could also remove). */ dw_dst = BKE_defvert_find_index(dvert_dst, defgroup_dst); if (dw_dst) { @@ -307,7 +302,7 @@ void BKE_defvert_normalize_lock_single(MDeformVert *dvert, } } else { - MDeformWeight *dw_lock = NULL; + MDeformWeight *dw_lock = nullptr; MDeformWeight *dw; uint i; float tot_weight = 0.0f; @@ -423,7 +418,7 @@ void BKE_defvert_flip_merged(MDeformVert *dvert, const int *flip_map, const int for (dw = dvert->dw, i = 0; i < totweight; dw++, i++) { if (dw->def_nr < flip_map_num) { if (flip_map[dw->def_nr] >= 0) { - /* error checkers complain of this but we'll never get NULL return */ + /* error checkers complain of this but we'll never get nullptr return */ dw_cpy = BKE_defvert_ensure_index(dvert, flip_map[dw->def_nr]); dw = &dvert->dw[i]; /* in case array got realloced */ @@ -441,7 +436,7 @@ void BKE_defvert_flip_merged(MDeformVert *dvert, const int *flip_map, const int bool BKE_object_supports_vertex_groups(const Object *ob) { const ID *id = (const ID *)ob->data; - if (id == NULL) { + if (id == nullptr) { return false; } @@ -467,7 +462,7 @@ const ListBase *BKE_id_defgroup_list_get(const ID *id) BLI_assert_unreachable(); } } - return NULL; + return nullptr; } static const int *object_defgroup_active_index_get_p(const Object *ob) @@ -487,7 +482,7 @@ static const int *object_defgroup_active_index_get_p(const Object *ob) return &gpd->vertex_group_active_index; } } - return NULL; + return nullptr; } ListBase *BKE_id_defgroup_list_get_mutable(ID *id) @@ -498,38 +493,38 @@ ListBase *BKE_id_defgroup_list_get_mutable(ID *id) bDeformGroup *BKE_object_defgroup_find_name(const Object *ob, const char *name) { - if (name == NULL || name[0] == '\0') { - return NULL; + if (name == nullptr || name[0] == '\0') { + return nullptr; } const ListBase *defbase = BKE_object_defgroup_list(ob); - return BLI_findstring(defbase, name, offsetof(bDeformGroup, name)); + return static_cast<bDeformGroup *>(BLI_findstring(defbase, name, offsetof(bDeformGroup, name))); } int BKE_id_defgroup_name_index(const ID *id, const char *name) { int index; - if (!BKE_id_defgroup_name_find(id, name, &index, NULL)) { + if (!BKE_id_defgroup_name_find(id, name, &index, nullptr)) { return -1; } return index; } -bool BKE_id_defgroup_name_find(const struct ID *id, +bool BKE_id_defgroup_name_find(const ID *id, const char *name, int *r_index, - struct bDeformGroup **r_group) + bDeformGroup **r_group) { - if (name == NULL || name[0] == '\0') { + if (name == nullptr || name[0] == '\0') { return false; } const ListBase *defbase = BKE_id_defgroup_list_get(id); int index; LISTBASE_FOREACH_INDEX (bDeformGroup *, group, defbase, index) { if (STREQ(name, group->name)) { - if (r_index != NULL) { + if (r_index != nullptr) { *r_index = index; } - if (r_group != NULL) { + if (r_group != nullptr) { *r_group = group; } return true; @@ -582,19 +577,19 @@ static int *object_defgroup_unlocked_flip_map_ex(const Object *ob, *r_flip_map_num = defbase_num; if (defbase_num == 0) { - return NULL; + return nullptr; } bDeformGroup *dg; char name_flip[sizeof(dg->name)]; int i, flip_num; - int *map = MEM_mallocN(defbase_num * sizeof(int), __func__); + int *map = static_cast<int *>(MEM_mallocN(defbase_num * sizeof(int), __func__)); for (i = 0; i < defbase_num; i++) { map[i] = -1; } - for (dg = defbase->first, i = 0; dg; dg = dg->next, i++) { + for (dg = static_cast<bDeformGroup *>(defbase->first), i = 0; dg; dg = dg->next, i++) { if (map[i] == -1) { /* may be calculated previously */ /* in case no valid value is found, use this */ @@ -642,18 +637,17 @@ int *BKE_object_defgroup_flip_map_single(const Object *ob, *r_flip_map_num = defbase_num; if (defbase_num == 0) { - return NULL; + return nullptr; } - bDeformGroup *dg; - char name_flip[sizeof(dg->name)]; - int i, flip_num, *map = MEM_mallocN(defbase_num * sizeof(int), __func__); + char name_flip[sizeof(bDeformGroup::name)]; + int i, flip_num, *map = static_cast<int *>(MEM_mallocN(defbase_num * sizeof(int), __func__)); for (i = 0; i < defbase_num; i++) { map[i] = use_default ? i : -1; } - dg = BLI_findlink(defbase, defgroup); + bDeformGroup *dg = static_cast<bDeformGroup *>(BLI_findlink(defbase, defgroup)); BLI_string_flip_side_name(name_flip, dg->name, false, sizeof(name_flip)); if (!STREQ(name_flip, dg->name)) { @@ -671,7 +665,7 @@ int *BKE_object_defgroup_flip_map_single(const Object *ob, int BKE_object_defgroup_flip_index(const Object *ob, int index, const bool use_default) { const ListBase *defbase = BKE_object_defgroup_list(ob); - bDeformGroup *dg = BLI_findlink(defbase, index); + bDeformGroup *dg = static_cast<bDeformGroup *>(BLI_findlink(defbase, index)); int flip_index = -1; if (dg) { @@ -691,7 +685,7 @@ static bool defgroup_find_name_dupe(const char *name, bDeformGroup *dg, Object * const ListBase *defbase = BKE_object_defgroup_list(ob); bDeformGroup *curdef; - for (curdef = defbase->first; curdef; curdef = curdef->next) { + for (curdef = static_cast<bDeformGroup *>(defbase->first); curdef; curdef = curdef->next) { if (dg != curdef) { if (STREQ(curdef->name, name)) { return true; @@ -702,46 +696,42 @@ static bool defgroup_find_name_dupe(const char *name, bDeformGroup *dg, Object * return false; } +struct DeformGroupUniqueNameData { + Object *ob; + bDeformGroup *dg; +}; + static bool defgroup_unique_check(void *arg, const char *name) { - struct { - Object *ob; - void *dg; - } *data = arg; + DeformGroupUniqueNameData *data = static_cast<DeformGroupUniqueNameData *>(arg); return defgroup_find_name_dupe(name, data->dg, data->ob); } void BKE_object_defgroup_unique_name(bDeformGroup *dg, Object *ob) { - struct { - Object *ob; - void *dg; - } data; - data.ob = ob; - data.dg = dg; - + DeformGroupUniqueNameData data{ob, dg}; BLI_uniquename_cb(defgroup_unique_check, &data, DATA_("Group"), '.', dg->name, sizeof(dg->name)); } -float BKE_defvert_find_weight(const struct MDeformVert *dvert, const int defgroup) +float BKE_defvert_find_weight(const MDeformVert *dvert, const int defgroup) { MDeformWeight *dw = BKE_defvert_find_index(dvert, defgroup); return dw ? dw->weight : 0.0f; } -float BKE_defvert_array_find_weight_safe(const struct MDeformVert *dvert, +float BKE_defvert_array_find_weight_safe(const MDeformVert *dvert, const int index, const int defgroup) { /* Invalid defgroup index means the vgroup selected is invalid, * does not exist, in that case it is OK to return 1.0 * (i.e. maximum weight, as if no vgroup was selected @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs