[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42112] branches/bmesh/blender/source/ blender/bmesh/operators/mesh_conv.c: fix [#29313] In object mode wire frame edges between two planar faces render
Campbell Barton
ideasman42 at gmail.com
Thu Nov 24 03:52:47 CET 2011
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);
More information about the Bf-blender-cvs
mailing list