Merge pull request #3361 from erwincoumans/master

@erwincoumans PyBullet: try to address activation/deactivation issue with fixed base multibody
This commit is contained in:
erwincoumans 2021-04-25 00:38:57 -07:00 committed by GitHub
commit 7f7238f630
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 3 deletions

View File

@ -24,6 +24,7 @@ subject to the following restrictions:
#define WANTS_DEACTIVATION 3
#define DISABLE_DEACTIVATION 4
#define DISABLE_SIMULATION 5
#define FIXED_BASE_MULTI_BODY 6
struct btBroadphaseProxy;
class btCollisionShape;
@ -304,7 +305,7 @@ public:
SIMD_FORCE_INLINE bool isActive() const
{
return ((getActivationState() != ISLAND_SLEEPING) && (getActivationState() != DISABLE_SIMULATION));
return ((getActivationState() != FIXED_BASE_MULTI_BODY) && (getActivationState() != ISLAND_SLEEPING) && (getActivationState() != DISABLE_SIMULATION));
}
void setRestitution(btScalar rest)

View File

@ -545,7 +545,10 @@ public:
{
m_canWakeup = canWakeup;
}
bool isAwake() const { return m_awake; }
bool isAwake() const
{
return m_awake;
}
void wakeUp();
void goToSleep();
void checkMotionAndSleepIfRequired(btScalar timestep);

View File

@ -139,7 +139,7 @@ void btMultiBodyDynamicsWorld::updateActivationState(btScalar timeStep)
{
if (body->hasFixedBase())
{
col->setActivationState(ISLAND_SLEEPING);
col->setActivationState(FIXED_BASE_MULTI_BODY);
} else
{
col->setActivationState(WANTS_DEACTIVATION);