Revision: 42112
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42112
Author:   campbellbarton
Date:     2011-11-24 02:52:38 +0000 (Thu, 24 Nov 2011)
Log Message:
-----------
fix [#29313] In object mode wire frame edges between two planar faces render

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c

Modified: branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c   
2011-11-24 01:33:41 UTC (rev 42111)
+++ branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c   
2011-11-24 02:52:38 UTC (rev 42112)
@@ -420,7 +420,7 @@
        MLoop *mloop;
        MPoly *mpoly;
        MVert *mvert, *oldverts;
-       MEdge *medge;
+       MEdge *med, *medge;
        MFace *mface;
        BMVert *v, *eve;
        BMEdge *e;
@@ -514,17 +514,18 @@
        }
        bm->elem_index_dirty &= ~BM_VERT;
 
+       med= medge;
        i = 0;
        BM_ITER(e, &iter, bm, BM_EDGES_OF_MESH, NULL) {
                float *crease = CustomData_bmesh_get(&bm->edata, e->head.data, 
CD_CREASE);
                float *bweight = CustomData_bmesh_get(&bm->edata, e->head.data, 
CD_BWEIGHT);
                
-               medge->v1 = BM_GetIndex(e->v1);
-               medge->v2 = BM_GetIndex(e->v2);
-               medge->crease = crease ? (char)((*crease)*255) : 0;
-               medge->bweight = bweight ? (char)((*bweight)*255) : 0;
+               med->v1 = BM_GetIndex(e->v1);
+               med->v2 = BM_GetIndex(e->v2);
+               med->crease = crease ? (char)((*crease)*255) : 0;
+               med->bweight = bweight ? (char)((*bweight)*255) : 0;
                
-               medge->flag = BMFlags_To_MEFlags(e);
+               med->flag = BMFlags_To_MEFlags(e);
                
                BM_SetIndex(e, i); /* set_inline */
 
@@ -532,7 +533,7 @@
                CustomData_from_bmesh_block(&bm->edata, &me->edata, 
e->head.data, i);
 
                i++;
-               medge++;
+               med++;
                BM_CHECK_ELEMENT(bm, e);
        }
        bm->elem_index_dirty &= ~BM_EDGE;
@@ -660,6 +661,21 @@
                        mloop->e = BM_GetIndex(l->e);
                        mloop->v = BM_GetIndex(l->v);
 
+
+#if 1
+                       /* this is a cheap way to set the edge draw, just so 
happens
+                        * at this part of the code the info is available, feel 
free to
+                        * move this block of code elsewhere */
+
+                       if ( (l != l->radial_next) &&
+                            (medge[mloop->e].flag & ME_EDGEDRAW) &&
+                            (dot_v3v3(f->no, l->radial_next->f->no) > 0.995f))
+                       {
+                               medge[mloop->e].flag &= ~ME_EDGEDRAW;
+                       }
+#endif
+
+
                        /*copy over customdata*/
                        CustomData_from_bmesh_block(&bm->ldata, &me->ldata, 
l->head.data, j);
                        BM_CHECK_ELEMENT(bm, l);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to