diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-02-08 15:48:36 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-02-08 15:48:36 +0300 |
commit | c3e61cab8a95fe4fe6878ea6adb0f97f5118d6fb (patch) | |
tree | 5e486e059dece19dd9613688c22e5d08ad4022f6 /source/blender/blenkernel/intern/mesh_evaluate.c | |
parent | 022a481789efc40297acc5b7a3c9efbe4a75bc27 (diff) | |
parent | f088c6b9f6d69e7f1af15a059f122589ee6a39ab (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/blenkernel/intern/mesh_evaluate.c')
-rw-r--r-- | source/blender/blenkernel/intern/mesh_evaluate.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/mesh_evaluate.c b/source/blender/blenkernel/intern/mesh_evaluate.c index e33f4a7feab..531291c30bb 100644 --- a/source/blender/blenkernel/intern/mesh_evaluate.c +++ b/source/blender/blenkernel/intern/mesh_evaluate.c @@ -2792,9 +2792,22 @@ void BKE_mesh_recalc_looptri( } else if (mp_totloop == 4) { ML_TO_MLT(0, 1, 2); + MLoopTri *mlt_a = mlt; mlooptri_index++; ML_TO_MLT(0, 2, 3); + MLoopTri *mlt_b = mlt; mlooptri_index++; + + if (UNLIKELY(is_quad_flip_v3_first_third_fast( + mvert[mloop[mlt_a->tri[0]].v].co, + mvert[mloop[mlt_a->tri[1]].v].co, + mvert[mloop[mlt_a->tri[2]].v].co, + mvert[mloop[mlt_b->tri[2]].v].co))) + { + /* flip out of degenerate 0-2 state. */ + mlt_a->tri[2] = mlt_b->tri[2]; + mlt_b->tri[0] = mlt_a->tri[1]; + } } #endif /* USE_TESSFACE_SPEEDUP */ else { |