Fix Knife cut-through bug #34072.
authorHoward Trickey <howard.trickey@gmail.com>
Fri, 8 Feb 2013 13:51:29 +0000 (13:51 +0000)
committerHoward Trickey <howard.trickey@gmail.com>
Fri, 8 Feb 2013 13:51:29 +0000 (13:51 +0000)
source/blender/editors/mesh/editmesh_knife.c

index 3bf68a6..bc7fe78 100644 (file)
@@ -645,6 +645,7 @@ static void knife_get_vert_faces(KnifeTool_OpData *kcd, KnifeVert *kfv, BMFace *
 {
        BMIter bmiter;
        BMFace *f;
+       Ref *r;
 
        if (kfv->isface && facef) {
                knife_append_list(kcd, lst, facef);
@@ -654,6 +655,11 @@ static void knife_get_vert_faces(KnifeTool_OpData *kcd, KnifeVert *kfv, BMFace *
                        knife_append_list(kcd, lst, f);
                }
        }
+       else {
+               for (r = kfv->faces.first; r; r = r->next) {
+                       knife_append_list(kcd, lst, r->ref);
+               }
+       }
 }
 
 static void knife_get_edge_faces(KnifeTool_OpData *kcd, KnifeEdge *kfe, ListBase *lst)
@@ -780,6 +786,7 @@ static void knife_cut_through(KnifeTool_OpData *kcd)
        kcd->totlinehit = 0;
 
        /* set up for next cut */
+       kcd->curr.vert = lastv;
        kcd->prev = kcd->curr;
 }