From feaa21e33c22d1b8aad9ba6930b028d070c34fd1 Mon Sep 17 00:00:00 2001 From: Alexey Anikeenko Date: Mon, 5 Mar 2018 00:17:48 +0700 Subject: [PATCH] Fix import of spherical joint state Spherical joints in btMultiBody have 4 positional variables. --- .../BulletWorldImporter/btMultiBodyWorldImporter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extras/Serialize/BulletWorldImporter/btMultiBodyWorldImporter.cpp b/Extras/Serialize/BulletWorldImporter/btMultiBodyWorldImporter.cpp index 7b3583581..f7eb15c75 100644 --- a/Extras/Serialize/BulletWorldImporter/btMultiBodyWorldImporter.cpp +++ b/Extras/Serialize/BulletWorldImporter/btMultiBodyWorldImporter.cpp @@ -155,7 +155,7 @@ template void syncMultiBody(T* mbd, btMultiBody* mb, btMultiBodyWorldI } case btMultibodyLink::eSpherical: { - 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] }; + 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] }; 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] }; mb->setJointPosMultiDof(i, jointPos); mb->setJointVelMultiDof(i, jointVel); @@ -244,7 +244,7 @@ template void convertMultiBody(T* mbd, btMultiBodyWorldImporterInterna bool disableParentCollision = true;//todo mb->setupSpherical(i, mbd->m_links[i].m_linkMass, localInertiaDiagonal, mbd->m_links[i].m_parentIndex, parentRotToThis, parentComToThisPivotOffset, thisPivotToThisComOffset, disableParentCollision); - 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] }; + 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] }; 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] }; mb->setJointPosMultiDof(i, jointPos); mb->setJointVelMultiDof(i, jointVel);