=bmesh= fixed weld bug in uv editor

This commit is contained in:
Joseph Eagar
2011-05-24 01:34:28 +00:00
parent 88f4087a57
commit 27a728653e
2 changed files with 12 additions and 3 deletions

View File

@@ -58,13 +58,20 @@ void bmesh_extrude_face_indiv_exec(BMesh *bm, BMOperator *op)
BMO_SetFlag(bm, f, EXT_DEL);
f2 = BM_Make_Ngon(bm, edges[0]->v1, edges[0]->v2, edges, f->len, 0);
f2 = BM_Make_Ngon(bm, lastv, firstv, edges, f->len, 0);
if (!f2) {
BMO_RaiseError(bm, op, BMERR_MESH_ERROR, "Extrude failed; could not create face");
BLI_array_free(edges);
return;
}
BMO_SetFlag(bm, f2, EXT_KEEP);
BM_Copy_Attributes(bm, bm, f, f2);
l2 = BMIter_New(&liter2, bm, BM_LOOPS_OF_FACE, f2);
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, f) {
BM_Copy_Attributes(bm, bm, l, l2);
l3 = l->next;
l4 = l2->next;
@@ -79,8 +86,9 @@ void bmesh_extrude_face_indiv_exec(BMesh *bm, BMOperator *op)
}
}
BMO_CallOpf(bm, "del geom=%ff context=%d", EXT_DEL, DEL_ONLYFACES);
BLI_array_free(edges);
BMO_CallOpf(bm, "del geom=%ff context=%d", EXT_DEL, DEL_ONLYFACES);
BMO_Flag_To_Slot(bm, op, "faceout", EXT_KEEP, BM_FACE);
}

View File

@@ -519,11 +519,12 @@ int ED_uvedit_minmax(Scene *scene, Image *ima, Object *obedit, float *min, float
continue;
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
if (uvedit_uv_selected(em, scene, l))
if (uvedit_uv_selected(em, scene, l)) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
DO_MINMAX2(luv->uv, min, max);
sel = 1;
}
}
}
return sel;