[Bf-blender-cvs] [c07fdad03de] master: Cleanup: Move multires files to C++

Hans Goudey noreply at git.blender.org
Fri Jan 20 16:23:02 CET 2023


Commit: c07fdad03deb2d86d7c5b43028f5f2f8190ee5da
Author: Hans Goudey
Date:   Fri Jan 20 07:59:38 2023 -0600
Branches: master
https://developer.blender.org/rBc07fdad03deb2d86d7c5b43028f5f2f8190ee5da

Cleanup: Move multires files to C++

For continued refactoring of the Mesh data structure. See T103343.

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

M	source/blender/blenkernel/BKE_multires.h
M	source/blender/blenkernel/CMakeLists.txt
R083	source/blender/blenkernel/intern/multires_reshape.c	source/blender/blenkernel/intern/multires_reshape.cc
R090	source/blender/blenkernel/intern/multires_reshape_apply_base.c	source/blender/blenkernel/intern/multires_reshape_apply_base.cc
R086	source/blender/blenkernel/intern/multires_reshape_ccg.c	source/blender/blenkernel/intern/multires_reshape_ccg.cc
R083	source/blender/blenkernel/intern/multires_reshape_smooth.c	source/blender/blenkernel/intern/multires_reshape_smooth.cc
R091	source/blender/blenkernel/intern/multires_reshape_subdivide.c	source/blender/blenkernel/intern/multires_reshape_subdivide.cc
R084	source/blender/blenkernel/intern/multires_reshape_util.c	source/blender/blenkernel/intern/multires_reshape_util.cc
R071	source/blender/blenkernel/intern/multires_reshape_vertcos.c	source/blender/blenkernel/intern/multires_reshape_vertcos.cc
R100	source/blender/blenkernel/intern/multires_subdiv.c	source/blender/blenkernel/intern/multires_subdiv.cc
R092	source/blender/blenkernel/intern/multires_unsubdivide.c	source/blender/blenkernel/intern/multires_unsubdivide.cc
R081	source/blender/blenkernel/intern/multires_versioning.c	source/blender/blenkernel/intern/multires_versioning.cc
M	source/blender/blenkernel/intern/subdiv_converter.h

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

diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h
index 7c8c13ac8b2..5faafbe957c 100644
--- a/source/blender/blenkernel/BKE_multires.h
+++ b/source/blender/blenkernel/BKE_multires.h
@@ -156,7 +156,7 @@ void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float
 int mdisp_rot_face_to_crn(
     struct MPoly *mpoly, int face_side, float u, float v, float *x, float *y);
 
-/* Reshaping, define in multires_reshape.c */
+/* Reshaping, define in multires_reshape.cc */
 
 bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph,
                                          struct Object *object,
@@ -204,7 +204,7 @@ void multiresModifier_subdivide_to_level(struct Object *object,
                                          int top_level,
                                          eMultiresSubdivideModeType mode);
 
-/* Subdivision integration, defined in multires_subdiv.c */
+/* Subdivision integration, defined in multires_subdiv.cc */
 
 struct SubdivSettings;
 struct SubdivToMeshSettings;
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 77c16b6924c..bfef13649e3 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -216,16 +216,16 @@ set(SRC
   intern/modifier.cc
   intern/movieclip.c
   intern/multires.cc
-  intern/multires_reshape.c
-  intern/multires_reshape_apply_base.c
-  intern/multires_reshape_ccg.c
-  intern/multires_reshape_smooth.c
-  intern/multires_reshape_subdivide.c
-  intern/multires_reshape_util.c
-  intern/multires_reshape_vertcos.c
-  intern/multires_subdiv.c
-  intern/multires_unsubdivide.c
-  intern/multires_versioning.c
+  intern/multires_reshape.cc
+  intern/multires_reshape_apply_base.cc
+  intern/multires_reshape_ccg.cc
+  intern/multires_reshape_smooth.cc
+  intern/multires_reshape_subdivide.cc
+  intern/multires_reshape_util.cc
+  intern/multires_reshape_vertcos.cc
+  intern/multires_subdiv.cc
+  intern/multires_unsubdivide.cc
+  intern/multires_versioning.cc
   intern/nla.c
   intern/node.cc
   intern/node_runtime.cc
diff --git a/source/blender/blenkernel/intern/multires_reshape.c b/source/blender/blenkernel/intern/multires_reshape.cc
similarity index 83%
rename from source/blender/blenkernel/intern/multires_reshape.c
rename to source/blender/blenkernel/intern/multires_reshape.cc
index 17e4860ab1b..522e7632b94 100644
--- a/source/blender/blenkernel/intern/multires_reshape.c
+++ b/source/blender/blenkernel/intern/multires_reshape.cc
@@ -30,9 +30,9 @@
 /** \name Reshape from object
  * \{ */
 
-bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph,
-                                         struct Object *object,
-                                         struct MultiresModifierData *mmd,
+bool multiresModifier_reshapeFromVertcos(Depsgraph *depsgraph,
+                                         Object *object,
+                                         MultiresModifierData *mmd,
                                          const float (*vert_coords)[3],
                                          const int num_vert_coords)
 {
@@ -41,7 +41,7 @@ bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph,
     return false;
   }
   multires_reshape_store_original_grids(&reshape_context);
-  multires_reshape_ensure_grids(object->data, reshape_context.top.level);
+  multires_reshape_ensure_grids(static_cast<Mesh *>(object->data), reshape_context.top.level);
   if (!multires_reshape_assign_final_coords_from_vertcos(
           &reshape_context, vert_coords, num_vert_coords)) {
     multires_reshape_context_free(&reshape_context);
@@ -53,13 +53,13 @@ bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph,
   return true;
 }
 
-bool multiresModifier_reshapeFromObject(struct Depsgraph *depsgraph,
-                                        struct MultiresModifierData *mmd,
-                                        struct Object *dst,
-                                        struct Object *src)
+bool multiresModifier_reshapeFromObject(Depsgraph *depsgraph,
+                                        MultiresModifierData *mmd,
+                                        Object *dst,
+                                        Object *src)
 {
-  struct Scene *scene_eval = DEG_get_evaluated_scene(depsgraph);
-  struct Object *src_eval = DEG_get_evaluated_object(depsgraph, src);
+  Scene *scene_eval = DEG_get_evaluated_scene(depsgraph);
+  Object *src_eval = DEG_get_evaluated_object(depsgraph, src);
   Mesh *src_mesh_eval = mesh_get_eval_final(depsgraph, scene_eval, src_eval, &CD_MASK_BAREMESH);
 
   int num_deformed_verts;
@@ -79,10 +79,10 @@ bool multiresModifier_reshapeFromObject(struct Depsgraph *depsgraph,
 /** \name Reshape from modifier
  * \{ */
 
-bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph,
-                                                struct Object *object,
-                                                struct MultiresModifierData *mmd,
-                                                struct ModifierData *deform_md)
+bool multiresModifier_reshapeFromDeformModifier(Depsgraph *depsgraph,
+                                                Object *object,
+                                                MultiresModifierData *mmd,
+                                                ModifierData *deform_md)
 {
   MultiresModifierData highest_mmd = *mmd;
   highest_mmd.sculptlvl = highest_mmd.totlvl;
@@ -96,14 +96,14 @@ bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph,
   float(*deformed_verts)[3] = BKE_mesh_vert_coords_alloc(multires_mesh, &num_deformed_verts);
 
   /* Apply deformation modifier on the multires, */
-  const ModifierEvalContext modifier_ctx = {
-      .depsgraph = depsgraph,
-      .object = object,
-      .flag = MOD_APPLY_USECACHE | MOD_APPLY_IGNORE_SIMPLIFY,
-  };
+  ModifierEvalContext modifier_ctx{};
+  modifier_ctx.depsgraph = depsgraph;
+  modifier_ctx.object = object;
+  modifier_ctx.flag = MOD_APPLY_USECACHE | MOD_APPLY_IGNORE_SIMPLIFY;
+
   BKE_modifier_deform_verts(
       deform_md, &modifier_ctx, multires_mesh, deformed_verts, multires_mesh->totvert);
-  BKE_id_free(NULL, multires_mesh);
+  BKE_id_free(nullptr, multires_mesh);
 
   /* Reshaping */
   bool result = multiresModifier_reshapeFromVertcos(
@@ -121,9 +121,7 @@ bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph,
 /** \name Reshape from grids
  * \{ */
 
-bool multiresModifier_reshapeFromCCG(const int tot_level,
-                                     Mesh *coarse_mesh,
-                                     struct SubdivCCG *subdiv_ccg)
+bool multiresModifier_reshapeFromCCG(const int tot_level, Mesh *coarse_mesh, SubdivCCG *subdiv_ccg)
 {
   MultiresReshapeContext reshape_context;
   if (!multires_reshape_context_create_from_ccg(
@@ -159,8 +157,8 @@ void multiresModifier_subdivide(Object *object,
   multiresModifier_subdivide_to_level(object, mmd, top_level, mode);
 }
 
-void multiresModifier_subdivide_to_level(struct Object *object,
-                                         struct MultiresModifierData *mmd,
+void multiresModifier_subdivide_to_level(Object *object,
+                                         MultiresModifierData *mmd,
                                          const int top_level,
                                          const eMultiresSubdivideModeType mode)
 {
@@ -168,7 +166,7 @@ void multiresModifier_subdivide_to_level(struct Object *object,
     return;
   }
 
-  Mesh *coarse_mesh = object->data;
+  Mesh *coarse_mesh = static_cast<Mesh *>(object->data);
   if (coarse_mesh->totloop == 0) {
     /* If there are no loops in the mesh implies there is no CD_MDISPS as well. So can early output
      * from here as there is nothing to subdivide. */
@@ -182,7 +180,7 @@ void multiresModifier_subdivide_to_level(struct Object *object,
   const bool has_mdisps = CustomData_has_layer(&coarse_mesh->ldata, CD_MDISPS);
   if (!has_mdisps) {
     CustomData_add_layer(
-        &coarse_mesh->ldata, CD_MDISPS, CD_SET_DEFAULT, NULL, coarse_mesh->totloop);
+        &coarse_mesh->ldata, CD_MDISPS, CD_SET_DEFAULT, nullptr, coarse_mesh->totloop);
   }
 
   /* NOTE: Subdivision happens from the top level of the existing multires modifier. If it is set
@@ -238,9 +236,7 @@ void multiresModifier_subdivide_to_level(struct Object *object,
 /** \name Apply base
  * \{ */
 
-void multiresModifier_base_apply(struct Depsgraph *depsgraph,
-                                 Object *object,
-                                 MultiresModifierData *mmd)
+void multiresModifier_base_apply(Depsgraph *depsgraph, Object *object, MultiresModifierData *mmd)
 {
   multires_force_sculpt_rebuild(object);
 
diff --git a/source/blender/blenkernel/intern/multires_reshape_apply_base.c b/source/blender/blenkernel/intern/multires_reshape_apply_base.cc
similarity index 90%
rename from source/blender/blenkernel/intern/multires_reshape_apply_base.c
rename to source/blender/blenkernel/intern/multires_reshape_apply_base.cc
index 0da5d814992..d491f30a1ad 100644
--- a/source/blender/blenkernel/intern/multires_reshape_apply_base.c
+++ b/source/blender/blenkernel/intern/multires_reshape_apply_base.cc
@@ -81,8 +81,8 @@ void multires_reshape_apply_base_refit_base_mesh(MultiresReshapeContext *reshape
                                 base_mesh->totpoly,
                                 base_mesh->totloop);
 
-  float(*origco)[3] = MEM_calloc_arrayN(
-      base_mesh->totvert, sizeof(float[3]), "multires apply base origco");
+  float(*origco)[3] = static_cast<float(*)[3]>(
+      MEM_calloc_arrayN(base_mesh->totvert, sizeof(float[3]), __func__));
   for (int i = 0; i < base_mesh->totvert; i++) {
     copy_v3_v3(origco[i], base_positions[i]);
   }
@@ -115,15 +115,15 @@ void multires_reshape_apply_base_refit_base_mesh(MultiresReshapeContext *reshape
     for (int j = 0; j < pmap[i].count; j++) {
       const MPoly *p = &reshape_context->base_polys[pmap[i].indices[j]];
       MPoly fake_poly;
-      MLoop *fake_loops;
-      float(*fake_co)[3];
       float no[3];
 
       /* Set up poly, loops, and coords in order to call BKE_mesh_c

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list