[Bf-blender-cvs] [4f20b1e7ee5] refactor-mesh-corners-generic: Fix screw modifier

Hans Goudey noreply at git.blender.org
Tue Dec 20 20:55:25 CET 2022


Commit: 4f20b1e7ee56bb25ca246142caf3a03572ab1c05
Author: Hans Goudey
Date:   Tue Dec 20 13:55:16 2022 -0600
Branches: refactor-mesh-corners-generic
https://developer.blender.org/rB4f20b1e7ee56bb25ca246142caf3a03572ab1c05

Fix screw modifier

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

M	source/blender/modifiers/intern/MOD_screw.cc

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

diff --git a/source/blender/modifiers/intern/MOD_screw.cc b/source/blender/modifiers/intern/MOD_screw.cc
index 576637b425e..21269df3ed0 100644
--- a/source/blender/modifiers/intern/MOD_screw.cc
+++ b/source/blender/modifiers/intern/MOD_screw.cc
@@ -932,16 +932,17 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
       /* Loop-Data */
       if (!(close && step == step_last)) {
         /* regular segments */
-        corner_verts_new[quad_ord[0]] = int(i1);
-        corner_verts_new[quad_ord[1]] = int(i2);
-        corner_verts_new[quad_ord[2]] = int(i2 + totvert);
-        corner_verts_new[quad_ord[3]] = int(i1 + totvert);
+        corner_verts_new[new_loop_index + quad_ord[0]] = int(i1);
+        corner_verts_new[new_loop_index + quad_ord[1]] = int(i2);
+        corner_verts_new[new_loop_index + quad_ord[2]] = int(i2 + totvert);
+        corner_verts_new[new_loop_index + quad_ord[3]] = int(i1 + totvert);
 
-        corner_edges_new[quad_ord_ofs[0]] = int(
+        corner_edges_new[new_loop_index + quad_ord_ofs[0]] = int(
             step == 0 ? i : (edge_offset + step + (i * (step_tot - 1))) - 1);
-        corner_edges_new[quad_ord_ofs[1]] = int(totedge + i2);
-        corner_edges_new[quad_ord_ofs[2]] = int(edge_offset + step + (i * (step_tot - 1)));
-        corner_edges_new[quad_ord_ofs[3]] = int(totedge + i1);
+        corner_edges_new[new_loop_index + quad_ord_ofs[1]] = int(totedge + i2);
+        corner_edges_new[new_loop_index + quad_ord_ofs[2]] = int(edge_offset + step +
+                                                                 (i * (step_tot - 1)));
+        corner_edges_new[new_loop_index + quad_ord_ofs[3]] = int(totedge + i1);
 
         /* new vertical edge */
         if (step) { /* The first set is already done */
@@ -955,15 +956,16 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
       }
       else {
         /* last segment */
-        corner_verts_new[quad_ord[0]] = int(i1);
-        corner_verts_new[quad_ord[1]] = int(i2);
-        corner_verts_new[quad_ord[2]] = int(med_new_firstloop->v2);
-        corner_verts_new[quad_ord[3]] = int(med_new_firstloop->v1);
-
-        corner_edges_new[quad_ord_ofs[0]] = int((edge_offset + step + (i * (step_tot - 1))) - 1);
-        corner_edges_new[quad_ord_ofs[1]] = int(totedge + i2);
-        corner_edges_new[quad_ord_ofs[2]] = int(i);
-        corner_edges_new[quad_ord_ofs[3]] = int(totedge + i1);
+        corner_verts_new[new_loop_index + quad_ord[0]] = int(i1);
+        corner_verts_new[new_loop_index + quad_ord[1]] = int(i2);
+        corner_verts_new[new_loop_index + quad_ord[2]] = int(med_new_firstloop->v2);
+        corner_verts_new[new_loop_index + quad_ord[3]] = int(med_new_firstloop->v1);
+
+        corner_edges_new[new_loop_index + quad_ord_ofs[0]] = int(
+            (edge_offset + step + (i * (step_tot - 1))) - 1);
+        corner_edges_new[new_loop_index + quad_ord_ofs[1]] = int(totedge + i2);
+        corner_edges_new[new_loop_index + quad_ord_ofs[2]] = int(i);
+        corner_edges_new[new_loop_index + quad_ord_ofs[3]] = int(totedge + i1);
       }
 
       mp_new++;



More information about the Bf-blender-cvs mailing list