[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