[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34846] trunk/blender/source/blender/ editors/util/crazyspace.c: First modifiers with deformMatrices callback used to be applied twice when

Sergey Sharybin g.ulairi at gmail.com
Mon Feb 14 17:06:16 CET 2011


Revision: 34846
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34846
Author:   nazgul
Date:     2011-02-14 16:06:15 +0000 (Mon, 14 Feb 2011)
Log Message:
-----------
First modifiers with deformMatrices callback used to be applied twice when
building crazytspace. Not sure why this worked.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/util/crazyspace.c

Modified: trunk/blender/source/blender/editors/util/crazyspace.c
===================================================================
--- trunk/blender/source/blender/editors/util/crazyspace.c	2011-02-14 14:32:49 UTC (rev 34845)
+++ trunk/blender/source/blender/editors/util/crazyspace.c	2011-02-14 16:06:15 UTC (rev 34846)
@@ -363,7 +363,7 @@
 		float (*deformedVerts)[3]= *deformcos;
 		float (*origVerts)[3]= MEM_dupallocN(deformedVerts);
 		float *quats= NULL;
-		int i;
+		int i, deformed= 0;
 		ModifierData *md= modifiers_getVirtualModifierList(ob);
 		Mesh *me= (Mesh*)ob->data;
 
@@ -372,8 +372,15 @@
 
 			if(!modifier_isEnabled(scene, md, eModifierMode_Realtime)) continue;
 
-			if(mti->type==eModifierTypeType_OnlyDeform)
+			if(mti->type==eModifierTypeType_OnlyDeform) {
+				/* skip leading modifiers which have been alredy
+				   handled in sculpt_get_first_deform_matrices */
+				if(mti->deformMatrices && !deformed)
+					continue;
+
 				mti->deformVerts(md, ob, NULL, deformedVerts, me->totvert, 0, 0);
+				deformed= 1;
+			}
 		}
 
 		quats= MEM_mallocN(me->totvert*sizeof(float)*4, "crazy quats");




More information about the Bf-blender-cvs mailing list