Fix for recent error, ngons now flipped correctly
authorCampbell Barton <ideasman42@gmail.com>
Tue, 7 Jul 2015 09:53:56 +0000 (19:53 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 7 Jul 2015 10:29:13 +0000 (20:29 +1000)
source/blender/blenkernel/intern/mesh_evaluate.c

index 7a0331b9c8701fb8f6e77760a7d56c2bdbb7ea97..5ba72ccac8255873d540d120d4301e125cb69293 100644 (file)
@@ -2391,12 +2391,12 @@ int BKE_mesh_recalc_tessellation(
 
                        zero_v3(normal);
 
-                       /* calc normal */
+                       /* calc normal, flipped: to get a positive 2d cross product */
                        ml = mloop + mp_loopstart;
                        co_prev = mvert[ml[mp_totloop - 1].v].co;
                        for (j = 0; j < mp_totloop; j++, ml++) {
                                co_curr = mvert[ml->v].co;
-                               add_newell_cross_v3_v3v3(normal, co_prev, co_curr);
+                               add_newell_cross_v3_v3v3(normal, co_curr, co_prev);
                                co_prev = co_curr;
                        }
                        if (UNLIKELY(normalize_v3(normal) == 0.0f)) {
@@ -2411,7 +2411,7 @@ int BKE_mesh_recalc_tessellation(
                                mul_v2_m3v3(projverts[j], axis_mat, mvert[ml->v].co);
                        }
 
-                       BLI_polyfill_calc_arena((const float (*)[2])projverts, mp_totloop, -1, tris, arena);
+                       BLI_polyfill_calc_arena((const float (*)[2])projverts, mp_totloop, 1, tris, arena);
 
                        /* apply fill */
                        for (j = 0; j < totfilltri; j++) {