Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2004-09-24 22:17:23 +0400
committerTon Roosendaal <ton@blender.org>2004-09-24 22:17:23 +0400
commitcfe9a9575526458412d50cc6122fdde1d66dd4d2 (patch)
tree9ba2543e0b463513905610e094d43dd722a264fc /source/blender/src/editmesh_tools.c
parent572b7c078d152054edc3a2f46f4d01f3def92642 (diff)
All kinds of fixes for new selection modes
- circle-select now works - delete options for edge/face select work as to be expected. should check on a better set of choices in menu though - assign material / select material options work for new modes - shift+f fill didnt leave proper select flags... - border select on face-gones (fgons) works - 'draw normals' and fgons works now
Diffstat (limited to 'source/blender/src/editmesh_tools.c')
-rw-r--r--source/blender/src/editmesh_tools.c49
1 files changed, 25 insertions, 24 deletions
diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c
index 3cbf29599b3..6cba1758597 100644
--- a/source/blender/src/editmesh_tools.c
+++ b/source/blender/src/editmesh_tools.c
@@ -844,13 +844,13 @@ void delete_mesh(void)
efa= em->faces.first;
while(efa) {
nextvl= efa->next;
- /* delete only faces with 2 or more vertices selected */
+ /* delete only faces with 1 or more edges selected */
count= 0;
- if(efa->v1->f & SELECT) count++;
- if(efa->v2->f & SELECT) count++;
- if(efa->v3->f & SELECT) count++;
- if(efa->v4 && (efa->v4->f & SELECT)) count++;
- if(count>1) {
+ if(efa->e1->f & SELECT) count++;
+ if(efa->e2->f & SELECT) count++;
+ if(efa->e3->f & SELECT) count++;
+ if(efa->e4 && (efa->e4->f & SELECT)) count++;
+ if(count) {
BLI_remlink(&em->faces, efa);
free_editface(efa);
}
@@ -859,7 +859,7 @@ void delete_mesh(void)
eed= em->edges.first;
while(eed) {
nexted= eed->next;
- if( (eed->v1->f & SELECT) && (eed->v2->f & SELECT) ) {
+ if(eed->f & SELECT) {
remedge(eed);
free_editedge(eed);
}
@@ -883,30 +883,31 @@ void delete_mesh(void)
}
else if(event==1) {
str= "Erase Edges";
- eed= em->edges.first;
- while(eed) {
- nexted= eed->next;
- if( (eed->v1->f & SELECT) && (eed->v2->f & SELECT) ) {
- remedge(eed);
- free_editedge(eed);
- }
- eed= nexted;
- }
+ // faces first
efa= em->faces.first;
while(efa) {
nextvl= efa->next;
event=0;
- if( efa->v1->f & SELECT) event++;
- if( efa->v2->f & SELECT) event++;
- if( efa->v3->f & SELECT) event++;
- if(efa->v4 && (efa->v4->f & SELECT)) event++;
+ if( efa->e1->f & SELECT) event++;
+ if( efa->e2->f & SELECT) event++;
+ if( efa->e3->f & SELECT) event++;
+ if(efa->e4 && (efa->e4->f & SELECT)) event++;
- if(event>1) {
+ if(event) {
BLI_remlink(&em->faces, efa);
free_editface(efa);
}
efa= nextvl;
}
+ eed= em->edges.first;
+ while(eed) {
+ nexted= eed->next;
+ if(eed->f & SELECT) {
+ remedge(eed);
+ free_editedge(eed);
+ }
+ eed= nexted;
+ }
/* to remove loose vertices: */
eed= em->edges.first;
while(eed) {
@@ -917,7 +918,7 @@ void delete_mesh(void)
eve= em->verts.first;
while(eve) {
nextve= eve->next;
- if(eve->f & 1) {
+ if(eve->f & SELECT) {
BLI_remlink(&em->verts,eve);
free_editvert(eve);
}
@@ -940,7 +941,7 @@ void delete_mesh(void)
efa= em->faces.first;
while(efa) {
nextvl= efa->next;
- if(faceselectedAND(efa, 1)) {
+ if(efa->f & SELECT) {
BLI_remlink(&em->faces, efa);
free_editface(efa);
}
@@ -1040,7 +1041,7 @@ void fill_mesh(void)
BLI_end_edgefill();
waitcursor(0);
-
+ EM_select_flush();
countall();
allqueue(REDRAWVIEW3D, 0);
makeDispList(G.obedit);