the BMesh select mode wasnt being set on entering editmode, this made snap to selection fail.

This commit is contained in:
2011-10-28 08:09:34 +00:00
parent 243ef037c9
commit f5cf238884
3 changed files with 8 additions and 5 deletions

View File

@@ -135,8 +135,11 @@ typedef struct BMesh {
struct BLI_mempool *looplistpool;
/*should be copy of scene select mode*/
int selectmode;
/* should be copy of scene select mode */
/* stored in BMEditMesh too, this is a bit confusing,
* make sure the're in sync!
* Only use when the edit mesh cant be accessed - campbell */
short selectmode;
/*ID of the shape key this bmesh came from*/
int shapenr;

View File

@@ -281,7 +281,7 @@ void EDBM_MakeEditBMesh(ToolSettings *ts, Scene *UNUSED(scene), Object *ob)
}
me->edit_btmesh = BMEdit_Create(bm);
me->edit_btmesh->selectmode = ts->selectmode;
me->edit_btmesh->selectmode= me->edit_btmesh->bm->selectmode= ts->selectmode;
me->edit_btmesh->me = me;
me->edit_btmesh->ob = ob;
}

View File

@@ -235,7 +235,7 @@ static void make_trans_verts(Object *obedit, float *min, float *max, int mode)
// transform now requires awareness for select mode, so we tag the f1 flags in verts
tottrans= 0;
if(em->bm->selectmode & SCE_SELECT_VERTEX) {
if(em->selectmode & SCE_SELECT_VERTEX) {
BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL) {
if(!BM_TestHFlag(eve, BM_HIDDEN) && BM_TestHFlag(eve, BM_SELECT)) {
BM_SetIndex(eve, 1);
@@ -244,7 +244,7 @@ static void make_trans_verts(Object *obedit, float *min, float *max, int mode)
else BM_SetIndex(eve, 0);
}
}
else if(em->bm->selectmode & SCE_SELECT_EDGE) {
else if(em->selectmode & SCE_SELECT_EDGE) {
BMEdge *eed;
BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL)