void IK_QElbowSegment::Lock(int dof, IK_QJacobian& jacobian, MT_Vector3& delta) { if (dof == 0) { m_locked[0] = true; jacobian.Lock(m_DoF_id, delta[0]); } else { m_locked[1] = true; jacobian.Lock(m_DoF_id+1, delta[1]); } }
void IK_QSphericalSegment::Lock(int dof, IK_QJacobian& jacobian, MT_Vector3& delta) { if (dof == 1) { m_locked[1] = true; jacobian.Lock(m_DoF_id+1, delta[1]); } else { m_locked[0] = m_locked[2] = true; jacobian.Lock(m_DoF_id, delta[0]); jacobian.Lock(m_DoF_id+2, delta[2]); } }
void IK_QSwingSegment::Lock(int, IK_QJacobian& jacobian, MT_Vector3& delta) { m_locked[0] = m_locked[1] = true; jacobian.Lock(m_DoF_id, delta[0]); jacobian.Lock(m_DoF_id+1, delta[1]); }
void IK_QRevoluteSegment::Lock(int, IK_QJacobian& jacobian, MT_Vector3& delta) { m_locked[0] = true; jacobian.Lock(m_DoF_id, delta[0]); }
void IK_QTranslateSegment::Lock(int dof, IK_QJacobian& jacobian, MT_Vector3& delta) { m_locked[dof] = true; jacobian.Lock(m_DoF_id+dof, delta[dof]); }