[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18983] branches/bmesh/blender/source/ blender/bmesh: another dissolve bugfix.
Joseph Eagar
joeedh at gmail.com
Sun Feb 15 15:02:27 CET 2009
Revision: 18983
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18983
Author: joeedh
Date: 2009-02-15 15:02:27 +0100 (Sun, 15 Feb 2009)
Log Message:
-----------
another dissolve bugfix. commented out some code I put there for helping in debugging tracing, also added another case to conversion code. I think I got the pocket case Briggs has always talked about, e.g. a three-edged face where two edges share the same verts. So that at least shouldn't crash, though not really sure if simply ignoring such faces is a good idea.
Modified Paths:
--------------
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c
branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c 2009-02-15 14:01:27 UTC (rev 18982)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c 2009-02-15 14:02:27 UTC (rev 18983)
@@ -152,6 +152,9 @@
else {
eve4= NULL;
}
+
+ if (eve1==eve2 || eve1==eve3 || eve1==eve4 || eve2==eve3 || eve3==eve4
+ || eve2==eve4) return NULL;
efa = addfacelist(em, eve1, eve2, eve3, eve4, NULL, NULL);
if (!efa) return NULL;
Modified: branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c 2009-02-15 14:01:27 UTC (rev 18982)
+++ branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c 2009-02-15 14:02:27 UTC (rev 18983)
@@ -84,23 +84,23 @@
bmesh_kf(bm, f);
bmesh_ke(bm, fe);
}
- } else if (f->len == 3) {
+ } /*else if (f->len == 3) {
BMEdge *ed[3];
BMVert *vt[3];
BMLoop *lp[3];
int i=0;
- /*check for duplicate edges*/
+ //check for duplicate edges
l = BMIter_New(&liter, bm, BM_LOOPS_OF_FACE, f);
for (; l; l=BMIter_Step(&liter)) {
- ed[i++] = l->e;
- lp[i++] = l;
+ ed[i] = l->e;
+ lp[i] = l;
vt[i++] = l->v;
}
if (vt[0] == vt[1] || vt[0] == vt[2]) {
i += 1;
}
- }
+ }*/
}
}
if (oldlen == len) break;
More information about the Bf-blender-cvs
mailing list