[Bf-blender-cvs] [869c334] blender-v2.76-release: Fix T43715: IK pole target + stretch not working for a single bone chain.

Brecht Van Lommel noreply at git.blender.org
Wed Sep 23 16:12:03 CEST 2015


Commit: 869c3344c92cf29d7081f64e3d0f45d66c59cf0a
Author: Brecht Van Lommel
Date:   Mon Sep 21 01:48:37 2015 +0200
Branches: blender-v2.76-release
https://developer.blender.org/rB869c3344c92cf29d7081f64e3d0f45d66c59cf0a

Fix T43715: IK pole target + stretch not working for a single bone chain.

===================================================================

M	intern/iksolver/intern/IK_Solver.cpp

===================================================================

diff --git a/intern/iksolver/intern/IK_Solver.cpp b/intern/iksolver/intern/IK_Solver.cpp
index 65ea4d6..eb18cde 100644
--- a/intern/iksolver/intern/IK_Solver.cpp
+++ b/intern/iksolver/intern/IK_Solver.cpp
@@ -292,6 +292,7 @@ void IK_SolverAddGoal(IK_Solver *solver, IK_Segment *tip, float goal[3], float w
 	IK_QSolver *qsolver = (IK_QSolver *)solver;
 	IK_QSegment *qtip = (IK_QSegment *)tip;
 
+	// in case of composite segment the second segment is the tip
 	if (qtip->Composite())
 		qtip = qtip->Composite();
 
@@ -310,6 +311,7 @@ void IK_SolverAddGoalOrientation(IK_Solver *solver, IK_Segment *tip, float goal[
 	IK_QSolver *qsolver = (IK_QSolver *)solver;
 	IK_QSegment *qtip = (IK_QSegment *)tip;
 
+	// in case of composite segment the second segment is the tip
 	if (qtip->Composite())
 		qtip = qtip->Composite();
 
@@ -331,6 +333,10 @@ void IK_SolverSetPoleVectorConstraint(IK_Solver *solver, IK_Segment *tip, float
 	IK_QSolver *qsolver = (IK_QSolver *)solver;
 	IK_QSegment *qtip = (IK_QSegment *)tip;
 
+	// in case of composite segment the second segment is the tip
+	if (qtip->Composite())
+		qtip = qtip->Composite();
+
 	MT_Vector3 qgoal(goal);
 	MT_Vector3 qpolegoal(polegoal);




More information about the Bf-blender-cvs mailing list