From d8c257faa7ec7d7b6b372ac3208e87faeb0989b7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 24 Nov 2012 00:18:34 +0000 Subject: IK Solver: * Rename Legacy to Standard, it's not being deprecated as far as I know. * Make option to toggle off Location solving work with Standard. * Make it converge a bit better in some cases by enforcing a minimum number of iterations before giving up. * Move IK solver choice out of bone panel, it's an armature level setting and should be set there. --- source/blender/ikplugin/intern/iksolver_plugin.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender/ikplugin') diff --git a/source/blender/ikplugin/intern/iksolver_plugin.c b/source/blender/ikplugin/intern/iksolver_plugin.c index af15333ece5..ca81f4c915a 100644 --- a/source/blender/ikplugin/intern/iksolver_plugin.c +++ b/source/blender/ikplugin/intern/iksolver_plugin.c @@ -379,6 +379,7 @@ static void execute_posetree(struct Scene *scene, Object *ob, PoseTree *tree) copy_v3_v3(goalpos, goal[3]); copy_m3_m4(goalrot, goal); + normalize_m3(goalrot); /* same for pole vector target */ if (data->poletar) { @@ -433,7 +434,7 @@ static void execute_posetree(struct Scene *scene, Object *ob, PoseTree *tree) iktarget = iktree[target->tip]; - if (data->weight != 0.0f) { + if ((data->flag & CONSTRAINT_IK_POS) && data->weight != 0.0f) { if (poleconstrain) IK_SolverSetPoleVectorConstraint(solver, iktarget, goalpos, polepos, data->poleangle, (poleangledata == data)); -- cgit v1.2.3