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

2 Modified Paths:

/source/blender/bmesh/intern/bmesh_mods.c (+3, -0) (Diff)
/source/blender/editors/mesh/knifetool.c (+680, -103) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021