[Bf-blender-cvs] [6799dd1e88d] refactor-mesh-corners-generic: Three fixes to corner indexing

Hans Goudey noreply at git.blender.org
Tue Dec 20 16:50:14 CET 2022


Commit: 6799dd1e88de9a00115c91ea637ebf4d47f0285b
Author: Hans Goudey
Date:   Tue Dec 20 09:50:06 2022 -0600
Branches: refactor-mesh-corners-generic
https://developer.blender.org/rB6799dd1e88de9a00115c91ea637ebf4d47f0285b

Three fixes to corner indexing

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

M	source/blender/blenkernel/intern/DerivedMesh.cc
M	source/blender/blenkernel/intern/mesh_remap.cc
M	source/blender/modifiers/intern/MOD_surfacedeform.c

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.cc b/source/blender/blenkernel/intern/DerivedMesh.cc
index 8a089c708e5..dcac7571284 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.cc
+++ b/source/blender/blenkernel/intern/DerivedMesh.cc
@@ -1991,7 +1991,7 @@ static void mesh_init_origspace(Mesh *mesh)
 
       vcos_2d.resize(mp->totloop);
       for (j = 0; j < mp->totloop; j++) {
-        mul_v3_m3v3(co, mat, positions[corner_verts[mp->totloop + j]]);
+        mul_v3_m3v3(co, mat, positions[corner_verts[mp->loopstart + j]]);
         copy_v2_v2(vcos_2d[j], co);
 
         for (k = 0; k < 2; k++) {
diff --git a/source/blender/blenkernel/intern/mesh_remap.cc b/source/blender/blenkernel/intern/mesh_remap.cc
index f88173292df..45b68dc0e8b 100644
--- a/source/blender/blenkernel/intern/mesh_remap.cc
+++ b/source/blender/blenkernel/intern/mesh_remap.cc
@@ -1605,7 +1605,7 @@ void BKE_mesh_remap_calc_loops_from_mesh(const int mode,
         BVHTreeFromMesh *tdata = &treedata[tindex];
 
         for (plidx_dst = 0; plidx_dst < mp_dst->totloop; plidx_dst++) {
-          const int vert_dst_i = corner_verts_dst[mp_dst->totloop + plidx_dst];
+          const int vert_dst_i = corner_verts_dst[mp_dst->loopstart + plidx_dst];
           if (use_from_vert) {
             MeshElemMap *vert_to_refelem_map_src = nullptr;
 
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c
index 013dfae5a0c..44cea45ce4c 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -554,8 +554,8 @@ BLI_INLINE SDefBindWeightData *computeBindWeights(SDefBindCalcData *const data,
         }
 
         for (int j = 0; j < poly->totloop; j++) {
-          const int vert_i = data->corner_verts[poly->totloop + j];
-          const int edge_i = data->corner_edges[poly->totloop + j];
+          const int vert_i = data->corner_verts[poly->loopstart + j];
+          const int edge_i = data->corner_edges[poly->loopstart + j];
           copy_v3_v3(bpoly->coords[j], data->targetCos[vert_i]);
 
           /* Find corner and edge indices within poly loop array */



More information about the Bf-blender-cvs mailing list