[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50869] trunk/blender/source/blender/ blenkernel: small improvement to previous commit, use pre-calculated ngon normal to avoid calculating twice when dupli-scale is enabled .

Campbell Barton ideasman42 at gmail.com
Tue Sep 25 02:25:20 CEST 2012


Revision: 50869
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50869
Author:   campbellbarton
Date:     2012-09-25 00:25:17 +0000 (Tue, 25 Sep 2012)
Log Message:
-----------
small improvement to previous commit, use pre-calculated ngon normal to avoid calculating twice when dupli-scale is enabled.

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

Modified: trunk/blender/source/blender/blenkernel/BKE_mesh.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_mesh.h	2012-09-25 00:20:42 UTC (rev 50868)
+++ trunk/blender/source/blender/blenkernel/BKE_mesh.h	2012-09-25 00:25:17 UTC (rev 50869)
@@ -98,7 +98,7 @@
                                struct MVert *mvarray, float cent[3]);
 
 float BKE_mesh_calc_poly_area(struct MPoly *mpoly, struct MLoop *loopstart,
-                              struct MVert *mvarray, float polynormal[3]);
+                              struct MVert *mvarray, const float polynormal[3]);
 
 /* Find the index of the loop in 'poly' which references vertex,
  * returns -1 if not found */

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2012-09-25 00:20:42 UTC (rev 50868)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2012-09-25 00:25:17 UTC (rev 50869)
@@ -1171,7 +1171,7 @@
 						
 						/* scale */
 						if (par->transflag & OB_DUPLIFACES_SCALE) {
-							float size = BKE_mesh_calc_poly_area(mp, loopstart, mvert, NULL);
+							float size = BKE_mesh_calc_poly_area(mp, loopstart, mvert, f_no);
 							size = sqrtf(size) * par->dupfacesca;
 							mul_m3_fl(mat, size);
 						}

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-09-25 00:20:42 UTC (rev 50868)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-09-25 00:25:17 UTC (rev 50869)
@@ -3016,7 +3016,7 @@
 
 /* note, passing polynormal is only a speedup so we can skip calculating it */
 float BKE_mesh_calc_poly_area(MPoly *mpoly, MLoop *loopstart,
-                              MVert *mvarray, float polynormal[3])
+                              MVert *mvarray, const float polynormal[3])
 {
 	if (mpoly->totloop == 3) {
 		return area_tri_v3(mvarray[loopstart[0].v].co,
@@ -3035,7 +3035,7 @@
 		int i;
 		MLoop *l_iter = loopstart;
 		float area, polynorm_local[3], (*vertexcos)[3];
-		float *no = polynormal ? polynormal : polynorm_local;
+		const float *no = polynormal ? polynormal : polynorm_local;
 		BLI_array_fixedstack_declare(vertexcos, BM_NGON_STACK_SIZE, mpoly->totloop, __func__);
 
 		/* pack vertex cos into an array for area_poly_v3 */
@@ -3045,7 +3045,7 @@
 
 		/* need normal for area_poly_v3 as well */
 		if (polynormal == NULL) {
-			BKE_mesh_calc_poly_normal(mpoly, loopstart, mvarray, no);
+			BKE_mesh_calc_poly_normal(mpoly, loopstart, mvarray, polynorm_local);
 		}
 
 		/* finally calculate the area */




More information about the Bf-blender-cvs mailing list