[Bf-blender-cvs] [db054b447de] master: Cleanup: Move view3d_select.c to C++

Hans Goudey noreply at git.blender.org
Wed Aug 17 15:54:26 CEST 2022


Commit: db054b447de3636dc4e0f973e16ed22d39e85ce3
Author: Hans Goudey
Date:   Wed Aug 17 09:54:01 2022 -0400
Branches: master
https://developer.blender.org/rBdb054b447de3636dc4e0f973e16ed22d39e85ce3

Cleanup: Move view3d_select.c to C++

Almost entirely adding casting and standard clang tidy changes.
Also switch to `blender::Vector` instead of the macro-based `BLI_array`.

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

M	source/blender/blenkernel/BKE_layer.h
M	source/blender/editors/include/ED_view3d.h
M	source/blender/editors/space_view3d/CMakeLists.txt
M	source/blender/editors/space_view3d/view3d_intern.h
R089	source/blender/editors/space_view3d/view3d_select.c	source/blender/editors/space_view3d/view3d_select.cc
M	source/blender/makesdna/DNA_scene_types.h

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

diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index d2cfb788ca2..c42dd246030 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -354,13 +354,12 @@ void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter);
 
 #define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
   { \
-    struct ObjectsInModeIteratorData data_ = { \
-        .object_mode = _object_mode, \
-        .object_type = _object_type, \
-        .view_layer = _view_layer, \
-        .v3d = _v3d, \
-        .base_active = _view_layer->basact, \
-    }; \
+    struct ObjectsInModeIteratorData data_ = {NULL}; \
+    data_.object_mode = _object_mode; \
+    data_.object_type = _object_type; \
+    data_.view_layer = _view_layer; \
+    data_.v3d = _v3d; \
+    data_.base_active = _view_layer->basact; \
     ITER_BEGIN (BKE_view_layer_bases_in_mode_iterator_begin, \
                 BKE_view_layer_bases_in_mode_iterator_next, \
                 BKE_view_layer_bases_in_mode_iterator_end, \
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index bb95ea97c1c..d49956e03b2 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -950,7 +950,7 @@ int view3d_opengl_select_with_id_filter(struct ViewContext *vc,
                                         eV3DSelectObjectFilter select_filter,
                                         uint select_id);
 
-/* view3d_select.c */
+/* view3d_select.cc */
 
 float ED_view3d_select_dist_px(void);
 void ED_view3d_viewcontext_init(struct bContext *C,
diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt
index 2b10e5cd17a..100266f4433 100644
--- a/source/blender/editors/space_view3d/CMakeLists.txt
+++ b/source/blender/editors/space_view3d/CMakeLists.txt
@@ -60,7 +60,7 @@ set(SRC
   view3d_ops.c
   view3d_placement.c
   view3d_project.c
-  view3d_select.c
+  view3d_select.cc
   view3d_snap.c
   view3d_utils.c
   view3d_view.c
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 53fc450107a..4c9e2595023 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -9,6 +9,10 @@
 
 #include "ED_view3d.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* internal exports only */
 
 struct ARegion;
@@ -83,7 +87,7 @@ void view3d_depths_rect_create(struct ARegion *region, struct rcti *rect, struct
  */
 float view3d_depth_near(struct ViewDepths *d);
 
-/* view3d_select.c */
+/* view3d_select.cc */
 
 void VIEW3D_OT_select(struct wmOperatorType *ot);
 void VIEW3D_OT_select_circle(struct wmOperatorType *ot);
@@ -241,3 +245,7 @@ void VIEW3D_GGT_placement(struct wmGizmoGroupType *gzgt);
 extern uchar view3d_camera_border_hack_col[3];
 extern bool view3d_camera_border_hack_test;
 #endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.cc
similarity index 89%
rename from source/blender/editors/space_view3d/view3d_select.c
rename to source/blender/editors/space_view3d/view3d_select.cc
index 763848574ed..085320a0e72 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.cc
@@ -5,10 +5,10 @@
  * \ingroup spview3d
  */
 
-#include <float.h>
-#include <math.h>
-#include <stdio.h>
-#include <string.h>
+#include <cfloat>
+#include <cmath>
+#include <cstdio>
+#include <cstring>
 
 #include "DNA_action_types.h"
 #include "DNA_armature_types.h"
@@ -23,7 +23,6 @@
 
 #include "MEM_guardedalloc.h"
 
-#include "BLI_array.h"
 #include "BLI_bitmap.h"
 #include "BLI_lasso_2d.h"
 #include "BLI_linklist.h"
@@ -32,6 +31,7 @@
 #include "BLI_rect.h"
 #include "BLI_string.h"
 #include "BLI_utildefines.h"
+#include "BLI_vector.hh"
 
 #ifdef __BIG_ENDIAN__
 #  include "BLI_endian_switch.h"
@@ -205,14 +205,14 @@ static void editselect_buf_cache_init(ViewContext *vc, short select_mode)
   }
 }
 
-static void editselect_buf_cache_free(struct EditSelectBuf_Cache *esel)
+static void editselect_buf_cache_free(EditSelectBuf_Cache *esel)
 {
   MEM_SAFE_FREE(esel->select_bitmap);
 }
 
 static void editselect_buf_cache_free_voidp(void *esel_voidp)
 {
-  editselect_buf_cache_free(esel_voidp);
+  editselect_buf_cache_free(static_cast<EditSelectBuf_Cache *>(esel_voidp));
   MEM_freeN(esel_voidp);
 }
 
@@ -220,7 +220,7 @@ static void editselect_buf_cache_init_with_generic_userdata(wmGenericUserData *w
                                                             ViewContext *vc,
                                                             short select_mode)
 {
-  struct EditSelectBuf_Cache *esel = MEM_callocN(sizeof(*esel), __func__);
+  EditSelectBuf_Cache *esel = MEM_cnew<EditSelectBuf_Cache>(__func__);
   wm_userdata->data = esel;
   wm_userdata->free_fn = editselect_buf_cache_free_voidp;
   wm_userdata->use_free = true;
@@ -233,7 +233,7 @@ static void editselect_buf_cache_init_with_generic_userdata(wmGenericUserData *w
 /** \name Internal Edit-Mesh Utilities
  * \{ */
 
-static bool edbm_backbuf_check_and_select_verts(struct EditSelectBuf_Cache *esel,
+static bool edbm_backbuf_check_and_select_verts(EditSelectBuf_Cache *esel,
                                                 Depsgraph *depsgraph,
                                                 Object *ob,
                                                 BMEditMesh *em,
@@ -265,7 +265,7 @@ static bool edbm_backbuf_check_and_select_verts(struct EditSelectBuf_Cache *esel
   return changed;
 }
 
-static bool edbm_backbuf_check_and_select_edges(struct EditSelectBuf_Cache *esel,
+static bool edbm_backbuf_check_and_select_edges(EditSelectBuf_Cache *esel,
                                                 Depsgraph *depsgraph,
                                                 Object *ob,
                                                 BMEditMesh *em,
@@ -297,7 +297,7 @@ static bool edbm_backbuf_check_and_select_edges(struct EditSelectBuf_Cache *esel
   return changed;
 }
 
-static bool edbm_backbuf_check_and_select_faces(struct EditSelectBuf_Cache *esel,
+static bool edbm_backbuf_check_and_select_faces(EditSelectBuf_Cache *esel,
                                                 Depsgraph *depsgraph,
                                                 Object *ob,
                                                 BMEditMesh *em,
@@ -331,7 +331,7 @@ static bool edbm_backbuf_check_and_select_faces(struct EditSelectBuf_Cache *esel
 
 /* object mode, edbm_ prefix is confusing here, rename? */
 static bool edbm_backbuf_check_and_select_verts_obmode(Mesh *me,
-                                                       struct EditSelectBuf_Cache *esel,
+                                                       EditSelectBuf_Cache *esel,
                                                        const eSelectOp sel_op)
 {
   MVert *mv = me->mvert;
@@ -360,7 +360,7 @@ static bool edbm_backbuf_check_and_select_verts_obmode(Mesh *me,
 
 /* object mode, edbm_ prefix is confusing here, rename? */
 static bool edbm_backbuf_check_and_select_faces_obmode(Mesh *me,
-                                                       struct EditSelectBuf_Cache *esel,
+                                                       EditSelectBuf_Cache *esel,
                                                        const eSelectOp sel_op)
 {
   MPoly *mpoly = me->mpoly;
@@ -393,7 +393,7 @@ static bool edbm_backbuf_check_and_select_faces_obmode(Mesh *me,
 /** \name Lasso Select
  * \{ */
 
-typedef struct LassoSelectUserData {
+struct LassoSelectUserData {
   ViewContext *vc;
   const rcti *rect;
   const rctf *rect_fl;
@@ -407,7 +407,7 @@ typedef struct LassoSelectUserData {
   int pass;
   bool is_done;
   bool is_changed;
-} LassoSelectUserData;
+};
 
 static void view3d_userdata_lassoselect_init(LassoSelectUserData *r_data,
                                              ViewContext *vc,
@@ -426,7 +426,7 @@ static void view3d_userdata_lassoselect_init(LassoSelectUserData *r_data,
   r_data->mcoords_len = mcoords_len;
   r_data->sel_op = sel_op;
   /* SELECT by default, but can be changed if needed (only few cases use and respect this). */
-  r_data->select_flag = SELECT;
+  r_data->select_flag = (eBezTriple_Flag)SELECT;
 
   /* runtime */
   r_data->pass = 0;
@@ -505,12 +505,12 @@ static bool edge_inside_rect(const rctf *rect, const float v1[2], const float v2
 }
 
 static void do_lasso_select_pose__do_tag(void *userData,
-                                         struct bPoseChannel *pchan,
+                                         bPoseChannel *pchan,
                                          const float screen_co_a[2],
                                          const float screen_co_b[2])
 {
-  LassoSelectUserData *data = userData;
-  const bArmature *arm = data->vc->obact->data;
+  LassoSelectUserData *data = static_cast<LassoSelectUserData *>(userData);
+  const bArmature *arm = static_cast<bArmature *>(data->vc->obact->data);
   if (!PBONE_SELECTABLE(arm, pchan->bone)) {
     return;
   }
@@ -531,7 +531,7 @@ static void do_lasso_tag_pose(ViewContext *vc,
   LassoSelectUserData data;
   rcti rect;
 
-  if ((ob->type != OB_ARMATURE) || (ob->pose == NULL)) {
+  if ((ob->type != OB_ARMATURE) || (ob->pose == nullptr)) {
     return;
   }
 
@@ -540,7 +540,8 @@ static void do_lasso_tag_pose(ViewContext *vc,
 
   BLI_lasso_boundbox(&rect, mcoords, mcoords_len);
 
-  view3d_userdata_lassoselect_init(&data, vc, &rect, mcoords, mcoords_len, 0);
+  view3d_userdata_lassoselect_init(
+      &data, vc, &rect, mcoords, mcoords_len, static_cast<eSelectOp>(0));
 
   ED_view3d_init_mats_rv3d(vc_tmp.obact, vc->rv3d);
 
@@ -564,7 +565,7 @@ static bool do_lasso_select_objects(ViewContext *vc,
     changed |= object_deselect_all_visible(vc->view_layer, vc->v3d);
   }
 
-  for (base = vc->view_layer->object_bases.first; base; base = base->next) {
+  for (base = static_cast<Base *>(vc->view_layer->object_bases.first); base; base = base->next) {
     i

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list