[Bf-blender-cvs] [c206b7c] master: Correct error in non-uniform scale IK commit

Campbell Barton noreply at git.blender.org
Fri Jul 8 13:10:56 CEST 2016


Commit: c206b7cbb6d32e0353d9f2b253151b4caafdefa0
Author: Campbell Barton
Date:   Fri Jul 8 21:06:38 2016 +1000
Branches: master
https://developer.blender.org/rBc206b7cbb6d32e0353d9f2b253151b4caafdefa0

Correct error in non-uniform scale IK commit

Rename arg to avoid confusion

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

M	source/blender/ikplugin/intern/iksolver_plugin.c
M	source/blender/ikplugin/intern/iksolver_plugin.h
M	source/blender/ikplugin/intern/itasc_plugin.cpp
M	source/blender/ikplugin/intern/itasc_plugin.h

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

diff --git a/source/blender/ikplugin/intern/iksolver_plugin.c b/source/blender/ikplugin/intern/iksolver_plugin.c
index 30dd5e4..6ea311b 100644
--- a/source/blender/ikplugin/intern/iksolver_plugin.c
+++ b/source/blender/ikplugin/intern/iksolver_plugin.c
@@ -527,10 +527,10 @@ void iksolver_initialize_tree(struct Scene *UNUSED(scene), struct Object *ob, fl
 	ob->pose->flag &= ~POSE_WAS_REBUILT;
 }
 
-void iksolver_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseChannel *pchan, float ctime)
+void iksolver_execute_tree(struct Scene *scene, Object *ob,  bPoseChannel *pchan_root, float ctime)
 {
-	while (pchan->iktree.first) {
-		PoseTree *tree = pchan->iktree.first;
+	while (pchan_root->iktree.first) {
+		PoseTree *tree = pchan_root->iktree.first;
 		int a;
 
 		/* stop on the first tree that isn't a standard IK chain */
@@ -573,14 +573,14 @@ void iksolver_execute_tree(struct Scene *scene, struct Object *ob,  struct bPose
 
 #ifdef USE_NONUNIFORM_SCALE
 		for (a = 0; a < tree->totchannel; a++) {
-			normalize_v3_length(pchan->pose_mat[0], pchan_scale_data[a][0]);
-			normalize_v3_length(pchan->pose_mat[2], pchan_scale_data[a][2]);
+			normalize_v3_length(tree->pchan[a]->pose_mat[0], pchan_scale_data[a][0]);
+			normalize_v3_length(tree->pchan[a]->pose_mat[2], pchan_scale_data[a][2]);
 		}
 		MEM_freeN(pchan_scale_data);
 #endif
 
 		/* 7. and free */
-		BLI_remlink(&pchan->iktree, tree);
+		BLI_remlink(&pchan_root->iktree, tree);
 		free_posetree(tree);
 	}
 }
diff --git a/source/blender/ikplugin/intern/iksolver_plugin.h b/source/blender/ikplugin/intern/iksolver_plugin.h
index c2ae4f9..0726428 100644
--- a/source/blender/ikplugin/intern/iksolver_plugin.h
+++ b/source/blender/ikplugin/intern/iksolver_plugin.h
@@ -41,7 +41,7 @@ extern "C" {
 #endif
 
 void iksolver_initialize_tree(struct Scene *scene, struct Object *ob, float ctime);
-void iksolver_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseChannel *pchan, float ctime);
+void iksolver_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseChannel *pchan_root, float ctime);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/ikplugin/intern/itasc_plugin.cpp b/source/blender/ikplugin/intern/itasc_plugin.cpp
index d4814a4..b8ed780 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.cpp
+++ b/source/blender/ikplugin/intern/itasc_plugin.cpp
@@ -1770,7 +1770,7 @@ void itasc_initialize_tree(struct Scene *scene, Object *ob, float ctime)
 	ob->pose->flag &= ~POSE_WAS_REBUILT;
 }
 
-void itasc_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseChannel *pchan, float ctime)
+void itasc_execute_tree(struct Scene *scene, Object *ob,  bPoseChannel *pchan_root, float ctime)
 {
 	if (!ob->pose->ikdata) {
 		// IK tree not yet created, no it now
@@ -1784,7 +1784,7 @@ void itasc_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseCha
 		if (!ikparam) ikparam = &DefIKParam;
 
 		for (IK_Scene *ikscene = ikdata->first; ikscene; ikscene = ikscene->next) {
-			if (ikscene->channels[0].pchan == pchan) {
+			if (ikscene->channels[0].pchan == pchan_root) {
 				float timestep = scene->r.frs_sec_base / scene->r.frs_sec;
 				if (ob->pose->flag & POSE_GAME_ENGINE) {
 					timestep = ob->pose->ctime;
diff --git a/source/blender/ikplugin/intern/itasc_plugin.h b/source/blender/ikplugin/intern/itasc_plugin.h
index 0500125..bcd95bc 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.h
+++ b/source/blender/ikplugin/intern/itasc_plugin.h
@@ -41,7 +41,7 @@ extern "C" {
 #endif
 
 void itasc_initialize_tree(struct Scene *scene, struct Object *ob, float ctime);
-void itasc_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseChannel *pchan, float ctime);
+void itasc_execute_tree(struct Scene *scene, struct Object *ob,  struct bPoseChannel *pchan_root, float ctime);
 void itasc_release_tree(struct Scene *scene, struct Object *ob,  float ctime);
 void itasc_clear_data(struct bPose *pose);
 void itasc_clear_cache(struct bPose *pose);




More information about the Bf-blender-cvs mailing list