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) { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs