[Bf-committers] bmesh: fixing F

Howard Trickey howard.trickey at gmail.com
Tue Aug 23 19:57:33 CEST 2011


[It was suggested in #blendercoders that this list could sustain some bmesh
discussion.  Here is a question I had this morning.]

There's a bug report that selecting two connected edges and an isolated
vertex and hitting F makes a tri, not a quad.  Here's a sample blend:
http://www.pasteall.org/blend/8366

I have some questions about how/if to fix this.

Looking at the code in bmesh/operators/createops.c, I see several problems:

1) the edgenet_prepare BMOP is responsible for adding edges so as to make
closed cycles, in preparation for filling by the edgenet_fill BMOP.
 edgenet_prepare looks for at most two unclosed chains and joins them
together.  So the reason for the bug is that it should (a) consider isolated
vertices too; and (b) handle any number of unclosed chains and/or isolated
vertices, and join them up together (a traveling salesman problem, note!).
 Should we generalize the function to do this?  My answer is yes, but the
next question is: is this the highest priority thing to work on now, or
should this be a 'post-merge' TODO?

2) the edgenet_fill BMOP has/calls a lot of code that starts with
init_rotsys, and that function is throwing "yeek" messages on that example
blend file.  The code is apparently checking to make sure that certain edges
are not straight.  I don't yet understand that code; before I look further,
does someone else know what is wrong?


More information about the Bf-committers mailing list