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);
        }
 }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to