diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-04-18 13:12:06 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-04-18 13:12:06 +0400 |
commit | 5f613886efdb0d4c24850c29d1d94dc2dee2e26b (patch) | |
tree | a1ab32c5906adfbcc10ff0d2f74f8651b29289fc /source/blender/blenkernel/intern/editderivedmesh.c | |
parent | 4df0c46f838f7c316b10a6667705c093f067cadd (diff) |
fix range for face distortion and display for concave ngons.
Diffstat (limited to 'source/blender/blenkernel/intern/editderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/editderivedmesh.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c index c9e8cd2e249..df380726c3a 100644 --- a/source/blender/blenkernel/intern/editderivedmesh.c +++ b/source/blender/blenkernel/intern/editderivedmesh.c @@ -1844,9 +1844,13 @@ static void statvis_calc_distort( else { BM_loop_calc_face_normal(l_iter, no_corner); } + /* simple way to detect (what is most likely) concave */ + if (dot_v3v3(f_no, no_corner) < 0.0f) { + negate_v3(no_corner); + } fac = max_ff(fac, angle_normalized_v3v3(f_no, no_corner)); } while ((l_iter = l_iter->next) != l_first); - fac /= (float)M_1_PI; + fac *= 2.0f; } /* remap */ @@ -1903,8 +1907,8 @@ void BKE_editmesh_statvis_calc(BMEditMesh *em, DerivedMesh *dm, { statvis_calc_distort( em, bmdm ? (const float (*)[3])bmdm->vertexCos : NULL, - statvis->distort_min / (float)M_PI, - statvis->distort_max / (float)M_PI, + statvis->distort_min, + statvis->distort_max, r_face_colors); break; } |