add 'force activate', for static/kinematic objects that get moved.

fixed some activation issues with kinematic objects
This commit is contained in:
ejcoumans
2006-11-21 13:00:18 +00:00
parent f4e8bf70c5
commit 0757f1fe9e
5 changed files with 31 additions and 10 deletions

View File

@@ -176,7 +176,8 @@ void btSimulationIslandManager::buildAndProcessIslands(btDispatcher* dispatcher,
}
}
}
if (allSleeping)
{
int idx;
@@ -239,14 +240,15 @@ void btSimulationIslandManager::buildAndProcessIslands(btDispatcher* dispatcher,
if (((colObj0) && colObj0->getActivationState() != ISLAND_SLEEPING) ||
((colObj1) && colObj1->getActivationState() != ISLAND_SLEEPING))
{
//kinematic objects don't merge islands, but wake up all connected objects
if (colObj0->isKinematicObject() && colObj0->getActivationState() != ISLAND_SLEEPING)
if (colObj0->isStaticOrKinematicObject() && colObj0->getActivationState() != ISLAND_SLEEPING)
{
colObj1->setActivationState(ACTIVE_TAG);
colObj1->activate();
}
if (colObj1->isKinematicObject() && colObj1->getActivationState() != ISLAND_SLEEPING)
if (colObj1->isStaticOrKinematicObject() && colObj1->getActivationState() != ISLAND_SLEEPING)
{
colObj0->setActivationState(ACTIVE_TAG);
colObj0->activate();
}
//filtering for response