[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60148] trunk/blender/source/blender/ editors/transform/transform_conversions.c: use crazy-space when modifiers_isCorrectableDeformed() fails,

Campbell Barton ideasman42 at gmail.com
Sun Sep 15 13:51:38 CEST 2013


Revision: 60148
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60148
Author:   campbellbarton
Date:     2013-09-15 11:51:38 +0000 (Sun, 15 Sep 2013)
Log Message:
-----------
use crazy-space when modifiers_isCorrectableDeformed() fails,
without this. warp modifier for eg didnt use crazy-space.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-09-15 11:38:48 UTC (rev 60147)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-09-15 11:51:38 UTC (rev 60148)
@@ -2218,25 +2218,26 @@
 
 	/* detect CrazySpace [tm] */
 	if (modifiers_getCageIndex(t->scene, t->obedit, NULL, 1) >= 0) {
+		int totleft = -1;
 		if (modifiers_isCorrectableDeformed(t->obedit)) {
-			int totleft;
 			/* check if we can use deform matrices for modifier from the
 			 * start up to stack, they are more accurate than quats */
 			totleft = editbmesh_get_first_deform_matrices(t->scene, t->obedit, em, &defmats, &defcos);
+		}
 
-			/* if we still have more modifiers, also do crazyspace
-			 * correction with quats, relative to the coordinates after
-			 * the modifiers that support deform matrices (defcos) */
-			if (totleft > 0) {
-				mappedcos = crazyspace_get_mapped_editverts(t->scene, t->obedit);
-				quats = MEM_mallocN(em->bm->totvert * sizeof(*quats), "crazy quats");
-				crazyspace_set_quats_editmesh(em, defcos, mappedcos, quats);
-				if (mappedcos)
-					MEM_freeN(mappedcos);
-			}
+		/* if we still have more modifiers, also do crazyspace
+		 * correction with quats, relative to the coordinates after
+		 * the modifiers that support deform matrices (defcos) */
+		if ((totleft > 0) || (totleft == -1)) {
+			mappedcos = crazyspace_get_mapped_editverts(t->scene, t->obedit);
+			quats = MEM_mallocN(em->bm->totvert * sizeof(*quats), "crazy quats");
+			crazyspace_set_quats_editmesh(em, defcos, mappedcos, quats);
+			if (mappedcos)
+				MEM_freeN(mappedcos);
+		}
 
-			if (defcos)
-				MEM_freeN(defcos);
+		if (defcos) {
+			MEM_freeN(defcos);
 		}
 	}
 




More information about the Bf-blender-cvs mailing list