[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21883] branches/bmesh/blender/source/ blender: assorted uv fixes
Joseph Eagar
joeedh at gmail.com
Sat Jul 25 16:13:26 CEST 2009
Revision: 21883
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21883
Author: joeedh
Date: 2009-07-25 16:13:26 +0200 (Sat, 25 Jul 2009)
Log Message:
-----------
assorted uv fixes
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c
branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c
branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c
branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c 2009-07-25 14:09:15 UTC (rev 21882)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c 2009-07-25 14:13:26 UTC (rev 21883)
@@ -724,12 +724,13 @@
BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL)
BMINDEX_SET(eve, i++);
+ glBegin(GL_TRIANGLES);
for (i=0; i<em->tottri; i++) {
BMLoop **ls = em->looptris[i];
MTexPoly *tp= CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY);
MTFace mtf = {0};
unsigned char *cp= NULL;
- int drawSmooth= BM_TestHFlag(ls[0]->f->head.data, BM_SMOOTH);
+ int drawSmooth= BM_TestHFlag(ls[0]->f, BM_SMOOTH);
int flag;
efa = ls[0]->f;
@@ -757,8 +758,6 @@
glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
}
-
- glBegin(GL_TRIANGLES);
if (!drawSmooth) {
glNormal3fv(bmdm->faceNos[i]);
@@ -780,22 +779,22 @@
glTexCoord2fv(luv[0]->uv);
glColor3ub(lcol[0]->r, lcol[0]->g, lcol[0]->b);
- glVertex3fv(vertexCos[BMINDEX_GET(ls[0]->v)]);
glNormal3fv(vertexNos[BMINDEX_GET(ls[0]->v)]);
+ glVertex3fv(vertexCos[BMINDEX_GET(ls[0]->v)]);
glTexCoord2fv(luv[1]->uv);
glColor3ub(lcol[1]->r, lcol[1]->g, lcol[1]->b);
- glVertex3fv(vertexCos[BMINDEX_GET(ls[1]->v)]);
glNormal3fv(vertexNos[BMINDEX_GET(ls[1]->v)]);
+ glVertex3fv(vertexCos[BMINDEX_GET(ls[1]->v)]);
glTexCoord2fv(luv[2]->uv);
glColor3ub(lcol[2]->r, lcol[2]->g, lcol[2]->b);
- glVertex3fv(vertexCos[BMINDEX_GET(ls[2]->v)]);
glNormal3fv(vertexNos[BMINDEX_GET(ls[2]->v)]);
+ glVertex3fv(vertexCos[BMINDEX_GET(ls[2]->v)]);
}
- glEnd();
}
}
+ glEnd();
} else {
i = 0;
BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL)
@@ -806,7 +805,7 @@
MTexPoly *tp= CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY);
MTFace mtf = {0};
unsigned char *cp= NULL;
- int drawSmooth= BM_TestHFlag(ls[0]->f->head.data, BM_SMOOTH);
+ int drawSmooth= BM_TestHFlag(ls[0]->f, BM_SMOOTH);
int flag;
efa = ls[0]->f;
@@ -834,7 +833,6 @@
glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
}
-
glBegin(GL_TRIANGLES);
if (!drawSmooth) {
glNormal3fv(efa->no);
@@ -857,98 +855,23 @@
glTexCoord2fv(luv[0]->uv);
glColor3ub(lcol[0]->r, lcol[0]->g, lcol[0]->b);
- glVertex3fv(ls[0]->v->co);
glNormal3fv(ls[0]->v->no);
+ glVertex3fv(ls[0]->v->co);
glTexCoord2fv(luv[1]->uv);
glColor3ub(lcol[1]->r, lcol[1]->g, lcol[1]->b);
- glVertex3fv(ls[1]->v->co);
glNormal3fv(ls[1]->v->no);
+ glVertex3fv(ls[1]->v->co);
glTexCoord2fv(luv[2]->uv);
glColor3ub(lcol[2]->r, lcol[2]->g, lcol[2]->b);
- glVertex3fv(ls[2]->v->co);
glNormal3fv(ls[2]->v->no);
+ glVertex3fv(ls[2]->v->co);
}
glEnd();
}
}
}
-#if 0
- else {
- for (i=0,efa= bm->faces.first; efa; i++,efa= efa->next) {
- MTFace *tf= CustomData_bm_get(&bm->pdata, efa->data, CD_MTFACE);
- MCol *mcol= CustomData_bm_get(&bm->pdata, efa->data, CD_MCOL);
- unsigned char *cp= NULL;
- int drawSmooth= (efa->flag & ME_SMOOTH);
- int flag;
-
- if(drawParams)
- flag= drawParams(tf, mcol, efa->mat_nr);
- else if(drawParamsMapped)
- flag= drawParamsMapped(userData, i);
- else
- flag= 1;
-
- if(flag != 0) { /* flag 0 == the face is hidden or invisible */
- /* we always want smooth here since otherwise vertex colors dont interpolate */
- if (mcol) {
- if (flag==1) {
- cp= (unsigned char*)mcol;
- }
- } else {
- glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
- }
-
- glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
- if (!drawSmooth) {
- glNormal3fv(efa->n);
-
- if(tf) glTexCoord2fv(tf->uv[0]);
- if(cp) glColor3ub(cp[3], cp[2], cp[1]);
- glVertex3fv(efa->v1->co);
-
- if(tf) glTexCoord2fv(tf->uv[1]);
- if(cp) glColor3ub(cp[7], cp[6], cp[5]);
- glVertex3fv(efa->v2->co);
-
- if(tf) glTexCoord2fv(tf->uv[2]);
- if(cp) glColor3ub(cp[11], cp[10], cp[9]);
- glVertex3fv(efa->v3->co);
-
- if(efa->v4) {
- if(tf) glTexCoord2fv(tf->uv[3]);
- if(cp) glColor3ub(cp[15], cp[14], cp[13]);
- glVertex3fv(efa->v4->co);
- }
- } else {
- if(tf) glTexCoord2fv(tf->uv[0]);
- if(cp) glColor3ub(cp[3], cp[2], cp[1]);
- glNormal3fv(efa->v1->no);
- glVertex3fv(efa->v1->co);
-
- if(tf) glTexCoord2fv(tf->uv[1]);
- if(cp) glColor3ub(cp[7], cp[6], cp[5]);
- glNormal3fv(efa->v2->no);
- glVertex3fv(efa->v2->co);
-
- if(tf) glTexCoord2fv(tf->uv[2]);
- if(cp) glColor3ub(cp[11], cp[10], cp[9]);
- glNormal3fv(efa->v3->no);
- glVertex3fv(efa->v3->co);
-
- if(efa->v4) {
- if(tf) glTexCoord2fv(tf->uv[3]);
- if(cp) glColor3ub(cp[15], cp[14], cp[13]);
- glNormal3fv(efa->v4->no);
- glVertex3fv(efa->v4->co);
- }
- }
- glEnd();
- }
- }
- }
-#endif
}
static void bmDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, int has_vcol, int matnr))
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c 2009-07-25 14:09:15 UTC (rev 21882)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c 2009-07-25 14:13:26 UTC (rev 21883)
@@ -537,6 +537,7 @@
which much be either a BMVert, BMEdge,
or BMFace, converted to mesh flags.
*/
+
int BMFlags_To_MEFlags(void *element) {
BMHeader *h = element;
int f = 0;
@@ -551,9 +552,9 @@
if (h->flag & BM_SEAM) f |= ME_SEAM;
if (h->flag & BM_SHARP) f |= ME_SHARP;
if (BM_Wire_Edge(NULL, element)) f |= ME_LOOSEEDGE;
+ f |= ME_EDGEDRAW;
} else if (h->type == BM_VERT) {
if (h->flag & BM_SELECT) f |= BM_SELECT;
- if (h->flag & BM_HIDDEN) f |= ME_HIDE;
}
return f;
Modified: branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c 2009-07-25 14:09:15 UTC (rev 21882)
+++ branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c 2009-07-25 14:13:26 UTC (rev 21883)
@@ -164,8 +164,8 @@
BMIter iter, liter;
int i, j, ototvert, totloop, numTex, numCol;
- numTex = CustomData_number_of_layers(&me->pdata, CD_MLOOPUV);
- numCol = CustomData_number_of_layers(&me->ldata, CD_MLOOPCOL);
+ numTex = CustomData_number_of_layers(&bm->pdata, CD_MTEXPOLY);
+ numCol = CustomData_number_of_layers(&bm->ldata, CD_MLOOPCOL);
bmtess = BM_Copy_Mesh(bm);
BMO_CallOpf(bmtess, "makefgon trifan=%i", 0);
Modified: branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c 2009-07-25 14:09:15 UTC (rev 21882)
+++ branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c 2009-07-25 14:13:26 UTC (rev 21883)
@@ -432,6 +432,7 @@
if (mpoly && mpoly->flag&ME_HIDE) return 0;
+ memset(&mtf, 0, sizeof(mtf));
if (tpoly) {
mtf.flag = tpoly->flag;
mtf.tpage = tpoly->tpage;
@@ -441,7 +442,7 @@
mtf.unwrap = tpoly->unwrap;
}
- return draw_tface__set_draw(&mtf, CustomData_has_layer(&me->ldata, CD_MLOOPUV), matnr);
+ return draw_tface__set_draw(&mtf, CustomData_has_layer(&me->ldata, CD_MLOOPCOL), matnr);
}
static int draw_em_tf_mapped__set_draw(void *userData, int index)
@@ -456,9 +457,11 @@
return 0;
tpoly = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
- has_vcol = CustomData_has_layer(&em->bm->ldata, CD_MLOOPUV);
+ has_vcol = CustomData_has_layer(&em->bm->ldata, CD_MLOOPCOL);
matnr = efa->mat_nr;
+ memset(&mtf, 0, sizeof(mtf));
+
if (tpoly) {
mtf.flag = tpoly->flag;
mtf.tpage = tpoly->tpage;
Modified: branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c 2009-07-25 14:09:15 UTC (rev 21882)
+++ branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c 2009-07-25 14:13:26 UTC (rev 21883)
@@ -116,7 +116,8 @@
/* ensure we have a uv layer */
if(!CustomData_has_layer(&em->bm->pdata, CD_MTEXPOLY)) {
- BM_add_data_layer(em->bm, &em->bm->pdata, CD_MTFACE);
+ BM_add_data_layer(em->bm, &em->bm->pdata, CD_MTEXPOLY);
+ BM_add_data_layer(em->bm, &em->bm->ldata, CD_MLOOPUV);
update= 1;
}
More information about the Bf-blender-cvs
mailing list