![]() |
Blender V2.61 - r43446
|
SimulationIslandManager creates and handles simulation islands, using btUnionFind. More...
#include <btSimulationIslandManager.h>
Classes | |
| struct | IslandCallback |
Public Member Functions | |
| btSimulationIslandManager () | |
| virtual | ~btSimulationIslandManager () |
| void | initUnionFind (int n) |
| btUnionFind & | getUnionFind () |
| virtual void | updateActivationState (btCollisionWorld *colWorld, btDispatcher *dispatcher) |
| virtual void | storeIslandActivationState (btCollisionWorld *world) |
| void | findUnions (btDispatcher *dispatcher, btCollisionWorld *colWorld) |
| void | buildAndProcessIslands (btDispatcher *dispatcher, btCollisionWorld *collisionWorld, IslandCallback *callback) |
| void | buildIslands (btDispatcher *dispatcher, btCollisionWorld *colWorld) |
| bool | getSplitIslands () |
| void | setSplitIslands (bool doSplitIslands) |
SimulationIslandManager creates and handles simulation islands, using btUnionFind.
Definition at line 31 of file btSimulationIslandManager.h.
| btSimulationIslandManager::btSimulationIslandManager | ( | ) |
Definition at line 28 of file btSimulationIslandManager.cpp.
| btSimulationIslandManager::~btSimulationIslandManager | ( | ) | [virtual] |
Definition at line 33 of file btSimulationIslandManager.cpp.
Referenced by btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld().
| void btSimulationIslandManager::buildAndProcessIslands | ( | btDispatcher * | dispatcher, |
| btCollisionWorld * | collisionWorld, | ||
| IslandCallback * | callback | ||
| ) |
Process the actual simulation, only if not sleeping/deactivated
Definition at line 349 of file btSimulationIslandManager.cpp.
References BT_PROFILE, buildIslands(), btCollisionWorld::getCollisionObjectArray(), btUnionFind::getElement(), btDispatcher::getInternalManifoldPointer(), getIslandId(), btUnionFind::getNumElements(), btDispatcher::getNumManifolds(), getUnionFind(), i, btElement::m_id, btElement::m_sz, btSimulationIslandManager::IslandCallback::ProcessIsland(), btAlignedObjectArray< T >::push_back(), btAlignedObjectArray< T >::quickSort(), btAlignedObjectArray< T >::resize(), and btAlignedObjectArray< T >::size().
Referenced by btDiscreteDynamicsWorld::solveConstraints().
| void btSimulationIslandManager::buildIslands | ( | btDispatcher * | dispatcher, |
| btCollisionWorld * | colWorld | ||
| ) |
Definition at line 200 of file btSimulationIslandManager.cpp.
References ACTIVE_TAG, BT_PROFILE, btAssert, DISABLE_DEACTIVATION, btCollisionWorld::getCollisionObjectArray(), btUnionFind::getElement(), btDispatcher::getManifoldByIndexInternal(), btUnionFind::getNumElements(), btDispatcher::getNumManifolds(), getUnionFind(), i, ISLAND_SLEEPING, btElement::m_id, btElement::m_sz, btDispatcher::needsResponse(), btAlignedObjectArray< T >::push_back(), btAlignedObjectArray< T >::resize(), btUnionFind::sortIslands(), and WANTS_DEACTIVATION.
Referenced by buildAndProcessIslands().
| void btSimulationIslandManager::findUnions | ( | btDispatcher * | dispatcher, |
| btCollisionWorld * | colWorld | ||
| ) |
Definition at line 44 of file btSimulationIslandManager.cpp.
References btOverlappingPairCache::getNumOverlappingPairs(), btOverlappingPairCache::getOverlappingPairArrayPtr(), btCollisionWorld::getPairCache(), i, and btUnionFind::unite().
Referenced by updateActivationState().
| bool btSimulationIslandManager::getSplitIslands | ( | ) | [inline] |
Definition at line 69 of file btSimulationIslandManager.h.
| btUnionFind& btSimulationIslandManager::getUnionFind | ( | ) | [inline] |
Definition at line 48 of file btSimulationIslandManager.h.
Referenced by buildAndProcessIslands(), buildIslands(), and btDiscreteDynamicsWorld::calculateSimulationIslands().
| void btSimulationIslandManager::initUnionFind | ( | int | n | ) |
Definition at line 38 of file btSimulationIslandManager.cpp.
References btUnionFind::reset().
Referenced by updateActivationState().
| void btSimulationIslandManager::setSplitIslands | ( | bool | doSplitIslands | ) | [inline] |
Definition at line 73 of file btSimulationIslandManager.h.
| void btSimulationIslandManager::storeIslandActivationState | ( | btCollisionWorld * | world | ) | [virtual] |
Definition at line 149 of file btSimulationIslandManager.cpp.
References btUnionFind::find(), btCollisionWorld::getCollisionObjectArray(), i, and btAlignedObjectArray< T >::size().
Referenced by btDiscreteDynamicsWorld::calculateSimulationIslands().
| void btSimulationIslandManager::updateActivationState | ( | btCollisionWorld * | colWorld, |
| btDispatcher * | dispatcher | ||
| ) | [virtual] |
Definition at line 124 of file btSimulationIslandManager.cpp.
References findUnions(), btCollisionWorld::getCollisionObjectArray(), i, initUnionFind(), and btAlignedObjectArray< T >::size().
Referenced by btDiscreteDynamicsWorld::calculateSimulationIslands().