Blender
V3.3
|
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) |
void | processIslands (btDispatcher *dispatcher, btCollisionWorld *collisionWorld, IslandCallback *callback) |
bool | getSplitIslands () |
void | setSplitIslands (bool doSplitIslands) |
SimulationIslandManager creates and handles simulation islands, using btUnionFind.
Definition at line 30 of file btSimulationIslandManager.h.
btSimulationIslandManager::btSimulationIslandManager | ( | ) |
Definition at line 27 of file btSimulationIslandManager.cpp.
|
virtual |
Definition at line 31 of file btSimulationIslandManager.cpp.
Referenced by btDiscreteDynamicsWorldMt(), and ~btDiscreteDynamicsWorld().
void btSimulationIslandManager::buildAndProcessIslands | ( | btDispatcher * | dispatcher, |
btCollisionWorld * | collisionWorld, | ||
IslandCallback * | callback | ||
) |
Definition at line 343 of file btSimulationIslandManager.cpp.
References buildIslands(), callback, and processIslands().
Referenced by btMultiBodyDynamicsWorld::buildIslands().
void btSimulationIslandManager::buildIslands | ( | btDispatcher * | dispatcher, |
btCollisionWorld * | colWorld | ||
) |
Definition at line 196 of file btSimulationIslandManager.cpp.
References ACTIVE_TAG, BT_PROFILE, btAssert, btCollisionObject, btPersistentManifold(), DISABLE_DEACTIVATION, btCollisionWorld::getCollisionObjectArray(), btCollisionWorld::getDispatchInfo(), btUnionFind::getElement(), btDispatcher::getManifoldByIndexInternal(), btUnionFind::getNumElements(), btDispatcher::getNumManifolds(), getUnionFind(), ISLAND_SLEEPING, btDispatcherInfo::m_deterministicOverlappingPairs, btElement::m_id, btElement::m_sz, btDispatcher::needsResponse(), btAlignedObjectArray< T >::push_back(), btAlignedObjectArray< T >::resize(), btUnionFind::sortIslands(), and WANTS_DEACTIVATION.
Referenced by buildAndProcessIslands(), and btDeformableMultiBodyDynamicsWorld::setupConstraints().
void btSimulationIslandManager::findUnions | ( | btDispatcher * | dispatcher, |
btCollisionWorld * | colWorld | ||
) |
Definition at line 40 of file btSimulationIslandManager.cpp.
References btBroadphasePair, btCollisionObject, getIslandTag(), btOverlappingPairCache::getNumOverlappingPairs(), btOverlappingPairCache::getOverlappingPairArrayPtr(), btCollisionWorld::getPairCache(), mergesSimulationIslands(), and btUnionFind::unite().
Referenced by updateActivationState().
|
inline |
Definition at line 65 of file btSimulationIslandManager.h.
Referenced by btSimulationIslandManagerMt::buildAndProcessIslands().
|
inline |
Definition at line 45 of file btSimulationIslandManager.h.
Referenced by btSimulationIslandManagerMt::addBodiesToIslands(), buildIslands(), btSimulationIslandManagerMt::buildIslands(), btMultiBodyDynamicsWorld::calculateSimulationIslands(), btSimulationIslandManagerMt::initIslandPools(), and processIslands().
void btSimulationIslandManager::initUnionFind | ( | int | n | ) |
Definition at line 35 of file btSimulationIslandManager.cpp.
References btUnionFind::reset().
Referenced by updateActivationState().
void btSimulationIslandManager::processIslands | ( | 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, btCollisionObject, btPersistentManifold(), callback, btCollisionWorld::getCollisionObjectArray(), btCollisionWorld::getDispatchInfo(), btUnionFind::getElement(), btDispatcher::getInternalManifoldPointer(), getIslandId(), btUnionFind::getNumElements(), btDispatcher::getNumManifolds(), getUnionFind(), btDispatcherInfo::m_deterministicOverlappingPairs, btElement::m_id, btElement::m_sz, numManifolds, btAlignedObjectArray< T >::push_back(), btAlignedObjectArray< T >::quickSort(), btAlignedObjectArray< T >::resize(), and btAlignedObjectArray< T >::size().
Referenced by buildAndProcessIslands(), and btDeformableMultiBodyDynamicsWorld::solveContactConstraints().
Definition at line 69 of file btSimulationIslandManager.h.
|
virtual |
Definition at line 141 of file btSimulationIslandManager.cpp.
References btCollisionObject, btUnionFind::find(), btCollisionWorld::getCollisionObjectArray(), and size().
Referenced by btMultiBodyDynamicsWorld::calculateSimulationIslands().
|
virtual |
Definition at line 119 of file btSimulationIslandManager.cpp.
References btCollisionObject, findUnions(), btCollisionWorld::getCollisionObjectArray(), initUnionFind(), btAlignedObjectArray< T >::size(), and size().
Referenced by btMultiBodyDynamicsWorld::calculateSimulationIslands().