creating the editmesh structure was running paint_facesel_test() for every vert and selected face.

not so efficient, check once.
This commit is contained in:
2010-11-14 23:37:03 +00:00
parent e0209b593b
commit cdf7a1eaca

View File

@@ -739,6 +739,7 @@ void make_editMesh(Scene *scene, Object *ob)
EditSelection *ese; EditSelection *ese;
float *co, (*keyco)[3]= NULL; float *co, (*keyco)[3]= NULL;
int tot, a, eekadoodle= 0; int tot, a, eekadoodle= 0;
const short is_paint_sel= paint_facesel_test(ob);
if(me->edit_mesh==NULL) if(me->edit_mesh==NULL)
me->edit_mesh= MEM_callocN(sizeof(EditMesh), "editmesh"); me->edit_mesh= MEM_callocN(sizeof(EditMesh), "editmesh");
@@ -789,7 +790,7 @@ void make_editMesh(Scene *scene, Object *ob)
evlist[a]= eve; evlist[a]= eve;
/* face select sets selection in next loop */ /* face select sets selection in next loop */
if(!paint_facesel_test(ob)) if(!is_paint_sel)
eve->f |= (mvert->flag & 1); eve->f |= (mvert->flag & 1);
if (mvert->flag & ME_HIDE) eve->h= 1; if (mvert->flag & ME_HIDE) eve->h= 1;
@@ -864,7 +865,7 @@ void make_editMesh(Scene *scene, Object *ob)
if(mface->flag & ME_FACE_SEL) { if(mface->flag & ME_FACE_SEL) {
efa->f |= SELECT; efa->f |= SELECT;
if(paint_facesel_test(ob)) { if(is_paint_sel) {
EM_select_face(efa, 1); /* flush down */ EM_select_face(efa, 1); /* flush down */
} }