Skip to content

Commit feaa21e

Browse files
committed
Fix import of spherical joint state
Spherical joints in btMultiBody have 4 positional variables.
1 parent 94bc897 commit feaa21e

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Extras/Serialize/BulletWorldImporter/btMultiBodyWorldImporter.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ template<class T> void syncMultiBody(T* mbd, btMultiBody* mb, btMultiBodyWorldI
155155
}
156156
case btMultibodyLink::eSpherical:
157157
{
158-
btScalar jointPos[3] = { (btScalar)mbd->m_links[i].m_jointPos[0], (btScalar)mbd->m_links[i].m_jointPos[1], (btScalar)mbd->m_links[i].m_jointPos[2] };
158+
btScalar jointPos[4] = { (btScalar)mbd->m_links[i].m_jointPos[0], (btScalar)mbd->m_links[i].m_jointPos[1], (btScalar)mbd->m_links[i].m_jointPos[2], (btScalar)mbd->m_links[i].m_jointPos[3] };
159159
btScalar jointVel[3] = { (btScalar)mbd->m_links[i].m_jointVel[0], (btScalar)mbd->m_links[i].m_jointVel[1], (btScalar)mbd->m_links[i].m_jointVel[2] };
160160
mb->setJointPosMultiDof(i, jointPos);
161161
mb->setJointVelMultiDof(i, jointVel);
@@ -244,7 +244,7 @@ template<class T> void convertMultiBody(T* mbd, btMultiBodyWorldImporterInterna
244244
bool disableParentCollision = true;//todo
245245
mb->setupSpherical(i, mbd->m_links[i].m_linkMass, localInertiaDiagonal, mbd->m_links[i].m_parentIndex,
246246
parentRotToThis, parentComToThisPivotOffset, thisPivotToThisComOffset, disableParentCollision);
247-
btScalar jointPos[3] = { (btScalar)mbd->m_links[i].m_jointPos[0], (btScalar)mbd->m_links[i].m_jointPos[1], (btScalar)mbd->m_links[i].m_jointPos[2] };
247+
btScalar jointPos[4] = { (btScalar)mbd->m_links[i].m_jointPos[0], (btScalar)mbd->m_links[i].m_jointPos[1], (btScalar)mbd->m_links[i].m_jointPos[2], (btScalar)mbd->m_links[i].m_jointPos[3] };
248248
btScalar jointVel[3] = { (btScalar)mbd->m_links[i].m_jointVel[0], (btScalar)mbd->m_links[i].m_jointVel[1], (btScalar)mbd->m_links[i].m_jointVel[2] };
249249
mb->setJointPosMultiDof(i, jointPos);
250250
mb->setJointVelMultiDof(i, jointVel);

0 commit comments

Comments
 (0)