[Bf-blender-cvs] [6002914f141] master: Cleanup: Convert mesh.c to C++

Erik noreply at git.blender.org
Sat Nov 6 19:17:46 CET 2021


Commit: 6002914f141f0c777ae76975eb1273bb054321f1
Author: Erik
Date:   Sat Nov 6 19:16:37 2021 +0100
Branches: master
https://developer.blender.org/rB6002914f141f0c777ae76975eb1273bb054321f1

Cleanup: Convert mesh.c to C++

This commit renames mesh.c to mesh.cc and makes
it compile in C++. Can be useful in the future to be able
to use C++ functionality in existing and new functions.

Differential Revision: https://developer.blender.org/D13134

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

M	source/blender/blenkernel/CMakeLists.txt
R087	source/blender/blenkernel/intern/mesh.c	source/blender/blenkernel/intern/mesh.cc

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

diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index d4ec7fd703d..b2418d0539c 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -192,7 +192,7 @@ set(SRC
   intern/material.c
   intern/mball.c
   intern/mball_tessellate.c
-  intern/mesh.c
+  intern/mesh.cc
   intern/mesh_boolean_convert.cc
   intern/mesh_convert.cc
   intern/mesh_evaluate.cc
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.cc
similarity index 87%
rename from source/blender/blenkernel/intern/mesh.c
rename to source/blender/blenkernel/intern/mesh.cc
index 7277f7ad209..efa8bc31ce3 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -124,7 +124,7 @@ static void mesh_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
     CustomData_MeshMasks_update(&mask, &CD_MASK_DERIVEDMESH);
   }
 
-  mesh_dst->mat = MEM_dupallocN(mesh_src->mat);
+  mesh_dst->mat = (Material **)MEM_dupallocN(mesh_src->mat);
 
   BKE_defgroup_copy_list(&mesh_dst->vertex_group_names, &mesh_src->vertex_group_names);
 
@@ -142,9 +142,9 @@ static void mesh_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
 
   BKE_mesh_update_customdata_pointers(mesh_dst, do_tessface);
 
-  mesh_dst->edit_mesh = NULL;
+  mesh_dst->edit_mesh = nullptr;
 
-  mesh_dst->mselect = MEM_dupallocN(mesh_dst->mselect);
+  mesh_dst->mselect = (MSelect *)MEM_dupallocN(mesh_dst->mselect);
 
   /* TODO: Do we want to add flag to prevent this? */
   if (mesh_src->key && (flag & LIB_ID_COPY_SHAPEKEY)) {
@@ -165,7 +165,7 @@ static void mesh_free_data(ID *id)
       BKE_editmesh_free_data(mesh->edit_mesh);
     }
     MEM_freeN(mesh->edit_mesh);
-    mesh->edit_mesh = NULL;
+    mesh->edit_mesh = nullptr;
   }
 
   BKE_mesh_runtime_clear_cache(mesh);
@@ -188,14 +188,14 @@ static void mesh_blend_write(BlendWriter *writer, ID *id, const void *id_address
   Mesh *mesh = (Mesh *)id;
   const bool is_undo = BLO_write_is_undo(writer);
 
-  CustomDataLayer *vlayers = NULL, vlayers_buff[CD_TEMP_CHUNK_SIZE];
-  CustomDataLayer *elayers = NULL, elayers_buff[CD_TEMP_CHUNK_SIZE];
-  CustomDataLayer *flayers = NULL, flayers_buff[CD_TEMP_CHUNK_SIZE];
-  CustomDataLayer *llayers = NULL, llayers_buff[CD_TEMP_CHUNK_SIZE];
-  CustomDataLayer *players = NULL, players_buff[CD_TEMP_CHUNK_SIZE];
+  CustomDataLayer *vlayers = nullptr, vlayers_buff[CD_TEMP_CHUNK_SIZE];
+  CustomDataLayer *elayers = nullptr, elayers_buff[CD_TEMP_CHUNK_SIZE];
+  CustomDataLayer *flayers = nullptr, flayers_buff[CD_TEMP_CHUNK_SIZE];
+  CustomDataLayer *llayers = nullptr, llayers_buff[CD_TEMP_CHUNK_SIZE];
+  CustomDataLayer *players = nullptr, players_buff[CD_TEMP_CHUNK_SIZE];
 
   /* cache only - don't write */
-  mesh->mface = NULL;
+  mesh->mface = nullptr;
   mesh->totface = 0;
   memset(&mesh->fdata, 0, sizeof(mesh->fdata));
   memset(&mesh->runtime, 0, sizeof(mesh->runtime));
@@ -203,22 +203,22 @@ static void mesh_blend_write(BlendWriter *writer, ID *id, const void *id_address
 
   /* Do not store actual geometry data in case this is a library override ID. */
   if (ID_IS_OVERRIDE_LIBRARY(mesh) && !is_undo) {
-    mesh->mvert = NULL;
+    mesh->mvert = nullptr;
     mesh->totvert = 0;
     memset(&mesh->vdata, 0, sizeof(mesh->vdata));
     vlayers = vlayers_buff;
 
-    mesh->medge = NULL;
+    mesh->medge = nullptr;
     mesh->totedge = 0;
     memset(&mesh->edata, 0, sizeof(mesh->edata));
     elayers = elayers_buff;
 
-    mesh->mloop = NULL;
+    mesh->mloop = nullptr;
     mesh->totloop = 0;
     memset(&mesh->ldata, 0, sizeof(mesh->ldata));
     llayers = llayers_buff;
 
-    mesh->mpoly = NULL;
+    mesh->mpoly = nullptr;
     mesh->totpoly = 0;
     memset(&mesh->pdata, 0, sizeof(mesh->pdata));
     players = players_buff;
@@ -307,11 +307,11 @@ static void mesh_blend_read_data(BlendDataReader *reader, ID *id)
   CustomData_blend_read(reader, &mesh->pdata, mesh->totpoly);
 
   mesh->texflag &= ~ME_AUTOSPACE_EVALUATED;
-  mesh->edit_mesh = NULL;
+  mesh->edit_mesh = nullptr;
   BKE_mesh_runtime_reset(mesh);
 
   /* happens with old files */
-  if (mesh->mselect == NULL) {
+  if (mesh->mselect == nullptr) {
     mesh->totselect = 0;
   }
 
@@ -353,31 +353,28 @@ static void mesh_read_expand(BlendExpander *expander, ID *id)
 }
 
 IDTypeInfo IDType_ID_ME = {
-    .id_code = ID_ME,
-    .id_filter = FILTER_ID_ME,
-    .main_listbase_index = INDEX_ID_ME,
-    .struct_size = sizeof(Mesh),
-    .name = "Mesh",
-    .name_plural = "meshes",
-    .translation_context = BLT_I18NCONTEXT_ID_MESH,
-    .flags = IDTYPE_FLAGS_APPEND_IS_REUSABLE,
-
-    .init_data = mesh_init_data,
-    .copy_data = mesh_copy_data,
-    .free_data = mesh_free_data,
-    .make_local = NULL,
-    .foreach_id = mesh_foreach_id,
-    .foreach_cache = NULL,
-    .owner_get = NULL,
-
-    .blend_write = mesh_blend_write,
-    .blend_read_data = mesh_blend_read_data,
-    .blend_read_lib = mesh_blend_read_lib,
-    .blend_read_expand = mesh_read_expand,
-
-    .blend_read_undo_preserve = NULL,
-
-    .lib_override_apply_post = NULL,
+    ID_ME,
+    FILTER_ID_ME,
+    INDEX_ID_ME,
+    sizeof(Mesh),
+    "Mesh",
+    "meshes",
+    BLT_I18NCONTEXT_ID_MESH,
+    IDTYPE_FLAGS_APPEND_IS_REUSABLE,
+
+    mesh_init_data,
+    mesh_copy_data,
+    mesh_free_data,
+    nullptr,
+    mesh_foreach_id,
+    nullptr,
+    nullptr,
+    mesh_blend_write,
+    mesh_blend_read_data,
+    mesh_blend_read_lib,
+    mesh_read_expand,
+    nullptr,
+    nullptr,
 };
 
 enum {
@@ -469,8 +466,8 @@ static int customdata_compare(
       switch (l1->type) {
 
         case CD_MVERT: {
-          MVert *v1 = l1->data;
-          MVert *v2 = l2->data;
+          MVert *v1 = (MVert *)l1->data;
+          MVert *v2 = (MVert *)l2->data;
           int vtot = m1->totvert;
 
           for (j = 0; j < vtot; j++, v1++, v2++) {
@@ -486,8 +483,8 @@ static int customdata_compare(
 
         /* We're order-agnostic for edges here. */
         case CD_MEDGE: {
-          MEdge *e1 = l1->data;
-          MEdge *e2 = l2->data;
+          MEdge *e1 = (MEdge *)l1->data;
+          MEdge *e2 = (MEdge *)l2->data;
           int etot = m1->totedge;
           EdgeHash *eh = BLI_edgehash_new_ex(__func__, etot);
 
@@ -500,12 +497,12 @@ static int customdata_compare(
               return MESHCMP_EDGEUNKNOWN;
             }
           }
-          BLI_edgehash_free(eh, NULL);
+          BLI_edgehash_free(eh, nullptr);
           break;
         }
         case CD_MPOLY: {
-          MPoly *p1 = l1->data;
-          MPoly *p2 = l2->data;
+          MPoly *p1 = (MPoly *)l1->data;
+          MPoly *p2 = (MPoly *)l2->data;
           int ptot = m1->totpoly;
 
           for (j = 0; j < ptot; j++, p1++, p2++) {
@@ -528,8 +525,8 @@ static int customdata_compare(
           break;
         }
         case CD_MLOOP: {
-          MLoop *lp1 = l1->data;
-          MLoop *lp2 = l2->data;
+          MLoop *lp1 = (MLoop *)l1->data;
+          MLoop *lp2 = (MLoop *)l2->data;
           int ltot = m1->totloop;
 
           for (j = 0; j < ltot; j++, lp1++, lp2++) {
@@ -540,8 +537,8 @@ static int customdata_compare(
           break;
         }
         case CD_MLOOPUV: {
-          MLoopUV *lp1 = l1->data;
-          MLoopUV *lp2 = l2->data;
+          MLoopUV *lp1 = (MLoopUV *)l1->data;
+          MLoopUV *lp2 = (MLoopUV *)l2->data;
           int ltot = m1->totloop;
 
           for (j = 0; j < ltot; j++, lp1++, lp2++) {
@@ -552,8 +549,8 @@ static int customdata_compare(
           break;
         }
         case CD_MLOOPCOL: {
-          MLoopCol *lp1 = l1->data;
-          MLoopCol *lp2 = l2->data;
+          MLoopCol *lp1 = (MLoopCol *)l1->data;
+          MLoopCol *lp2 = (MLoopCol *)l2->data;
           int ltot = m1->totloop;
 
           for (j = 0; j < ltot; j++, lp1++, lp2++) {
@@ -564,8 +561,8 @@ static int customdata_compare(
           break;
         }
         case CD_MDEFORMVERT: {
-          MDeformVert *dv1 = l1->data;
-          MDeformVert *dv2 = l2->data;
+          MDeformVert *dv1 = (MDeformVert *)l1->data;
+          MDeformVert *dv2 = (MDeformVert *)l2->data;
           int dvtot = m1->totvert;
 
           for (j = 0; j < dvtot; j++, dv1++, dv2++) {
@@ -588,8 +585,8 @@ static int customdata_compare(
           break;
         }
         case CD_PROP_FLOAT: {
-          const float *l1_data = l1->data;
-          const float *l2_data = l2->data;
+          const float *l1_data = (float *)l1->data;
+          const float *l2_data = (float *)l2->data;
 
           for (int i = 0; i < total_length; i++) {
             if (compare_threshold_relative(l1_data[i], l2_data[i], thresh)) {
@@ -599,8 +596,8 @@ static int customdata_compare(
           break;
         }
         case CD_PROP_FLOAT2: {
-          const float(*l1_data)[2] = l1->data;
-          const float(*l2_data)[2] = l2->data;
+          const float(*l1_data)[2] = (float(*)[2])l1->data;
+          const float(*l2_data)[2] = (float(*)[2])l2->data;
 
           for (int i = 0; i < total_length; i++) {
             if (compare_threshold_relative(l1_data[i][0], l2_data[i][0], thresh)) {
@@ -613,8 +610,8 @@ static int customdata_compare(
           break;
         }
         case CD_PROP_FLOAT3: {
-          const float(*l1_data)[3] = l1->data;
-          const float(*l2_data)[3] = l2->data;
+          const float(*l1_data)[3] = (float(*)[3])l1->data;
+          const float(*l2_data)[3] = (float(*)[3])l2->data;
 
           for (int i = 0; i < total_length; i++) {
             if (compare_threshold_relative(l1_data[i][0], l2_data[i][0], thresh)) {
@@ -630,8 +627,8 @@ static int customdata_compare(
           break;
         }
         case CD_PROP_INT32: {
-          const int *l1_data = l1->data;
-          const int *l2_data = l2->data;
+          const int *l1_data = (int *)l1->data;
+          const int *l2_data = (int *)l2->data;
 
           for (int i = 0; i < total_length; i++) {
             if (l1_data[i] != l2_data[i]) {
@@ -641,8 +638,8 @@ static int customdata_compare(
           break;
         }
         case CD_PROP_BOOL: {
-          const bool *l1_data = l1->data;
-      

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list