[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