[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16449] trunk/blender/source/blender/src: Bugfix for [#17363] Edge selection mode + knife twice = latter cut doesn' t do anything

Daniel Genrich daniel.genrich at gmx.net
Tue Sep 9 23:46:20 CEST 2008


Revision: 16449
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16449
Author:   genscher
Date:     2008-09-09 23:46:19 +0200 (Tue, 09 Sep 2008)

Log Message:
-----------
Bugfix for [#17363] Edge selection mode + knife twice = latter cut doesn't do anything

Modified Paths:
--------------
    trunk/blender/source/blender/src/editmesh_loop.c
    trunk/blender/source/blender/src/editmesh_tools.c

Modified: trunk/blender/source/blender/src/editmesh_loop.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_loop.c	2008-09-09 21:15:30 UTC (rev 16448)
+++ trunk/blender/source/blender/src/editmesh_loop.c	2008-09-09 21:46:19 UTC (rev 16449)
@@ -745,9 +745,9 @@
 			eed= eed->next;
 		}
 		
-		if      (mode==KNIFE_EXACT)    esubdivideflag(1, 0, B_KNIFE|B_PERCENTSUBD,1,SUBDIV_SELECT_ORIG);
-		else if (mode==KNIFE_MIDPOINT) esubdivideflag(1, 0, B_KNIFE,1,SUBDIV_SELECT_ORIG);
-		else if (mode==KNIFE_MULTICUT) esubdivideflag(1, 0, B_KNIFE,numcuts,SUBDIV_SELECT_ORIG);
+		if(mode==KNIFE_EXACT) esubdivideflag(SELECT, 0, B_KNIFE|B_PERCENTSUBD,1,SUBDIV_SELECT_ORIG);
+		else if (mode==KNIFE_MIDPOINT) esubdivideflag(SELECT, 0, B_KNIFE,1,SUBDIV_SELECT_ORIG);
+		else if (mode==KNIFE_MULTICUT) esubdivideflag(SELECT, 0, B_KNIFE,numcuts,SUBDIV_SELECT_ORIG);
 
 		eed=em->edges.first;
 		while(eed){

Modified: trunk/blender/source/blender/src/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_tools.c	2008-09-09 21:15:30 UTC (rev 16448)
+++ trunk/blender/source/blender/src/editmesh_tools.c	2008-09-09 21:46:19 UTC (rev 16449)
@@ -2698,16 +2698,21 @@
 	free_tagged_edges_faces(em->edges.first, em->faces.first); 
 	
 	if(seltype == SUBDIV_SELECT_ORIG  && G.qual  != LR_CTRLKEY) {
+		/* bugfix: vertex could get flagged as "not-selected"
+		// solution: clear flags before, not at the same time as setting SELECT flag -dg
+		*/
 		for(eed = em->edges.first;eed;eed = eed->next) {
-			if(eed->f2 & EDGENEW || eed->f2 & EDGEOLD) {
-				eed->f |= flag;
-				EM_select_edge(eed,1); 
-				
-			}else{
+			if(!(eed->f2 & EDGENEW || eed->f2 & EDGEOLD)) {
 				eed->f &= !flag;
 				EM_select_edge(eed,0); 
 			}
-		}   
+		}
+		for(eed = em->edges.first;eed;eed = eed->next) {
+			if(eed->f2 & EDGENEW || eed->f2 & EDGEOLD) {
+				eed->f |= flag;
+				EM_select_edge(eed,1);
+			}
+		}
 	} else if ((seltype == SUBDIV_SELECT_INNER || seltype == SUBDIV_SELECT_INNER_SEL)|| G.qual == LR_CTRLKEY) {
 		for(eed = em->edges.first;eed;eed = eed->next) {
 			if(eed->f2 & EDGEINNER) {





More information about the Bf-blender-cvs mailing list