fix usage of btMultiBody::setJointPosMultiDof/setJointVelMultiDof

This commit is contained in:
erwincoumans
2018-11-11 19:04:07 -08:00
parent 17219f84c6
commit 0b2142414d
16 changed files with 1704 additions and 6 deletions

View File

@@ -396,23 +396,40 @@ void btMultiBody::setJointPos(int i, btScalar q)
m_links[i].updateCacheMultiDof();
}
void btMultiBody::setJointPosMultiDof(int i, const btScalar *q)
void btMultiBody::setJointPosMultiDof(int i, const double *q)
{
for (int pos = 0; pos < m_links[i].m_posVarCount; ++pos)
m_links[i].m_jointPos[pos] = q[pos];
m_links[i].m_jointPos[pos] = (btScalar)q[pos];
m_links[i].updateCacheMultiDof();
}
void btMultiBody::setJointPosMultiDof(int i, const float *q)
{
for (int pos = 0; pos < m_links[i].m_posVarCount; ++pos)
m_links[i].m_jointPos[pos] = (btScalar)q[pos];
m_links[i].updateCacheMultiDof();
}
void btMultiBody::setJointVel(int i, btScalar qdot)
{
m_realBuf[6 + m_links[i].m_dofOffset] = qdot;
}
void btMultiBody::setJointVelMultiDof(int i, const btScalar *qdot)
void btMultiBody::setJointVelMultiDof(int i, const double *qdot)
{
for (int dof = 0; dof < m_links[i].m_dofCount; ++dof)
m_realBuf[6 + m_links[i].m_dofOffset + dof] = qdot[dof];
m_realBuf[6 + m_links[i].m_dofOffset + dof] = (btScalar)qdot[dof];
}
void btMultiBody::setJointVelMultiDof(int i, const float* qdot)
{
for (int dof = 0; dof < m_links[i].m_dofCount; ++dof)
m_realBuf[6 + m_links[i].m_dofOffset + dof] = (btScalar)qdot[dof];
}
const btVector3 &btMultiBody::getRVector(int i) const