[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25939] trunk/blender/source/blender: Bugfix: drivers on constraint properties could get set to invalid when

Brecht Van Lommel brecht at blender.org
Tue Jan 12 20:51:28 CET 2010


Revision: 25939
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25939
Author:   blendix
Date:     2010-01-12 20:51:26 +0100 (Tue, 12 Jan 2010)

Log Message:
-----------
Bugfix: drivers on constraint properties could get set to invalid when
transforming, due to the evaluation of the object transform without
constraints, and the driver not finding the property.

Constraints are now disabled in a way that should avoid this problem

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/makesdna/DNA_object_types.h

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2010-01-12 19:47:54 UTC (rev 25938)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2010-01-12 19:51:26 UTC (rev 25939)
@@ -2035,7 +2035,7 @@
 	}
 
 	/* solve constraints */
-	if (ob->constraints.first) {
+	if (ob->constraints.first && !(ob->flag & OB_NO_CONSTRAINTS)) {
 		bConstraintOb *cob;
 		
 		cob= constraints_make_evalob(scene, ob, NULL, CONSTRAINT_OBTYPE_OBJECT);

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-01-12 19:47:54 UTC (rev 25938)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-01-12 19:51:26 UTC (rev 25939)
@@ -4256,18 +4256,13 @@
 		track= ob->track;
 		ob->track= NULL;
 		
-		if (constinv == 0) {
-			fakecons.first = ob->constraints.first;
-			fakecons.last = ob->constraints.last;
-			ob->constraints.first = ob->constraints.last = NULL;
-		}
+		if (constinv == 0)
+			ob->transflag |= OB_NO_CONSTRAINTS; /* where_is_object_time checks this */
 		
 		where_is_object(t->scene, ob);
 		
-		if (constinv == 0) {
-			ob->constraints.first = fakecons.first;
-			ob->constraints.last = fakecons.last;
-		}
+		if (constinv == 0)
+			ob->transflag &= ~OB_NO_CONSTRAINTS;
 		
 		ob->track= track;
 	}

Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h	2010-01-12 19:47:54 UTC (rev 25938)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h	2010-01-12 19:51:26 UTC (rev 25939)
@@ -334,6 +334,7 @@
 #define OB_DUPLIFACES_SCALE	1024
 #define OB_DUPLIPARTS		2048
 #define OB_RENDER_DUPLI		4096
+#define OB_NO_CONSTRAINTS	8096 /* runtime constraints disable */
 
 /* (short) ipoflag */
 	// XXX depreceated - old animation system crap





More information about the Bf-blender-cvs mailing list