forked from bartvdbraak/blender
Bug fix #2428
The "Separate" and "Split" commands in editmode Mesh didn't take loose edges into account correctly (leaving them in). These edges now get removed correctly. Note; this changes the tool XKEY "Delete->Faces" slightly. This already removed entire faces and loose selected vertices. Now also removes loose selected edges. More consistant, but maybe a bit confusing...
This commit is contained in:
parent
f08c0f388a
commit
cfc9a56f0d
@ -1160,14 +1160,19 @@ void adduplicateflag(int flag)
|
||||
void delfaceflag(int flag)
|
||||
{
|
||||
EditMesh *em = G.editMesh;
|
||||
/* delete all faces with 'flag', including edges and loose vertices */
|
||||
/* delete all faces with 'flag', including loose edges and loose vertices */
|
||||
/* this is maybe a bit weird, but this function is used for 'split' and 'separate' */
|
||||
/* in remaining vertices/edges 'flag' is cleared */
|
||||
EditVert *eve,*nextve;
|
||||
EditEdge *eed, *nexted;
|
||||
EditFace *efa,*nextvl;
|
||||
|
||||
for(eed= em->edges.first; eed; eed= eed->next) eed->f2= 0;
|
||||
|
||||
/* to detect loose edges, we put f2 flag on 1 */
|
||||
for(eed= em->edges.first; eed; eed= eed->next) {
|
||||
if(eed->f & flag) eed->f2= 1;
|
||||
else eed->f2= 0;
|
||||
}
|
||||
|
||||
/* delete faces */
|
||||
efa= em->faces.first;
|
||||
while(efa) {
|
||||
|
Loading…
Reference in New Issue
Block a user