[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14238] trunk/blender/source/blender/src/ editmesh_mods.c: 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 .

Campbell Barton ideasman42 at gmail.com
Tue Mar 25 17:16:11 CET 2008


Revision: 14238
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14238
Author:   campbellbarton
Date:     2008-03-25 17:16:11 +0100 (Tue, 25 Mar 2008)

Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/src/editmesh_mods.c

Modified: trunk/blender/source/blender/src/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_mods.c	2008-03-25 13:18:13 UTC (rev 14237)
+++ trunk/blender/source/blender/src/editmesh_mods.c	2008-03-25 16:16:11 UTC (rev 14238)
@@ -960,7 +960,7 @@
 
 
 
-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 @@
 				}
 			}
 		}
-	} 
+	}	
 	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





More information about the Bf-blender-cvs mailing list