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().