[Bf-blender-cvs] [1f14310d910] refactor-mesh-remove-pointers: Use new API for retrieving vertex group data in some places

Hans Goudey noreply at git.blender.org
Thu Sep 1 23:55:17 CEST 2022


Commit: 1f14310d910875c4047198a3c3367a383d36fce3
Author: Hans Goudey
Date:   Thu Sep 1 16:55:08 2022 -0500
Branches: refactor-mesh-remove-pointers
https://developer.blender.org/rB1f14310d910875c4047198a3c3367a383d36fce3

Use new API for retrieving vertex group data in some places

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

M	source/blender/blenkernel/intern/fluid.c
M	source/blender/blenkernel/intern/geometry_component_mesh.cc
M	source/blender/blenkernel/intern/gpencil_geom.cc
M	source/blender/blenkernel/intern/mesh_mirror.c
M	source/blender/blenkernel/intern/mesh_runtime.cc
M	source/blender/blenkernel/intern/mesh_validate.cc
M	source/blender/blenkernel/intern/object_deform.c
M	source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_weights.cc
M	source/blender/editors/mesh/meshtools.cc
M	source/blender/editors/object/object_vgroup.cc
M	source/blender/io/wavefront_obj/importer/obj_import_mesh.cc
M	source/blender/modifiers/intern/MOD_mask.cc

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

diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index 7c1dc4361f7..24c61a792eb 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -2078,7 +2078,7 @@ static void emit_from_mesh(
     const MLoop *mloop = BKE_mesh_loops(me);
     const MLoopTri *mlooptri = BKE_mesh_runtime_looptri_ensure(me);
     const int numverts = me->totvert;
-    const MDeformVert *dvert = CustomData_get_layer(&me->vdata, CD_MDEFORMVERT);
+    const MDeformVert *dvert = BKE_mesh_deform_verts(me);
     const MLoopUV *mloopuv = CustomData_get_layer_named(&me->ldata, CD_MLOOPUV, ffs->uvlayer_name);
 
     if (ffs->flags & FLUID_FLOW_INITVELOCITY) {
diff --git a/source/blender/blenkernel/intern/geometry_component_mesh.cc b/source/blender/blenkernel/intern/geometry_component_mesh.cc
index 11ca2ba2087..a577b59d254 100644
--- a/source/blender/blenkernel/intern/geometry_component_mesh.cc
+++ b/source/blender/blenkernel/intern/geometry_component_mesh.cc
@@ -1017,8 +1017,7 @@ class VertexGroupsAttributeProvider final : public DynamicAttributesProvider {
     if (vertex_group_index < 0) {
       return {};
     }
-    const MDeformVert *dvert = (const MDeformVert *)CustomData_get_layer(&mesh->vdata,
-                                                                         CD_MDEFORMVERT);
+    const MDeformVert *dvert = BKE_mesh_deform_verts(mesh);
     if (dvert == nullptr) {
       static const float default_value = 0.0f;
       return {VArray<float>::ForSingle(default_value, mesh->totvert), ATTR_DOMAIN_POINT};
@@ -1069,7 +1068,7 @@ class VertexGroupsAttributeProvider final : public DynamicAttributesProvider {
     }
     BLI_remlink(&mesh->vertex_group_names, group);
     MEM_freeN(group);
-    if (!CustomData_has_layer(&mesh->vdata, CD_MDEFORMVERT)) {
+    if (!BKE_mesh_deform_verts(mesh)) {
       return true;
     }
 
diff --git a/source/blender/blenkernel/intern/gpencil_geom.cc b/source/blender/blenkernel/intern/gpencil_geom.cc
index 9eb3775cb19..94e493a19ea 100644
--- a/source/blender/blenkernel/intern/gpencil_geom.cc
+++ b/source/blender/blenkernel/intern/gpencil_geom.cc
@@ -2542,8 +2542,7 @@ static void gpencil_generate_edgeloops(Object *ob,
         gpf_stroke, MAX2(stroke_mat_index, 0), array_len + 1, thickness * thickness, false);
 
     /* Create dvert data. */
-    const MDeformVert *me_dvert = (const MDeformVert *)CustomData_get_layer(&me->vdata,
-                                                                            CD_MDEFORMVERT);
+    const MDeformVert *me_dvert = BKE_mesh_deform_verts(me);
     if (use_vgroups && me_dvert) {
       gps_stroke->dvert = (MDeformVert *)MEM_callocN(sizeof(MDeformVert) * (array_len + 1),
                                                      "gp_stroke_dverts");
@@ -2743,8 +2742,7 @@ bool BKE_gpencil_convert_mesh(Main *bmain,
       gps_fill->flag |= GP_STROKE_CYCLIC;
 
       /* Create dvert data. */
-      const MDeformVert *me_dvert = (const MDeformVert *)CustomData_get_layer(&me_eval->vdata,
-                                                                              CD_MDEFORMVERT);
+      const MDeformVert *me_dvert = BKE_mesh_deform_verts(me_eval);
       if (use_vgroups && me_dvert) {
         gps_fill->dvert = (MDeformVert *)MEM_callocN(sizeof(MDeformVert) * mp->totloop,
                                                      "gp_fill_dverts");
diff --git a/source/blender/blenkernel/intern/mesh_mirror.c b/source/blender/blenkernel/intern/mesh_mirror.c
index fccc02a010d..534c8241820 100644
--- a/source/blender/blenkernel/intern/mesh_mirror.c
+++ b/source/blender/blenkernel/intern/mesh_mirror.c
@@ -451,8 +451,7 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
 
   /* handle vgroup stuff */
   if ((mmd->flag & MOD_MIR_VGROUP) && CustomData_has_layer(&result->vdata, CD_MDEFORMVERT)) {
-    MDeformVert *dvert = (MDeformVert *)CustomData_get_layer(&result->vdata, CD_MDEFORMVERT) +
-                         maxVerts;
+    MDeformVert *dvert = BKE_mesh_deform_verts_for_write(result) + maxVerts;
     int *flip_map = NULL, flip_map_len = 0;
 
     flip_map = BKE_object_defgroup_flip_map(ob, &flip_map_len, false);
diff --git a/source/blender/blenkernel/intern/mesh_runtime.cc b/source/blender/blenkernel/intern/mesh_runtime.cc
index c04a9f2b6f9..cbf934551ea 100644
--- a/source/blender/blenkernel/intern/mesh_runtime.cc
+++ b/source/blender/blenkernel/intern/mesh_runtime.cc
@@ -361,7 +361,7 @@ bool BKE_mesh_runtime_is_valid(Mesh *me_eval)
       loops.size(),
       polys.data(),
       polys.size(),
-      (MDeformVert *)CustomData_get_layer(&me_eval->vdata, CD_MDEFORMVERT),
+      BKE_mesh_deform_verts_for_write(me_eval),
       do_verbose,
       do_fixes,
       &changed);
diff --git a/source/blender/blenkernel/intern/mesh_validate.cc b/source/blender/blenkernel/intern/mesh_validate.cc
index 972841405e3..41c29edd3d1 100644
--- a/source/blender/blenkernel/intern/mesh_validate.cc
+++ b/source/blender/blenkernel/intern/mesh_validate.cc
@@ -1083,7 +1083,7 @@ bool BKE_mesh_validate(Mesh *me, const bool do_verbose, const bool cddata_check_
                            loops.size(),
                            polys.data(),
                            polys.size(),
-                           (MDeformVert *)CustomData_get_layer(&me->vdata, CD_MDEFORMVERT),
+                           BKE_mesh_deform_verts_for_write(me),
                            do_verbose,
                            true,
                            &changed);
@@ -1125,22 +1125,21 @@ bool BKE_mesh_is_valid(Mesh *me)
   MutableSpan<MPoly> polys = me->polygons_for_write();
   MutableSpan<MLoop> loops = me->loops_for_write();
 
-  is_valid &= BKE_mesh_validate_arrays(
-      me,
-      verts.data(),
-      verts.size(),
-      edges.data(),
-      edges.size(),
-      (MFace *)CustomData_get_layer(&me->fdata, CD_MFACE),
-      me->totface,
-      loops.data(),
-      loops.size(),
-      polys.data(),
-      polys.size(),
-      (MDeformVert *)CustomData_get_layer(&me->vdata, CD_MDEFORMVERT),
-      do_verbose,
-      do_fixes,
-      &changed);
+  is_valid &= BKE_mesh_validate_arrays(me,
+                                       verts.data(),
+                                       verts.size(),
+                                       edges.data(),
+                                       edges.size(),
+                                       (MFace *)CustomData_get_layer(&me->fdata, CD_MFACE),
+                                       me->totface,
+                                       loops.data(),
+                                       loops.size(),
+                                       polys.data(),
+                                       polys.size(),
+                                       BKE_mesh_deform_verts_for_write(me),
+                                       do_verbose,
+                                       do_fixes,
+                                       &changed);
 
   BLI_assert(changed == false);
 
diff --git a/source/blender/blenkernel/intern/object_deform.c b/source/blender/blenkernel/intern/object_deform.c
index 859bc5d2d09..4c59b4a5210 100644
--- a/source/blender/blenkernel/intern/object_deform.c
+++ b/source/blender/blenkernel/intern/object_deform.c
@@ -162,7 +162,7 @@ bool BKE_object_defgroup_clear(Object *ob, bDeformGroup *dg, const bool use_sele
       }
     }
     else {
-      if (CustomData_has_layer(&me->vdata, CD_MDEFORMVERT)) {
+      if (BKE_mesh_deform_verts(me)) {
         const MVert *mv;
         int i;
 
diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_weights.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_weights.cc
index 509331f2f1e..dcf19b0674a 100644
--- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_weights.cc
+++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_weights.cc
@@ -106,7 +106,7 @@ static void extract_weights_init(const MeshRenderData *mr,
     data->cd_ofs = CustomData_get_offset(&mr->bm->vdata, CD_MDEFORMVERT);
   }
   else {
-    data->dvert = (const MDeformVert *)CustomData_get_layer(&mr->me->vdata, CD_MDEFORMVERT);
+    data->dvert = BKE_mesh_deform_verts(mr->me);
     data->cd_ofs = -1;
   }
 }
diff --git a/source/blender/editors/mesh/meshtools.cc b/source/blender/editors/mesh/meshtools.cc
index a6abd0a2a59..36e1f22a914 100644
--- a/source/blender/editors/mesh/meshtools.cc
+++ b/source/blender/editors/mesh/meshtools.cc
@@ -1465,7 +1465,7 @@ MDeformVert *ED_mesh_active_dvert_get_ob(Object *ob, int *r_index)
   if (r_index) {
     *r_index = index;
   }
-  if (index == -1 || !CustomData_has_layer(&me->vdata, CD_MDEFORMVERT)) {
+  if (index == -1 || !BKE_mesh_deform_verts(me)) {
     return nullptr;
   }
   MDeformVert *dvert = BKE_mesh_deform_verts_for_write(me);
diff --git a/source/blender/editors/object/object_vgroup.cc b/source/blender/editors/object/object_vgroup.cc
index aadfa523a3e..2a37d48e914 100644
--- a/source/blender/editors/object/object_vgroup.cc
+++ b/source/blender/editors/object/object_vgroup.cc
@@ -196,9 +196,9 @@ bool ED_vgroup_parray_alloc(ID *id,
 
           return true;
         }
-        if (CustomData_has_layer(&me->vdata, CD_MDEFORMVERT)) {
+        if (BKE_mesh_deform_verts(me)) {
           const blender::Span<MVert> verts = me->vertices();
-          MDeformVert *dvert = (MDeformVert *)CustomData_get_layer(&me->vdata, CD_MDEFORMVERT);
+          MDeformVert *dvert = BKE_mesh_deform_verts_for_write(me);
 
           *dvert_tot = me->totvert;
           *dvert_arr = static_cast<MDeformVert **>(
@@ -548,7 +548,7 @@ static void ED_mesh_defvert_mirror_update_ob(Object *ob, int def_nr, int vidx)
 
   vidx_mirr = mesh_get_x_mirror_vert(ob, nullptr, vidx, use_topology);
 
-  MDeformVert *dvert = (MDeformVert *)CustomData_get_layer(&me->vdata, CD_MDEFORMVERT);
+  MDeformVert *dvert = BKE_mesh_deform_verts_for_write(me);
   if ((vidx_mirr) >= 0 && (vidx_mirr != vidx)) {
     MDeformVert *dvert_src = &dvert[vidx];
     MDeformVert *dvert_dst = &dvert[vidx_mirr];
@@ -666,7 +666,7 @@ static void vgroup_copy_active_to_sel(Object *ob, eVGroupSelect subset_type)
 
     dvert_act = ED_mesh_active_dve

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list