[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34702] trunk/blender/source/blender/ editors/object/object_constraint.c: Bugfix: Constraint target validation code was broken
Joshua Leung
aligorith at gmail.com
Tue Feb 8 00:21:30 CET 2011
Revision: 34702
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34702
Author: aligorith
Date: 2011-02-07 23:21:28 +0000 (Mon, 07 Feb 2011)
Log Message:
-----------
Bugfix: Constraint target validation code was broken
While testing Apply Visual transforms last night, I noticed that
setting a constraint to use its owner as its target was allowed and
didn't trigger any warnings. This clearly doesn't do any good and is
different from the old behaviour.
Modified Paths:
--------------
trunk/blender/source/blender/editors/object/object_constraint.c
Modified: trunk/blender/source/blender/editors/object/object_constraint.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_constraint.c 2011-02-07 22:48:23 UTC (rev 34701)
+++ trunk/blender/source/blender/editors/object/object_constraint.c 2011-02-07 23:21:28 UTC (rev 34702)
@@ -405,11 +405,26 @@
for (ct= targets.first; ct; ct= ct->next) {
/* general validity checks (for those constraints that need this) */
if (exist_object(ct->tar) == 0) {
+ /* object doesn't exist, but constraint requires target */
ct->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
}
else if (ct->tar == owner) {
- if (!get_named_bone(get_armature(owner), ct->subtarget)) {
+ if (type == CONSTRAINT_OBTYPE_BONE) {
+ if (!get_named_bone(get_armature(owner), ct->subtarget)) {
+ /* bone must exist in armature... */
+ // TODO: clear subtarget?
+ curcon->flag |= CONSTRAINT_DISABLE;
+ }
+ else if (strcmp(pchan->name, ct->subtarget) == 0) {
+ /* cannot target self */
+ ct->subtarget[0] = '\0';
+ curcon->flag |= CONSTRAINT_DISABLE;
+ }
+ }
+ else {
+ /* cannot use self as target */
+ ct->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
}
}
More information about the Bf-blender-cvs
mailing list