[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57707] trunk/blender/source/blender/ blenkernel/intern/mesh.c: calculate polygon normals for BKE_mesh_recalc_tessellation() inline rather then using scanfills function.

Campbell Barton ideasman42 at gmail.com
Mon Jun 24 20:13:33 CEST 2013


Revision: 57707
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57707
Author:   campbellbarton
Date:     2013-06-24 18:13:33 +0000 (Mon, 24 Jun 2013)
Log Message:
-----------
calculate polygon normals for BKE_mesh_recalc_tessellation() inline rather then using scanfills function.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-06-24 16:06:27 UTC (rev 57706)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2013-06-24 18:13:33 UTC (rev 57707)
@@ -2733,8 +2733,14 @@
 		}
 #endif /* USE_TESSFACE_SPEEDUP */
 		else {
+#define USE_TESSFACE_CALCNORMAL
+
 			int totfilltri;
 
+#ifdef USE_TESSFACE_CALCNORMAL
+			float normal[3];
+			zero_v3(normal);
+#endif
 			ml = mloop + mp->loopstart;
 			
 			BLI_scanfill_begin(&sf_ctx);
@@ -2745,16 +2751,25 @@
 	
 				sf_vert->keyindex = mp->loopstart + j;
 	
-				if (sf_vert_last)
+				if (sf_vert_last) {
 					BLI_scanfill_edge_add(&sf_ctx, sf_vert_last, sf_vert);
+#ifdef USE_TESSFACE_CALCNORMAL
+					add_newell_cross_v3_v3v3(normal, sf_vert_last->co, sf_vert->co);
+#endif
+				}
 	
 				if (!sf_vert_first)
 					sf_vert_first = sf_vert;
 				sf_vert_last = sf_vert;
 			}
 			BLI_scanfill_edge_add(&sf_ctx, sf_vert_last, sf_vert_first);
-			
+#ifdef USE_TESSFACE_CALCNORMAL
+			add_newell_cross_v3_v3v3(normal, sf_vert_last->co, sf_vert_first->co);
+			normalize_v3(normal);
+			totfilltri = BLI_scanfill_calc_ex(&sf_ctx, 0, normal);
+#else
 			totfilltri = BLI_scanfill_calc(&sf_ctx, 0);
+#endif
 			BLI_assert(totfilltri <= mp->totloop - 2);
 			(void)totfilltri;
 
@@ -2779,6 +2794,8 @@
 			}
 	
 			BLI_scanfill_end(&sf_ctx);
+
+#undef USE_TESSFACE_CALCNORMAL
 		}
 	}
 




More information about the Bf-blender-cvs mailing list