Correct error in non-uniform scale IK commit

Rename arg to avoid confusion
This commit is contained in:
Campbell Barton 2016-07-08 21:06:38 +10:00
parent a62967787c
commit c206b7cbb6
4 changed files with 10 additions and 10 deletions

View File

@ -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);
}
}

View File

@ -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
}

View File

@ -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;

View File

@ -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);