Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Bolsee <benoit.bolsee@online.be>2012-12-29 23:43:08 +0400
committerBenoit Bolsee <benoit.bolsee@online.be>2012-12-29 23:43:08 +0400
commit0028418fe85c737c2122285d5968a432091bf0d2 (patch)
tree82006c82153be77bc2edf1728e51d0479b1e0ea2 /source/blender/editors/transform/transform_generics.c
parente9c7aaaa3ccd83ee0bb6076f1f9fb2ac5653187f (diff)
fix bug #33275: iTaSC ignores location of disconnected bones when they are changed in pose mode.
Disconnected bones can be translated in pose mode but this translation cannot be applied to the iTaSC representation of the armature because there is no joint associated with it. As a result, moving disconnected bones had no effect. The bug fix is in two parts: 1) manual or rna change in the armature pose will cause automatic rebuilding of the iTaSC scene 2) the iTaSC scene is now built from the current pose instead of armature rest pose
Diffstat (limited to 'source/blender/editors/transform/transform_generics.c')
-rw-r--r--source/blender/editors/transform/transform_generics.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 8f1d6a7b46e..2591c61c5ab 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -61,6 +61,8 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "BIK_api.h"
+
#include "BKE_animsys.h"
#include "BKE_action.h"
#include "BKE_armature.h"
@@ -847,6 +849,8 @@ static void recalcData_view3d(TransInfo *t)
/* old optimize trick... this enforces to bypass the depgraph */
if (!(arm->flag & ARM_DELAYDEFORM)) {
DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
+ /* transformation of pose may affect IK tree, make sure it is rebuilt */
+ BIK_clear_data(ob->pose);
}
else
BKE_pose_where_is(t->scene, ob);