[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