[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21847] branches/bmesh/blender/source/ blender: border and circle select fixes.

Joseph Eagar joeedh at gmail.com
Fri Jul 24 13:56:28 CEST 2009


Revision: 21847
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21847
Author:   joeedh
Date:     2009-07-24 13:56:26 +0200 (Fri, 24 Jul 2009)

Log Message:
-----------
border and circle select fixes.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c
    branches/bmesh/blender/source/blender/editors/space_view3d/view3d_select.c

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c	2009-07-24 11:48:45 UTC (rev 21846)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c	2009-07-24 11:56:26 UTC (rev 21847)
@@ -648,11 +648,16 @@
 
 	BMW_popstate(walker);
 
-	l = l->head.next->next;
-	if (l == l->radial.next->data) {
-		l = l->head.prev->prev;
+	l = l->radial.next->data;
+	
+	if (BLI_ghash_haskey(walker->visithash, l->f)) {
+		l = lwalk->l;
+		l = l->head.next->next;
+		if (l == l->radial.next->data) {
+			l = l->head.prev->prev;
+		}
+		l = l->radial.next->data;
 	}
-	l = l->radial.next->data;
 
 	if (l->f->len == 4 && !BLI_ghash_haskey(walker->visithash, l->f)) {
 		BMW_pushstate(walker);

Modified: branches/bmesh/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/space_view3d/view3d_select.c	2009-07-24 11:48:45 UTC (rev 21846)
+++ branches/bmesh/blender/source/blender/editors/space_view3d/view3d_select.c	2009-07-24 11:56:26 UTC (rev 21847)
@@ -159,7 +159,7 @@
 	eve = BMIter_New(&iter, em->bm, BM_VERTS_OF_MESH, NULL);
 	for ( ; eve; eve=BMIter_Step(&iter), index++) {
 		if(!BM_TestHFlag(eve, BM_HIDDEN)) {
-			if(EM_check_backbuf(index)) {
+			if(EDBM_check_backbuf(index)) {
 				BM_Select_Vert(em->bm, eve, select);
 			}
 		}
@@ -175,7 +175,7 @@
 	eed = BMIter_New(&iter, em->bm, BM_EDGES_OF_MESH, NULL);
 	for ( ; eed; eed=BMIter_Step(&iter), index++) {
 		if(!BM_TestHFlag(eed, BM_HIDDEN)) {
-			if(EM_check_backbuf(index)) {
+			if(EDBM_check_backbuf(index)) {
 				BM_Select_Edge(em->bm, eed, select);
 			}
 		}
@@ -191,7 +191,7 @@
 	efa = BMIter_New(&iter, em->bm, BM_FACES_OF_MESH, NULL);
 	for ( ; efa; efa=BMIter_Step(&iter), index++) {
 		if(!BM_TestHFlag(efa, BM_HIDDEN)) {
-			if(EM_check_backbuf(index)) {
+			if(EDBM_check_backbuf(index)) {
 				BM_Select_Face(em->bm, efa, select);
 			}
 		}
@@ -205,7 +205,7 @@
 
 	if (mface) {
 		for(a=1; a<=me->totface; a++, mface++) {
-			if(EM_check_backbuf(a)) {
+			if(EDBM_check_backbuf(a)) {
 				mface->flag = select?(mface->flag|ME_FACE_SEL):(mface->flag&~ME_FACE_SEL);
 			}
 		}
@@ -1660,9 +1660,9 @@
 		if (me) {
 			bm_vertoffs= me->totface+1;	/* max index array */
 
-			bbsel= EDBM_init_backbuf_circle(vc, mval[0], mval[1], (short)(rad+1.0));
-			EM_backbuf_checkAndSelectTFaces(me, selecting==LEFTMOUSE);
-			EM_free_backbuf();
+			//bbsel= EDBM_init_backbuf_circle(vc, mval[0], mval[1], (short)(rad+1.0));
+			//BMESH_TODO EM_backbuf_checkAndSelectTFaces(me, selecting==LEFTMOUSE);
+			//EDBM_free_backbuf();
 
 // XXX			object_tface_flags_changed(OBACT, 0);
 		}
@@ -1677,6 +1677,7 @@
 		data.mval[0] = mval[0];
 		data.mval[1] = mval[1];
 		data.radius = rad;
+		data.vc = vc;
 
 		if(vc->scene->toolsettings->selectmode & SCE_SELECT_VERTEX) {
 			if(bbsel) {
@@ -1702,7 +1703,7 @@
 			}
 		}
 
-		EM_free_backbuf();
+		EDBM_free_backbuf();
 		EDBM_selectmode_flush(vc->em);
 	}
 }





More information about the Bf-blender-cvs mailing list