[Bf-committers] bmesh: fixing F
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:
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