[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34710] trunk/blender/source/blender: Bugfix [#25814] ChildOf constraint: double transformation in object
Joshua Leung
aligorith at gmail.com
Tue Feb 8 06:51:21 CET 2011
Revision: 34710
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34710
Author: aligorith
Date: 2011-02-08 05:51:20 +0000 (Tue, 08 Feb 2011)
Log Message:
-----------
Bugfix [#25814] ChildOf constraint: double transformation in object
mode with drivers
ChildOf constraints added using the PoseBone.constraints.new() method
via Python scripts instead of using the operator (this latter method
is still the preferred/recommended method) were not getting some
critical flags set, causing errors arising from space conversions
being performed more than once.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/constraint.c
trunk/blender/source/blender/editors/object/object_constraint.c
Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c 2011-02-08 03:37:49 UTC (rev 34709)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c 2011-02-08 05:51:20 UTC (rev 34710)
@@ -4148,6 +4148,21 @@
constraints_set_active(list, con);
}
+ /* set type+owner specific immutable settings */
+ // TODO: does action constraint need anything here - i.e. spaceonce?
+ switch (type) {
+ case CONSTRAINT_TYPE_CHILDOF:
+ {
+ /* if this constraint is being added to a posechannel, make sure
+ * the constraint gets evaluated in pose-space */
+ if (pchan) {
+ con->ownspace = CONSTRAINT_SPACE_POSE;
+ con->flag |= CONSTRAINT_SPACEONCE;
+ }
+ }
+ break;
+ }
+
return con;
}
Modified: trunk/blender/source/blender/editors/object/object_constraint.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_constraint.c 2011-02-08 03:37:49 UTC (rev 34709)
+++ trunk/blender/source/blender/editors/object/object_constraint.c 2011-02-08 05:51:20 UTC (rev 34710)
@@ -1272,12 +1272,12 @@
bPoseChannel *pchan;
bConstraint *con;
- if(list == &ob->constraints) {
+ if (list == &ob->constraints) {
pchan= NULL;
}
else {
pchan= get_active_posechannel(ob);
-
+
/* ensure not to confuse object/pose adding */
if (pchan == NULL) {
BKE_report(op->reports, RPT_ERROR, "No active pose bone to add a constraint to.");
@@ -1327,19 +1327,7 @@
}
/* do type-specific tweaking to the constraint settings */
- // TODO: does action constraint need anything here - i.e. spaceonce?
switch (type) {
- case CONSTRAINT_TYPE_CHILDOF:
- {
- /* if this constraint is being added to a posechannel, make sure
- * the constraint gets evaluated in pose-space */
- if (pchan) {
- con->ownspace = CONSTRAINT_SPACE_POSE;
- con->flag |= CONSTRAINT_SPACEONCE;
- }
- }
- break;
-
case CONSTRAINT_TYPE_PYTHON: // FIXME: this code is not really valid anymore
{
#ifdef WITH_PYTHON
More information about the Bf-blender-cvs
mailing list