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:
authorCampbell Barton <ideasman42@gmail.com>2008-03-25 19:16:11 +0300
committerCampbell Barton <ideasman42@gmail.com>2008-03-25 19:16:11 +0300
commit1b94e21f9c97cd3d719a32a56336cc77b9e23826 (patch)
tree31baf7a980a1adc72feb5f11bf23a93a8439de88 /source/blender/src/editmesh_mods.c
parent74e835342e6559905f4cdebe6191799629e6fd32 (diff)
selecting similar edges (Shift+G in edge mode) didnt flush selection from edges to faces, so you could have all edges of a face selected without the face being selected.
Diffstat (limited to 'source/blender/src/editmesh_mods.c')
-rw-r--r--source/blender/src/editmesh_mods.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c
index a5589ccd9c5..9c8b6597ff1 100644
--- a/source/blender/src/editmesh_mods.c
+++ b/source/blender/src/editmesh_mods.c
@@ -960,7 +960,7 @@ EDGE GROUP
-int edgegroup_select(short mode)
+static int edgegroup_select__internal(short mode)
{
EditMesh *em = G.editMesh;
EditEdge *eed, *base_eed=NULL;
@@ -1155,11 +1155,35 @@ int edgegroup_select(short mode)
}
}
}
- }
+ }
+ return selcount;
+}
+/* wrap the above function but do selection flushing edge to face */
+int edgegroup_select(short mode)
+{
+ int selcount = edgegroup_select__internal(mode);
+
+ if (selcount) {
+ /* Could run a generic flush function,
+ * but the problem is only that all edges of a face
+ * can be selected without the face becoming selected */
+ EditMesh *em = G.editMesh;
+ EditFace *efa;
+ for(efa= em->faces.first; efa; efa= efa->next) {
+ if (efa->v4) {
+ if (efa->e1->f&SELECT && efa->e2->f&SELECT && efa->e3->f&SELECT && efa->e4->f&SELECT)
+ efa->f |= SELECT;
+ } else {
+ if (efa->e1->f&SELECT && efa->e2->f&SELECT && efa->e3->f&SELECT)
+ efa->f |= SELECT;
+ }
+ }
+ }
return selcount;
}
+
/*
VERT GROUP
mode 1: same normal