Page MenuHome

Fix T71329: Bevel: Don't drop offset intersections to 'in plane' faces
ClosedPublic

Authored by Hans Goudey (HooglyBoogly) on Fri, Jan 3, 11:06 PM.

Details

Summary

The asymmetrical nature of the situation in the report was just different starting edges used when they're looped through. offset_meet creates offset lines that can't be directly intersected, so the average of the points on each offset line is 'dropped' onto the faces around the beveled vertex. For the incorrect vertex, it was dropped onto the first face that it was above.

To fix this I used the 'in_plane' face's normal (which we don't slide along anyway because it doesn't affect the silhouette) from the build_boundary function and made sure offset_meet doesn't drop down to a face with that normal.

This patch also includes a bunch of comment formatting updates, but I could easily separate them out if they get in the way. I could also commit this in two parts, the cleanup and the fix itself.

Diff Detail

Repository
rB Blender

Event Timeline

source/blender/bmesh/tools/bmesh_bevel.c
1021

The actual functional changes: Added an argument here,

1162

checked the normals here before dropping,

2687

and passed in the in plane edge around here.

This revision looks fine to me. Go ahead and submit it to master. Thanks for the fix.

This revision is now accepted and ready to land.Mon, Jan 13, 1:44 PM