[Bf-blender-cvs] [1c70402c62a] master: Cleanup: Move three mesh editors files to C++

Hans Goudey noreply at git.blender.org
Sun May 15 20:41:18 CEST 2022


Commit: 1c70402c62adfead14d0c042e5d3299d42b81c5f
Author: Hans Goudey
Date:   Sun May 15 20:41:11 2022 +0200
Branches: master
https://developer.blender.org/rB1c70402c62adfead14d0c042e5d3299d42b81c5f

Cleanup: Move three mesh editors files to C++

Simplifies refactoring in D14685, allows use of better data structures.

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

M	source/blender/draw/DRW_select_buffer.h
M	source/blender/editors/include/ED_mesh.h
M	source/blender/editors/include/ED_view3d.h
M	source/blender/editors/mesh/CMakeLists.txt
R090	source/blender/editors/mesh/editface.c	source/blender/editors/mesh/editface.cc
R091	source/blender/editors/mesh/mesh_data.c	source/blender/editors/mesh/mesh_data.cc
M	source/blender/editors/mesh/mesh_intern.h
R087	source/blender/editors/mesh/meshtools.c	source/blender/editors/mesh/meshtools.cc

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

diff --git a/source/blender/draw/DRW_select_buffer.h b/source/blender/draw/DRW_select_buffer.h
index 324ebebfbe6..d15ec8bed56 100644
--- a/source/blender/draw/DRW_select_buffer.h
+++ b/source/blender/draw/DRW_select_buffer.h
@@ -9,6 +9,10 @@
 
 #include "BLI_sys_types.h" /* for bool and uint */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct ARegion;
 struct Base;
 struct Depsgraph;
@@ -133,3 +137,7 @@ uint DRW_select_buffer_find_nearest_to_point(struct Depsgraph *depsgraph,
                                              uint id_max,
                                              uint *dist);
 void DRW_select_buffer_context_create(struct Base **bases, uint bases_len, short select_mode);
+
+#ifdef __cplusplus
+}
+#endif
\ No newline at end of file
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index 59a24ed22b6..d69b2a47552 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -384,7 +384,7 @@ void ED_operatormacros_mesh(void);
  */
 void ED_keymap_mesh(struct wmKeyConfig *keyconf);
 
-/* editface.c */
+/* editface.cc */
 
 /**
  * Copy the face flags, most importantly selection from the mesh to the final derived mesh,
@@ -520,7 +520,7 @@ float ED_vgroup_vert_weight(struct Object *ob, struct bDeformGroup *dg, int vert
  */
 void ED_vgroup_vert_active_mirror(struct Object *ob, int def_nr);
 
-/* mesh_data.c */
+/* mesh_data.cc */
 
 void ED_mesh_verts_add(struct Mesh *mesh, struct ReportList *reports, int count);
 void ED_mesh_edges_add(struct Mesh *mesh, struct ReportList *reports, int count);
@@ -591,7 +591,7 @@ void EDBM_redo_state_restore_and_free(struct BMBackup *backup,
                                       bool recalc_looptri) ATTR_NONNULL(1, 2);
 void EDBM_redo_state_free(struct BMBackup *backup) ATTR_NONNULL(1);
 
-/* *** meshtools.c *** */
+/* *** meshtools.cc *** */
 
 int ED_mesh_join_objects_exec(struct bContext *C, struct wmOperator *op);
 int ED_mesh_shapes_join_objects_exec(struct bContext *C, struct wmOperator *op);
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index c6e261549a3..744f74bf25f 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -7,6 +7,8 @@
 
 #pragma once
 
+#include "BLI_utildefines.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -256,6 +258,7 @@ typedef enum {
    */
   V3D_PROJ_TEST_CLIP_CONTENT = (1 << 5),
 } eV3DProjTest;
+ENUM_OPERATORS(eV3DProjTest, V3D_PROJ_TEST_CLIP_CONTENT);
 
 #define V3D_PROJ_TEST_CLIP_DEFAULT \
   (V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN | V3D_PROJ_TEST_CLIP_NEAR)
diff --git a/source/blender/editors/mesh/CMakeLists.txt b/source/blender/editors/mesh/CMakeLists.txt
index ed09e5a6334..28ac913a3e3 100644
--- a/source/blender/editors/mesh/CMakeLists.txt
+++ b/source/blender/editors/mesh/CMakeLists.txt
@@ -24,7 +24,7 @@ set(INC
 )
 
 set(SRC
-  editface.c
+  editface.cc
   editmesh_add.c
   editmesh_add_gizmo.c
   editmesh_automerge.c
@@ -51,10 +51,10 @@ set(SRC
   editmesh_tools.c
   editmesh_undo.c
   editmesh_utils.c
-  mesh_data.c
+  mesh_data.cc
   mesh_mirror.c
   mesh_ops.c
-  meshtools.c
+  meshtools.cc
 
   mesh_intern.h
 )
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.cc
similarity index 90%
rename from source/blender/editors/mesh/editface.c
rename to source/blender/editors/mesh/editface.cc
index bf4ab788439..cb5d48d1023 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.cc
@@ -36,16 +36,16 @@
 
 /* own include */
 
-void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
+void paintface_flush_flags(bContext *C, Object *ob, short flag)
 {
   Mesh *me = BKE_mesh_from_object(ob);
   MPoly *polys, *mp_orig;
-  const int *index_array = NULL;
+  const int *index_array = nullptr;
   int totpoly;
 
   BLI_assert((flag & ~(SELECT | ME_HIDE)) == 0);
 
-  if (me == NULL) {
+  if (me == nullptr) {
     return;
   }
 
@@ -60,7 +60,7 @@ void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
   Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
   Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
 
-  if (ob_eval == NULL) {
+  if (ob_eval == nullptr) {
     return;
   }
 
@@ -68,7 +68,7 @@ void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
   Mesh *me_eval = (Mesh *)ob_eval->runtime.data_eval;
   bool updated = false;
 
-  if (me_orig != NULL && me_eval != NULL && me_orig->totpoly == me->totpoly) {
+  if (me_orig != nullptr && me_eval != nullptr && me_orig->totpoly == me->totpoly) {
     /* Update the COW copy of the mesh. */
     for (int i = 0; i < me->totpoly; i++) {
       me_orig->mpoly[i].flag = me->mpoly[i].flag;
@@ -79,7 +79,7 @@ void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
       updated = true;
     }
     /* Mesh polys => Final derived polys */
-    else if ((index_array = CustomData_get_layer(&me_eval->pdata, CD_ORIGINDEX))) {
+    else if ((index_array = (const int *)CustomData_get_layer(&me_eval->pdata, CD_ORIGINDEX))) {
       polys = me_eval->mpoly;
       totpoly = me_eval->totpoly;
 
@@ -104,10 +104,10 @@ void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
       BKE_mesh_batch_cache_dirty_tag(me_eval, BKE_MESH_BATCH_DIRTY_SELECT_PAINT);
     }
 
-    DEG_id_tag_update(ob->data, ID_RECALC_SELECT);
+    DEG_id_tag_update(static_cast<ID *>(ob->data), ID_RECALC_SELECT);
   }
   else {
-    DEG_id_tag_update(ob->data, ID_RECALC_COPY_ON_WRITE | ID_RECALC_SELECT);
+    DEG_id_tag_update(static_cast<ID *>(ob->data), ID_RECALC_COPY_ON_WRITE | ID_RECALC_SELECT);
   }
 
   WM_event_add_notifier(C, NC_GEOM | ND_SELECT, ob->data);
@@ -116,7 +116,7 @@ void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
 void paintface_hide(bContext *C, Object *ob, const bool unselected)
 {
   Mesh *me = BKE_mesh_from_object(ob);
-  if (me == NULL || me->totpoly == 0) {
+  if (me == nullptr || me->totpoly == 0) {
     return;
   }
 
@@ -141,7 +141,7 @@ void paintface_hide(bContext *C, Object *ob, const bool unselected)
 void paintface_reveal(bContext *C, Object *ob, const bool select)
 {
   Mesh *me = BKE_mesh_from_object(ob);
-  if (me == NULL || me->totpoly == 0) {
+  if (me == nullptr || me->totpoly == 0) {
     return;
   }
 
@@ -237,7 +237,7 @@ void paintface_select_linked(bContext *C, Object *ob, const int mval[2], const b
   uint index = (uint)-1;
 
   Mesh *me = BKE_mesh_from_object(ob);
-  if (me == NULL || me->totpoly == 0) {
+  if (me == nullptr || me->totpoly == 0) {
     return;
   }
 
@@ -255,7 +255,7 @@ void paintface_select_linked(bContext *C, Object *ob, const int mval[2], const b
 bool paintface_deselect_all_visible(bContext *C, Object *ob, int action, bool flush_flags)
 {
   Mesh *me = BKE_mesh_from_object(ob);
-  if (me == NULL) {
+  if (me == nullptr) {
     return false;
   }
 
@@ -337,12 +337,12 @@ bool paintface_minmax(Object *ob, float r_min[3], float r_max[3])
   return ok;
 }
 
-bool paintface_mouse_select(struct bContext *C,
+bool paintface_mouse_select(bContext *C,
                             const int mval[2],
-                            const struct SelectPick_Params *params,
+                            const SelectPick_Params *params,
                             Object *ob)
 {
-  MPoly *mpoly_sel = NULL;
+  MPoly *mpoly_sel = nullptr;
   uint index;
   bool changed = false;
   bool found = false;
@@ -414,11 +414,11 @@ void paintvert_flush_flags(Object *ob)
   Mesh *me = BKE_mesh_from_object(ob);
   Mesh *me_eval = BKE_object_get_evaluated_mesh(ob);
   MVert *mvert_eval, *mv;
-  const int *index_array = NULL;
+  const int *index_array = nullptr;
   int totvert;
   int i;
 
-  if (me == NULL) {
+  if (me == nullptr) {
     return;
   }
 
@@ -426,11 +426,11 @@ void paintvert_flush_flags(Object *ob)
    * since this could become slow for realtime updates (circle-select for eg) */
   BKE_mesh_flush_select_from_verts(me);
 
-  if (me_eval == NULL) {
+  if (me_eval == nullptr) {
     return;
   }
 
-  index_array = CustomData_get_layer(&me_eval->vdata, CD_ORIGINDEX);
+  index_array = (const int *)CustomData_get_layer(&me_eval->vdata, CD_ORIGINDEX);
 
   mvert_eval = me_eval->mvert;
   totvert = me_eval->totvert;
@@ -455,16 +455,16 @@ void paintvert_flush_flags(Object *ob)
   BKE_mesh_batch_cache_dirty_tag(me, BKE_MESH_BATCH_DIRTY_ALL);
 }
 
-void paintvert_tag_select_update(struct bContext *C, struct Object *ob)
+void paintvert_tag_select_update(bContext *C, Object *ob)
 {
-  DEG_id_tag_update(ob->data, ID_RECALC_COPY_ON_WRITE | ID_RECALC_SELECT);
+  DEG_id_tag_update(static_cast<ID *>(ob->data), ID_RECALC_COPY_ON_WRITE | ID_RECALC_SELECT);
   WM_event_add_notifier(C, NC_GEOM | ND_SELECT, ob->data);
 }
 
 bool paintvert_deselect_all_visible(Object *ob, int action, bool flush_flags)
 {
   Mesh *me = BKE_mesh_from_object(ob);
-  if (me == NULL) {
+  if (me == nullptr) {
     return false;
   }
 
@@ -528,7 +528,7 @@ void paintvert_select_ungrouped(Object *ob, bool extend, bool flush_flags)
 {
   Mesh *me = BKE_mesh_from_object(ob);
 
-  if (me == NULL || me->dvert == NULL) {
+  if (me == nullptr || me->dvert == nullptr) {
     return;
   }
 
@@ -540,7 +540,7 @@ void paintvert_select_ungrouped(Object *ob, bool extend, bool flush_flags)
     MVert *mv = &me->mvert[i];
     MDeformVert *dv = &me->dvert[i];
     if ((mv->flag & ME_HIDE) == 0) {
-      if (dv->dw == NULL) {
+      if (dv->dw == nullptr) {
         /* if null weight then not grouped */
         mv->flag |= SELECT;
       }
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.cc
similarity index 91%
rename from source/blender/editors/mesh/mesh_data.c
rename to source/blender/editors/mesh/mesh_data.cc
index 6b857fccec7..48d118c96ec 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.cc
@@ -46,7 +46,7 @@
 static CustomData *mesh_customdata_get_type(Mesh *me, const char htype, int *r_tot)
 {
   CustomData *data;
-  BMesh *bm = (me->edit_mesh) ? me->edit_mesh->bm : NULL;
+  BMesh *bm = (me->edit_mesh)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list