diff --git a/external/README.md b/external/README.md index 1a277f4385..9e8989040e 100644 --- a/external/README.md +++ b/external/README.md @@ -16,7 +16,7 @@ ## Bullet - Upstream: https://github.com/bulletphysics/bullet3 -- Version: 3.07 +- Version: 3.08 - License: zlib ## c-ares diff --git a/external/bullet/BulletDynamics/Featherstone/btMultiBody.cpp b/external/bullet/BulletDynamics/Featherstone/btMultiBody.cpp index bec8c6530d..7cb92fa3b4 100644 --- a/external/bullet/BulletDynamics/Featherstone/btMultiBody.cpp +++ b/external/bullet/BulletDynamics/Featherstone/btMultiBody.cpp @@ -125,7 +125,8 @@ btMultiBody::btMultiBody(int n_links, m_posVarCnt(0), m_useRK4(false), m_useGlobalVelocities(false), - m_internalNeedsJointFeedback(false) + m_internalNeedsJointFeedback(false), + m_kinematic_calculate_velocity(false) { m_cachedInertiaTopLeft.setValue(0, 0, 0, 0, 0, 0, 0, 0, 0); m_cachedInertiaTopRight.setValue(0, 0, 0, 0, 0, 0, 0, 0, 0); @@ -2381,7 +2382,7 @@ const char *btMultiBody::serialize(void *dataBuffer, class btSerializer *seriali void btMultiBody::saveKinematicState(btScalar timeStep) { //todo: clamp to some (user definable) safe minimum timestep, to limit maximum angular/linear velocities - if (timeStep != btScalar(0.)) + if (m_kinematic_calculate_velocity && timeStep != btScalar(0.)) { btVector3 linearVelocity, angularVelocity; btTransformUtil::calculateVelocity(getInterpolateBaseWorldTransform(), getBaseWorldTransform(), timeStep, linearVelocity, angularVelocity); diff --git a/external/bullet/BulletDynamics/Featherstone/btMultiBody.h b/external/bullet/BulletDynamics/Featherstone/btMultiBody.h index 25112a6805..5a3efc9414 100644 --- a/external/bullet/BulletDynamics/Featherstone/btMultiBody.h +++ b/external/bullet/BulletDynamics/Featherstone/btMultiBody.h @@ -823,6 +823,9 @@ private: ///the m_needsJointFeedback gets updated/computed during the stepVelocitiesMultiDof and it for internal usage only bool m_internalNeedsJointFeedback; + + //If enabled, calculate the velocity based on kinematic transform changes. Currently only implemented for the base. + bool m_kinematic_calculate_velocity; }; struct btMultiBodyLinkDoubleData diff --git a/external/bullet/LinearMath/btQuickprof.cpp b/external/bullet/LinearMath/btQuickprof.cpp index 86fd1d7812..33b51eb763 100644 --- a/external/bullet/LinearMath/btQuickprof.cpp +++ b/external/bullet/LinearMath/btQuickprof.cpp @@ -720,6 +720,9 @@ void btLeaveProfileZoneDefault() #define BT_HAVE_TLS 1 #elif __linux__ #define BT_HAVE_TLS 1 +#elif defined(__FreeBSD__) || defined(__NetBSD__) + // TODO: At the moment disabling purposely OpenBSD, albeit tls support exists but not fully functioning + #define BT_HAVE_TLS 1 #endif // __thread is broken on Andorid clang until r12b. See diff --git a/external/bullet/LinearMath/btScalar.h b/external/bullet/LinearMath/btScalar.h index a92caf1817..36b90cc944 100644 --- a/external/bullet/LinearMath/btScalar.h +++ b/external/bullet/LinearMath/btScalar.h @@ -25,7 +25,7 @@ subject to the following restrictions: #include /* SVN $Revision$ on $Date$ from http://bullet.googlecode.com*/ -#define BT_BULLET_VERSION 305 +#define BT_BULLET_VERSION 307 inline int btGetVersion() { diff --git a/external/bullet/LinearMath/btSerializer.h b/external/bullet/LinearMath/btSerializer.h index 6ea36fbb39..4d1c760e24 100644 --- a/external/bullet/LinearMath/btSerializer.h +++ b/external/bullet/LinearMath/btSerializer.h @@ -481,7 +481,7 @@ public: buffer[9] = '3'; buffer[10] = '0'; - buffer[11] = '5'; + buffer[11] = '8'; } virtual void startSerialization()