[Bf-blender-cvs] [407f11c55f6] master: Cleanup: Move object_vgroup.c to C++

Hans Goudey noreply at git.blender.org
Sun Aug 14 20:33:03 CEST 2022


Commit: 407f11c55f6de066960f6193dc48df4cd4ca4417
Author: Hans Goudey
Date:   Sun Aug 14 14:32:54 2022 -0400
Branches: master
https://developer.blender.org/rB407f11c55f6de066960f6193dc48df4cd4ca4417

Cleanup: Move object_vgroup.c to C++

===================================================================

M	source/blender/editors/include/ED_mesh.h
M	source/blender/editors/object/CMakeLists.txt
M	source/blender/editors/object/object_intern.h
R090	source/blender/editors/object/object_vgroup.c	source/blender/editors/object/object_vgroup.cc
M	source/blender/makesdna/DNA_scene_types.h

===================================================================

diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index 71ddffca8a9..a1c1c816d4c 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -448,7 +448,7 @@ void ED_mesh_mirrtopo_init(struct BMEditMesh *em,
                            bool skip_em_vert_array_init);
 void ED_mesh_mirrtopo_free(MirrTopoStore_t *mesh_topo_store);
 
-/* object_vgroup.c */
+/* object_vgroup.cc */
 
 #define WEIGHT_REPLACE 1
 #define WEIGHT_ADD 2
diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt
index a2f993c92b9..d05738ca27c 100644
--- a/source/blender/editors/object/CMakeLists.txt
+++ b/source/blender/editors/object/CMakeLists.txt
@@ -53,7 +53,7 @@ set(SRC
   object_shapekey.c
   object_transform.cc
   object_utils.c
-  object_vgroup.c
+  object_vgroup.cc
   object_volume.c
   object_warp.c
 
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index b5862d4d957..229f8aace5a 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -259,7 +259,7 @@ void CONSTRAINT_OT_objectsolver_set_inverse(struct wmOperatorType *ot);
 void CONSTRAINT_OT_objectsolver_clear_inverse(struct wmOperatorType *ot);
 void CONSTRAINT_OT_followpath_path_animate(struct wmOperatorType *ot);
 
-/* object_vgroup.c */
+/* object_vgroup.cc */
 
 void OBJECT_OT_vertex_group_add(struct wmOperatorType *ot);
 void OBJECT_OT_vertex_group_remove(struct wmOperatorType *ot);
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.cc
similarity index 90%
rename from source/blender/editors/object/object_vgroup.c
rename to source/blender/editors/object/object_vgroup.cc
index eb5aaf7ef61..f4f5b31e86a 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.cc
@@ -5,9 +5,9 @@
  * \ingroup edobj
  */
 
-#include <math.h>
-#include <stddef.h>
-#include <string.h>
+#include <cmath>
+#include <cstddef>
+#include <cstring>
 
 #include "MEM_guardedalloc.h"
 
@@ -21,14 +21,15 @@
 #include "DNA_scene_types.h"
 #include "DNA_workspace_types.h"
 
-#include "BLI_alloca.h"
 #include "BLI_array.h"
+#include "BLI_array.hh"
 #include "BLI_bitmap.h"
 #include "BLI_blenlib.h"
 #include "BLI_listbase.h"
 #include "BLI_math.h"
 #include "BLI_utildefines.h"
 #include "BLI_utildefines_stack.h"
+#include "BLI_vector.hh"
 
 #include "BKE_context.h"
 #include "BKE_customdata.h"
@@ -74,7 +75,7 @@ static bool vertex_group_supported_poll_ex(bContext *C, const Object *ob);
 
 static bool object_array_for_wpaint_filter(const Object *ob, void *user_data)
 {
-  bContext *C = user_data;
+  bContext *C = static_cast<bContext *>(user_data);
   if (vertex_group_supported_poll_ex(C, ob)) {
     return true;
   }
@@ -100,7 +101,7 @@ static bool vertex_group_use_vert_sel(Object *ob)
 
 static Lattice *vgroup_edit_lattice(Object *ob)
 {
-  Lattice *lt = ob->data;
+  Lattice *lt = static_cast<Lattice *>(ob->data);
   BLI_assert(ob->type == OB_LATTICE);
   return (lt->editlatt) ? lt->editlatt->latt : lt;
 }
@@ -115,7 +116,7 @@ bool ED_vgroup_sync_from_pose(Object *ob)
 {
   Object *armobj = BKE_object_pose_armature_get(ob);
   if (armobj && (armobj->mode & OB_MODE_POSE)) {
-    struct bArmature *arm = armobj->data;
+    bArmature *arm = static_cast<bArmature *>(armobj->data);
     if (arm->act_bone) {
       int def_num = BKE_object_defgroup_name_index(ob, arm->act_bone->name);
       if (def_num != -1) {
@@ -151,7 +152,7 @@ bool ED_vgroup_parray_alloc(ID *id,
                             const bool use_vert_sel)
 {
   *dvert_tot = 0;
-  *dvert_arr = NULL;
+  *dvert_arr = nullptr;
 
   if (id) {
     switch (GS(id->name)) {
@@ -172,21 +173,23 @@ bool ED_vgroup_parray_alloc(ID *id,
 
           i = em->bm->totvert;
 
-          *dvert_arr = MEM_mallocN(sizeof(void *) * i, "vgroup parray from me");
+          *dvert_arr = static_cast<MDeformVert **>(MEM_mallocN(sizeof(void *) * i, __func__));
           *dvert_tot = i;
 
           i = 0;
           if (use_vert_sel) {
             BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
               (*dvert_arr)[i] = BM_elem_flag_test(eve, BM_ELEM_SELECT) ?
-                                    BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset) :
-                                    NULL;
+                                    static_cast<MDeformVert *>(
+                                        BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset)) :
+                                    nullptr;
               i++;
             }
           }
           else {
             BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
-              (*dvert_arr)[i] = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
+              (*dvert_arr)[i] = static_cast<MDeformVert *>(
+                  BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset));
               i++;
             }
           }
@@ -198,11 +201,12 @@ bool ED_vgroup_parray_alloc(ID *id,
           MDeformVert *dvert = me->dvert;
 
           *dvert_tot = me->totvert;
-          *dvert_arr = MEM_mallocN(sizeof(void *) * me->totvert, "vgroup parray from me");
+          *dvert_arr = static_cast<MDeformVert **>(
+              MEM_mallocN(sizeof(void *) * me->totvert, __func__));
 
           if (use_vert_sel) {
             for (int i = 0; i < me->totvert; i++) {
-              (*dvert_arr)[i] = (mvert[i].flag & SELECT) ? &dvert[i] : NULL;
+              (*dvert_arr)[i] = (mvert[i].flag & SELECT) ? &dvert[i] : nullptr;
             }
           }
           else {
@@ -222,11 +226,12 @@ bool ED_vgroup_parray_alloc(ID *id,
         if (lt->dvert) {
           BPoint *def = lt->def;
           *dvert_tot = lt->pntsu * lt->pntsv * lt->pntsw;
-          *dvert_arr = MEM_mallocN(sizeof(void *) * (*dvert_tot), "vgroup parray from me");
+          *dvert_arr = static_cast<MDeformVert **>(
+              MEM_mallocN(sizeof(void *) * (*dvert_tot), __func__));
 
           if (use_vert_sel) {
             for (int i = 0; i < *dvert_tot; i++) {
-              (*dvert_arr)[i] = (def->f1 & SELECT) ? &lt->dvert[i] : NULL;
+              (*dvert_arr)[i] = (def->f1 & SELECT) ? &lt->dvert[i] : nullptr;
             }
           }
           else {
@@ -255,11 +260,12 @@ void ED_vgroup_parray_mirror_sync(Object *ob,
                                   const int vgroup_tot)
 {
   BMEditMesh *em = BKE_editmesh_from_object(ob);
-  MDeformVert **dvert_array_all = NULL;
+  MDeformVert **dvert_array_all = nullptr;
   int dvert_tot_all;
 
   /* get an array of all verts, not only selected */
-  if (ED_vgroup_parray_alloc(ob->data, &dvert_array_all, &dvert_tot_all, false) == false) {
+  if (ED_vgroup_parray_alloc(
+          static_cast<ID *>(ob->data), &dvert_array_all, &dvert_tot_all, false) == false) {
     BLI_assert(0);
     return;
   }
@@ -271,10 +277,10 @@ void ED_vgroup_parray_mirror_sync(Object *ob,
   const int *flip_map = BKE_object_defgroup_flip_map(ob, &flip_map_len, true);
 
   for (int i_src = 0; i_src < dvert_tot; i_src++) {
-    if (dvert_array[i_src] != NULL) {
+    if (dvert_array[i_src] != nullptr) {
       /* its selected, check if its mirror exists */
       int i_dst = ED_mesh_mirror_get_vert(ob, i_src);
-      if (i_dst != -1 && dvert_array_all[i_dst] != NULL) {
+      if (i_dst != -1 && dvert_array_all[i_dst] != nullptr) {
         /* we found a match! */
         const MDeformVert *dv_src = dvert_array[i_src];
         MDeformVert *dv_dst = dvert_array_all[i_dst];
@@ -294,11 +300,12 @@ void ED_vgroup_parray_mirror_sync(Object *ob,
 void ED_vgroup_parray_mirror_assign(Object *ob, MDeformVert **dvert_array, const int dvert_tot)
 {
   BMEditMesh *em = BKE_editmesh_from_object(ob);
-  MDeformVert **dvert_array_all = NULL;
+  MDeformVert **dvert_array_all = nullptr;
   int dvert_tot_all;
 
   /* get an array of all verts, not only selected */
-  if (ED_vgroup_parray_alloc(ob->data, &dvert_array_all, &dvert_tot_all, false) == false) {
+  if (ED_vgroup_parray_alloc(
+          static_cast<ID *>(ob->data), &dvert_array_all, &dvert_tot_all, false) == false) {
     BLI_assert(0);
     return;
   }
@@ -308,7 +315,7 @@ void ED_vgroup_parray_mirror_assign(Object *ob, MDeformVert **dvert_array, const
   }
 
   for (int i = 0; i < dvert_tot; i++) {
-    if (dvert_array[i] == NULL) {
+    if (dvert_array[i] == nullptr) {
       /* its unselected, check if its mirror is */
       int i_sel = ED_mesh_mirror_get_vert(ob, i);
       if ((i_sel != -1) && (i_sel != i) && (dvert_array[i_sel])) {
@@ -357,8 +364,8 @@ void ED_vgroup_parray_remove_zero(MDeformVert **dvert_array,
 
 bool ED_vgroup_array_copy(Object *ob, Object *ob_from)
 {
-  MDeformVert **dvert_array_from = NULL, **dvf;
-  MDeformVert **dvert_array = NULL, **dv;
+  MDeformVert **dvert_array_from = nullptr, **dvf;
+  MDeformVert **dvert_array = nullptr, **dv;
   int dvert_tot_from;
   int dvert_tot;
   int i;
@@ -378,17 +385,18 @@ bool ED_vgroup_array_copy(Object *ob, Object *ob_from)
   /* In case we copy vgroup between two objects using same data,
    * we only have to care about object side of things. */
   if (ob->data != ob_from->data) {
-    ED_vgroup_parray_alloc(ob_from->data, &dvert_array_from, &dvert_tot_from, false);
-    ED_vgroup_parray_alloc(ob->data, &dvert_array, &dvert_tot, false);
+    ED_vgroup_parray_alloc(
+        static_cast<ID *>(ob_from->data), &dvert_array_from, &dvert_tot_from, false);
+    ED_vgroup_parray_alloc(static_cast<ID *>(ob->data), &dvert_array, &dvert_tot, false);
 
-    if ((dvert_array == NULL) && (dvert_array_from != NULL) &&
-        BKE_object_defgroup_data_create(ob->data)) {
-      ED_vgroup_parray_alloc(ob->data, &dvert_array, &dvert_tot, false);
+    if ((dvert_array == nullptr) && (dvert_array_from != nullptr) &&
+        BKE_object_defgroup_data_create(static_cast<ID *>(ob->data))) {
+      ED_vgroup_parray_alloc(static_cast<ID *>(ob->data), &dvert_array, &dvert_tot, false);
       new_vgroup = true;
     }
 
-    if (dvert_tot == 0 || (dvert_tot != dvert_tot_from) || dvert_array_from == NULL ||
-        dvert_array == NULL) {
+    if (dvert_t

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list