Fix endeffector location when endeffector is transformed

This commit is contained in:
hodasemi 2018-06-18 08:17:40 +02:00
parent a203ad7057
commit f6ebfa09ae

View file

@ -143,8 +143,7 @@ void IKViewer::calculate_kinematic_chain(Bone *base, Bone *endeffector)
Bone *bone = endeffector_tree[endeffector_index]; Bone *bone = endeffector_tree[endeffector_index];
//for (int i = bone->dof_count() - 1; i >= 0; i--) for (int i = bone->dof_count() - 1; i >= 0; i--)
for (int i = 0; i < bone->dof_count(); i++)
{ {
kinematic_chain.emplace_front(bone->get_dof(i)); kinematic_chain.emplace_front(bone->get_dof(i));
} }
@ -173,7 +172,6 @@ void IKViewer::calculate_kinematic_chain(Bone *base, Bone *endeffector)
std::shared_ptr<Transform> inverse_static = std::shared_ptr<Transform>(new StaticTransform(inv(bone->calculate_transform_prev_to_current_without_dofs()))); std::shared_ptr<Transform> inverse_static = std::shared_ptr<Transform>(new StaticTransform(inv(bone->calculate_transform_prev_to_current_without_dofs())));
kinematic_chain.emplace_front(inverse_static); kinematic_chain.emplace_front(inverse_static);
//for (int i = bone->dof_count() - 1; i >= 0; i--)
for (int i = 0; i < bone->dof_count(); i++) for (int i = 0; i < bone->dof_count(); i++)
{ {
Transform *tmp = new InverseTransform(bone->get_dof(i)); Transform *tmp = new InverseTransform(bone->get_dof(i));