[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60350] trunk/blender/source/blender: modifiers_isCorrectableDeformed now checks a modifier is enabled before returning true ,

Campbell Barton ideasman42 at gmail.com
Tue Sep 24 02:56:47 CEST 2013


Revision: 60350
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60350
Author:   campbellbarton
Date:     2013-09-24 00:56:47 +0000 (Tue, 24 Sep 2013)
Log Message:
-----------
modifiers_isCorrectableDeformed now checks a modifier is enabled before returning true,
also check deformMatricesEM callback for modifier_isCorrectableDeformed() rather then checking modifier types.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_modifier.h
    trunk/blender/source/blender/blenkernel/intern/modifier.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/nodes/NOD_static_types.h

Modified: trunk/blender/source/blender/blenkernel/BKE_modifier.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_modifier.h	2013-09-24 00:20:22 UTC (rev 60349)
+++ trunk/blender/source/blender/blenkernel/BKE_modifier.h	2013-09-24 00:56:47 UTC (rev 60350)
@@ -354,7 +354,7 @@
 struct Object *modifiers_isDeformedByLattice(struct Object *ob);
 struct Object *modifiers_isDeformedByCurve(struct Object *ob);
 bool          modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
-bool          modifiers_isCorrectableDeformed(struct Object *ob);
+bool          modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
 void          modifier_freeTemporaryData(struct ModifierData *md);
 bool          modifiers_isPreview(struct Object *ob);
 

Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c	2013-09-24 00:20:22 UTC (rev 60349)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c	2013-09-24 00:56:47 UTC (rev 60350)
@@ -593,21 +593,21 @@
 
 bool modifier_isCorrectableDeformed(ModifierData *md)
 {
-	if (md->type == eModifierType_Armature)
-		return true;
-	if (md->type == eModifierType_ShapeKey)
-		return true;
-	
-	return false;
+	ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+	return (mti->deformMatricesEM != NULL);
 }
 
-bool modifiers_isCorrectableDeformed(Object *ob)
+bool modifiers_isCorrectableDeformed(struct Scene *scene, Object *ob)
 {
 	VirtualModifierData virtualModifierData;
 	ModifierData *md = modifiers_getVirtualModifierList(ob, &virtualModifierData);
+	int required_mode = eModifierMode_Realtime;
+
+	if (ob->mode == OB_MODE_EDIT)
+		required_mode |= eModifierMode_Editmode;
 	
 	for (; md; md = md->next) {
-		if (ob->mode == OB_MODE_EDIT && (md->mode & eModifierMode_Editmode) == 0) {
+		if (!modifier_isEnabled(scene, md, required_mode)) {
 			/* pass */
 		}
 		else if (modifier_isCorrectableDeformed(md)) {

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-09-24 00:20:22 UTC (rev 60349)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-09-24 00:56:47 UTC (rev 60350)
@@ -2219,7 +2219,7 @@
 	/* detect CrazySpace [tm] */
 	if (modifiers_getCageIndex(t->scene, t->obedit, NULL, 1) >= 0) {
 		int totleft = -1;
-		if (modifiers_isCorrectableDeformed(t->obedit)) {
+		if (modifiers_isCorrectableDeformed(t->scene, t->obedit)) {
 			/* 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);

Modified: trunk/blender/source/blender/nodes/NOD_static_types.h
===================================================================
--- trunk/blender/source/blender/nodes/NOD_static_types.h	2013-09-24 00:20:22 UTC (rev 60349)
+++ trunk/blender/source/blender/nodes/NOD_static_types.h	2013-09-24 00:56:47 UTC (rev 60350)
@@ -1,4 +1,3 @@
-
 /*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *




More information about the Bf-blender-cvs mailing list