forked from bartvdbraak/blender
uv editor: don't draw active face stipple when the face isn't visible (error from bmesh merge), also replace 'em->bm' with 'bm' var while drawing.
This commit is contained in:
parent
95654de53d
commit
cb6ab1df5e
@ -126,21 +126,20 @@ static int draw_uvs_face_check(Scene *scene)
|
||||
|
||||
static void draw_uvs_shadow(Object *obedit)
|
||||
{
|
||||
BMEditMesh *em;
|
||||
BMEditMesh *em = BMEdit_FromObject(obedit);
|
||||
BMesh *bm = em->bm;
|
||||
BMFace *efa;
|
||||
BMLoop *l;
|
||||
BMIter iter, liter;
|
||||
MLoopUV *luv;
|
||||
|
||||
em = BMEdit_FromObject(obedit);
|
||||
|
||||
/* draws the grey mesh when painting */
|
||||
glColor3ub(112, 112, 112);
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv= CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv= CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
@ -163,6 +162,7 @@ static int draw_uvs_dm_shadow(DerivedMesh *dm)
|
||||
|
||||
static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTexPoly *activetf)
|
||||
{
|
||||
BMesh *bm = em->bm;
|
||||
BMFace *efa;
|
||||
BMLoop *l;
|
||||
BMIter iter, liter;
|
||||
@ -181,8 +181,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
{
|
||||
float totarea=0.0f, totuvarea=0.0f, areadiff, uvarea, area;
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
|
||||
BLI_array_empty(tf_uv);
|
||||
BLI_array_empty(tf_uvorig);
|
||||
@ -190,8 +190,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
BLI_array_growitems(tf_uvorig, efa->len);
|
||||
|
||||
i = 0;
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv= CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv= CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
|
||||
copy_v2_v2(tf_uvorig[i], luv->uv);
|
||||
|
||||
@ -200,7 +200,7 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
|
||||
poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len);
|
||||
|
||||
totarea += BM_face_area_calc(em->bm, efa);
|
||||
totarea += BM_face_area_calc(bm, efa);
|
||||
//totuvarea += tf_area(tf, efa->v4!=0);
|
||||
totuvarea += poly_uv_area(tf_uv, efa->len);
|
||||
|
||||
@ -218,11 +218,11 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
col[0] = 1.0;
|
||||
col[1] = col[2] = 0.0;
|
||||
glColor3fv(col);
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (BM_elem_flag_test(efa, BM_ELEM_TAG)) {
|
||||
glBegin(GL_POLYGON);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -230,9 +230,9 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
}
|
||||
}
|
||||
else {
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (BM_elem_flag_test(efa, BM_ELEM_TAG)) {
|
||||
area = BM_face_area_calc(em->bm, efa) / totarea;
|
||||
area = BM_face_area_calc(bm, efa) / totarea;
|
||||
|
||||
BLI_array_empty(tf_uv);
|
||||
BLI_array_empty(tf_uvorig);
|
||||
@ -240,8 +240,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
BLI_array_growitems(tf_uvorig, efa->len);
|
||||
|
||||
i = 0;
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv= CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv= CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
|
||||
copy_v2_v2(tf_uvorig[i], luv->uv);
|
||||
|
||||
@ -264,8 +264,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
glColor3fv(col);
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -291,8 +291,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
|
||||
if (uvedit_face_visible(scene, ima, efa, tf)) {
|
||||
nverts = efa->len;
|
||||
@ -310,15 +310,15 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
BLI_array_growitems(av, nverts);
|
||||
BLI_array_growitems(auv, nverts);
|
||||
|
||||
BM_ITER_INDEX(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa, i) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER_INDEX(l, &liter, bm, BM_LOOPS_OF_FACE, efa, i) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
copy_v2_v2(tf_uvorig[i], luv->uv);
|
||||
}
|
||||
|
||||
poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, nverts);
|
||||
|
||||
j = nverts - 1;
|
||||
BM_ITER_INDEX(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa, i) {
|
||||
BM_ITER_INDEX(l, &liter, bm, BM_LOOPS_OF_FACE, efa, i) {
|
||||
sub_v2_v2v2(auv[i], tf_uv[j], tf_uv[i]); normalize_v2(auv[i]);
|
||||
sub_v3_v3v3(av[i], l->prev->v->co, l->v->co); normalize_v3(av[i]);
|
||||
j = i;
|
||||
@ -336,8 +336,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
}
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
BM_ITER_INDEX(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa, i) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER_INDEX(l, &liter, bm, BM_LOOPS_OF_FACE, efa, i) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
a = fabsf(uvang[i]-ang[i])/(float)M_PI;
|
||||
weight_to_rgb(col, 1.0f-powf((1.0f-a), 2.0f));
|
||||
glColor3fv(col);
|
||||
@ -439,8 +439,9 @@ static void draw_uvs_texpaint(SpaceImage *sima, Scene *scene, Object *ob)
|
||||
static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
{
|
||||
ToolSettings *ts;
|
||||
Mesh *me= obedit->data;
|
||||
BMEditMesh *em;
|
||||
Mesh *me = obedit->data;
|
||||
BMEditMesh *em = me->edit_btmesh;
|
||||
BMesh *bm = em->bm;
|
||||
BMFace *efa, *efa_act, *activef;
|
||||
BMLoop *l;
|
||||
BMIter iter, liter;
|
||||
@ -454,9 +455,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
|
||||
StitchPreviewer *stitch_preview = uv_get_stitch_previewer();
|
||||
|
||||
em= me->edit_btmesh;
|
||||
activetf= EDBM_mtexpoly_active_get(em, &efa_act, FALSE); /* will be set to NULL if hidden */
|
||||
activef = BM_active_face_get(em->bm, FALSE);
|
||||
activef = BM_active_face_get(bm, FALSE);
|
||||
ts= scene->toolsettings;
|
||||
|
||||
drawfaces= draw_uvs_face_check(scene);
|
||||
@ -503,8 +503,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
|
||||
if (uvedit_face_visible(scene, ima, efa, tf)) {
|
||||
BM_elem_flag_enable(efa, BM_ELEM_TAG);
|
||||
@ -516,8 +516,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
glColor4ubv((GLubyte *)col1);
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -533,8 +533,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
else {
|
||||
/* would be nice to do this within a draw loop but most below are optional, so it would involve too many checks */
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
tf= CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
|
||||
if (uvedit_face_visible(scene, ima, efa, tf)) {
|
||||
BM_elem_flag_enable(efa, BM_ELEM_TAG);
|
||||
@ -551,22 +551,25 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
/* 3. draw active face stippled */
|
||||
|
||||
if (activef) {
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
UI_ThemeColor4(TH_EDITMESH_ACTIVE);
|
||||
tf = CustomData_bmesh_get(&bm->pdata, activef->head.data, CD_MTEXPOLY);
|
||||
if (uvedit_face_visible(scene, ima, activef, tf)) {
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
UI_ThemeColor4(TH_EDITMESH_ACTIVE);
|
||||
|
||||
glEnable(GL_POLYGON_STIPPLE);
|
||||
glPolygonStipple(stipple_quarttone);
|
||||
glEnable(GL_POLYGON_STIPPLE);
|
||||
glPolygonStipple(stipple_quarttone);
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, activef) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
glBegin(GL_POLYGON);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, activef) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
glDisable(GL_POLYGON_STIPPLE);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
glDisable(GL_POLYGON_STIPPLE);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
/* 4. draw edges */
|
||||
@ -579,17 +582,17 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
|
||||
switch(sima->dt_uv) {
|
||||
case SI_UVDT_DASH:
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY);
|
||||
|
||||
if (tf) {
|
||||
cpack(0x111111);
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -598,17 +601,17 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
cpack(0x909090);
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
#if 0
|
||||
glBegin(GL_LINE_STRIP);
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, efa->lbase->head.data, CD_MLOOPUV);
|
||||
luv = CustomData_bmesh_get(&bm->ldata, efa->lbase->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, efa->lbase->next->head.data, CD_MLOOPUV);
|
||||
luv = CustomData_bmesh_get(&bm->ldata, efa->lbase->next->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
glEnd();
|
||||
#endif
|
||||
@ -622,13 +625,13 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
if (sima->dt_uv==SI_UVDT_WHITE) glColor3f(1.0f, 1.0f, 1.0f);
|
||||
else glColor3f(0.0f, 0.0f, 0.0f);
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -638,13 +641,13 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
glLineWidth(3);
|
||||
cpack(0x0);
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -661,16 +664,16 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
if (interpedges) {
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
sel = (uvedit_uv_selected(em, scene, l)? 1 : 0);
|
||||
glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2);
|
||||
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -679,20 +682,20 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
glShadeModel(GL_FLAT);
|
||||
}
|
||||
else {
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
glBegin(GL_LINES);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
sel = (uvedit_edge_selected(em, scene, l)? 1 : 0);
|
||||
if (sel != lastsel) {
|
||||
glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2);
|
||||
lastsel = sel;
|
||||
}
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->next->head.data, CD_MLOOPUV);
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->next->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -701,13 +704,13 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
}
|
||||
else {
|
||||
/* no nice edges */
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
glVertex2fv(luv->uv);
|
||||
}
|
||||
glEnd();
|
||||
@ -734,7 +737,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
UI_ThemeColor(TH_WIRE);
|
||||
|
||||
bglBegin(GL_POINTS);
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
@ -749,7 +752,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
UI_ThemeColor(TH_FACE_DOT);
|
||||
|
||||
bglBegin(GL_POINTS);
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
@ -770,12 +773,12 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
glPointSize(pointsize);
|
||||
|
||||
bglBegin(GL_POINTS);
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
if (!uvedit_uv_selected(em, scene, l))
|
||||
bglVertex2fv(luv->uv);
|
||||
}
|
||||
@ -788,12 +791,12 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
cpack(0xFF);
|
||||
|
||||
bglBegin(GL_POINTS);
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
|
||||
if (luv->flag & MLOOPUV_PINNED)
|
||||
bglVertex2fv(luv->uv);
|
||||
@ -806,12 +809,12 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
|
||||
glPointSize(pointsize);
|
||||
|
||||
bglBegin(GL_POINTS);
|
||||
BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
|
||||
BM_ITER(efa, &iter, bm, BM_FACES_OF_MESH, NULL) {
|
||||
if (!BM_elem_flag_test(efa, BM_ELEM_TAG))
|
||||
continue;
|
||||
|
||||
BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, efa) {
|
||||
luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
|
||||
|
||||
if (uvedit_uv_selected(em, scene, l))
|
||||
bglVertex2fv(luv->uv);
|
||||
|
Loading…
Reference in New Issue
Block a user