Revision: 14401 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14401 Author: campbellbarton Date: 2008-04-12 21:56:53 +0200 (Sat, 12 Apr 2008)
Log Message: ----------- active face can now be unselected, also extrude and copy keep the active face. Modified Paths: -------------- trunk/blender/source/blender/src/editmesh_lib.c Modified: trunk/blender/source/blender/src/editmesh_lib.c =================================================================== --- trunk/blender/source/blender/src/editmesh_lib.c 2008-04-12 18:44:03 UTC (rev 14400) +++ trunk/blender/source/blender/src/editmesh_lib.c 2008-04-12 19:56:53 UTC (rev 14401) @@ -80,7 +80,7 @@ EditFace * EM_get_actFace(int sloppy) { - if (G.editMesh->act_face && G.editMesh->act_face->f & SELECT) { + if (G.editMesh->act_face) { return G.editMesh->act_face; } else if (sloppy) { EditFace *efa= NULL; @@ -1100,7 +1100,7 @@ EditMesh *em = G.editMesh; EditVert *eve, *nextve; EditEdge *eed, *nexted; - EditFace *efa, *nextfa; + EditFace *efa, *nextfa, *efan; short del_old= 0; ModifierData *md; @@ -1254,27 +1254,32 @@ if(del_old==0) { // keep old faces means flipping normal if(efa->v4) - addfacelist(efa->v4->tmp.v, efa->v3->tmp.v, + efan = addfacelist(efa->v4->tmp.v, efa->v3->tmp.v, efa->v2->tmp.v, efa->v1->tmp.v, efa, efa); else - addfacelist(efa->v3->tmp.v, efa->v2->tmp.v, + efan = addfacelist(efa->v3->tmp.v, efa->v2->tmp.v, efa->v1->tmp.v, NULL, efa, efa); } else { if(efa->v4) - addfacelist(efa->v1->tmp.v, efa->v2->tmp.v, + efan = addfacelist(efa->v1->tmp.v, efa->v2->tmp.v, efa->v3->tmp.v, efa->v4->tmp.v, efa, efa); else - addfacelist(efa->v1->tmp.v, efa->v2->tmp.v, + efan = addfacelist(efa->v1->tmp.v, efa->v2->tmp.v, efa->v3->tmp.v, NULL, efa, efa); } - + + if (G.editMesh->act_face == efa) { + G.editMesh->act_face = efan; + } + /* for transform */ add_normal_aligned(nor, efa->n); } } if(del_old) { + /* step 4: remove old faces, if del_old */ efa= em->faces.first; while(efa) { @@ -1285,7 +1290,8 @@ } efa= nextfa; } - + + /* step 5: remove selected unused edges */ /* start tagging again */ for(eed= em->edges.first; eed; eed= eed->next) eed->f1=0; @@ -1700,7 +1706,7 @@ EditMesh *em = G.editMesh; EditVert *eve, *v1, *v2, *v3, *v4; EditEdge *eed, *newed; - EditFace *efa, *newfa; + EditFace *efa, *newfa, *act_efa = EM_get_actFace(0); EM_clear_flag_all(128); EM_selectmode_set(); // paranoia check, selection now is consistant @@ -1747,6 +1753,10 @@ newfa= addfacelist(v1, v2, v3, v4, efa, efa); + if (act_efa==act_efa) { + EM_set_actFace(newfa); + } + newfa->f= efa->f; efa->f -= flag; efa->f |= 128; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs