Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorHoward Trickey <howard.trickey@gmail.com>2011-08-08 21:30:19 +0400
committerHoward Trickey <howard.trickey@gmail.com>2011-08-08 21:30:19 +0400
commitcbb2e58b68c9b05213475a8d6596d82a9824297d (patch)
treee11931953324a0667a91b113c433c059ab3168dc /source
parent5f75407e227ecefe6fedb03fe6750f7584417eab (diff)
fix mirror when have dup faces; prevent eekadoodle on tess recalculation
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c9
-rw-r--r--source/blender/blenkernel/intern/mesh.c8
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);