[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45306] trunk/blender/source/blender/ modifiers/intern/MOD_array.c: Small array modifier performance improvement.

Nicholas Bishop nicholasbishop at gmail.com
Sat Mar 31 14:29:44 CEST 2012


Revision: 45306
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45306
Author:   nicholasbishop
Date:     2012-03-31 12:29:41 +0000 (Sat, 31 Mar 2012)
Log Message:
-----------
Small array modifier performance improvement.

Transform vertices directly rather than using BMOp.

Modified Paths:
--------------
    trunk/blender/source/blender/modifiers/intern/MOD_array.c

Modified: trunk/blender/source/blender/modifiers/intern/MOD_array.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_array.c	2012-03-31 12:29:17 UTC (rev 45305)
+++ trunk/blender/source/blender/modifiers/intern/MOD_array.c	2012-03-31 12:29:41 UTC (rev 45306)
@@ -413,6 +413,7 @@
 		BMVert *v, *v2, *v3;
 		BMOpSlot *geom_slot;
 		BMOpSlot *newout_slot;
+		BMOIter oiter;
 
 		if (j != 0)
 			BMO_op_initf(em->bm, &dupe_op, "dupe geom=%s", &old_dupe_op, "newout");
@@ -430,7 +431,10 @@
 			memcpy(first_geom, geom_slot->data.buf, first_geom_bytes);
 		}
 
-		BMO_op_callf(em->bm, "transform mat=%m4 verts=%s", offset, &dupe_op, "newout");
+		/* apply transformation matrix */
+		BMO_ITER(v, &oiter, em->bm, &dupe_op, "newout", BM_VERT) {
+			mul_m4_v3(offset, v->co);
+		}
 
 		if (amd->flags & MOD_ARR_MERGE) {
 			/*calculate merge mapping*/




More information about the Bf-blender-cvs mailing list