diff options
author | Howard Trickey <howard.trickey@gmail.com> | 2011-08-08 21:30:19 +0400 |
---|---|---|
committer | Howard Trickey <howard.trickey@gmail.com> | 2011-08-08 21:30:19 +0400 |
commit | cbb2e58b68c9b05213475a8d6596d82a9824297d (patch) | |
tree | e11931953324a0667a91b113c433c059ab3168dc /source | |
parent | 5f75407e227ecefe6fedb03fe6750f7584417eab (diff) |
fix mirror when have dup faces; prevent eekadoodle on tess recalculation
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 9 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh.c | 8 |
2 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index f04eeed585b..fef186fee9a 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -2236,15 +2236,8 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, int *vtargetmap) if (ml->v == -1) continue; - if (vtargetmap[ml->v] != -1) { - me = &cddm->medge[ml->e]; - if (me->v1 == ml->v) - me->v1 = vtargetmap[ml->v]; - else - me->v2 = vtargetmap[ml->v]; - + if (vtargetmap[ml->v] != -1) ml->v = vtargetmap[ml->v]; - } } /*now go through and fix edges and faces*/ diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 5e05c1090d9..624b3ee9e8b 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -2364,6 +2364,14 @@ int mesh_recalcTesselation(CustomData *fdata, mf->v2 = mloop[mf->v2].v; mf->v3 = mloop[mf->v3].v; + if(mf->v3==0) { + /*prevent eekadoodle*/ + SWAP(int, mf->v1, mf->v2); + SWAP(int, mf->v2, mf->v3); + SWAP(int, lindex[0], lindex[1]); + SWAP(int, lindex[1], lindex[2]); + } + mesh_loops_to_tri_corners(fdata, ldata, pdata, lindex, i, mf->v4); |