[Bf-blender-cvs] [b6c2deef05c] blender-v3.0-release: Fix T92662: Curve to mesh start cap invalid topology

Hans Goudey noreply at git.blender.org
Mon Nov 1 19:14:52 CET 2021


Commit: b6c2deef05cbaa015c74a0c5b1b0451686de49f6
Author: Hans Goudey
Date:   Mon Nov 1 13:13:44 2021 -0500
Branches: blender-v3.0-release
https://developer.blender.org/rBb6c2deef05cbaa015c74a0c5b1b0451686de49f6

Fix T92662: Curve to mesh start cap invalid topology

rBbe3e09ecec5372f switched the order for vertices referenced by the
start cap's corners, but it failed to account for the offset necessary
for edge indices, since the order changed.

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

M	source/blender/blenkernel/intern/curve_to_mesh_convert.cc

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

diff --git a/source/blender/blenkernel/intern/curve_to_mesh_convert.cc b/source/blender/blenkernel/intern/curve_to_mesh_convert.cc
index cd40d5e8a41..ed4af2bbb08 100644
--- a/source/blender/blenkernel/intern/curve_to_mesh_convert.cc
+++ b/source/blender/blenkernel/intern/curve_to_mesh_convert.cc
@@ -202,7 +202,9 @@ static void spline_extrude_to_mesh_data(const ResultInfo &info,
       const int i_inv = info.profile_edge_len - i - 1;
       MLoop &loop_start = r_loops[cap_loop_offset + i];
       loop_start.v = info.vert_offset + i_inv;
-      loop_start.e = profile_edges_start + i_inv;
+      loop_start.e = profile_edges_start + ((i == (info.profile_edge_len - 1)) ?
+                                                (info.profile_edge_len - 1) :
+                                                (i_inv - 1));
       MLoop &loop_end = r_loops[cap_loop_offset + info.profile_edge_len + i];
       loop_end.v = last_ring_vert_offset + i;
       loop_end.e = last_ring_edge_offset + i;



More information about the Bf-blender-cvs mailing list