Blender Git Commit Log
Git Commits -> Revision 9f74230
Revision 9f74230 by Howard Trickey (master) March 7, 2012, 14:44 (GMT) |
Knifetool uses direct cutting instead of scanfill: fixes bugs 29908, 28963, 30333. Knifetool accumulates a bunch of proposed cuts and when the user confirms, it makes them all. The old code did this by using scanfill to triangulate the cutting edges in their faces, and then merging triangles where possible. This sometimes ended up with strange lost faces, and also made it so that when holes were cut, the surrounding face ended up totally triangulated. But 29908 was an example of a lost face. This new code directly finds chains of cutting edges that go from one side of a face to the other and using BM_edge_split_n to make the cuts. Holes are handled by finding two good places where the hole can be connected to the containing face (using two because I think some other code in bmesh assumes that there are no edges that appear twice in a face). The old code is still there with #if SCANFILL_CUTS, so can easily revert if this proves to be a bad idea. Also, a small fix to previously added BM_split_n (forgot to copy face attributes to new face). |
Commit Details:
Full Hash: 9f742303a7880a4fb4656008b77adf2c798bc01f
SVN Revision: 44704
Parent Commit: 41bdcc7
Lines Changed: +683, -103