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;
        }
 


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to