[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