66#ifdef STATIC_SIMULATION_ISLAND_OPTIMIZATION
73 for (i = 0; i <
colWorld->getCollisionObjectArray().
size(); i++)
98 for (i = 0; i <
colWorld->getCollisionObjectArray().
size(); i++)
127 for (i = 0; i <
colWorld->getCollisionObjectArray().
size(); i++)
147 for (i = 0; i <
colWorld->getCollisionObjectArray().
size(); i++)
289 colObj0->setDeactivationTime(0.f);
307 if (
collisionWorld->getDispatchInfo().m_deterministicOverlappingPairs)
309 if (
manifold->getNumContacts() == 0)
323 if (
colObj0->hasContactResponse())
328 if (
colObj1->hasContactResponse())
376 if (
collisionWorld->getDispatchInfo().m_deterministicOverlappingPairs)
static void getElement(int arrayLen, const char *cur, const char *old, char *oldPtr, char *curData)
#define DISABLE_DEACTIVATION
#define WANTS_DEACTIVATION
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const T & btMax(const T &a, const T &b)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define SIMD_FORCE_INLINE
int getIslandId(const btPersistentManifold *lhs)
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
int size() const
return the number of elements in the array
void resize(int newsize, const T &fillData=T())
void quickSort(const L &CompareFunc)
void push_back(const T &_Val)
btCollisionObject can be used to manage collision detection objects.
void activate(bool forceActivation=false) const
void setIslandTag(int tag)
CollisionWorld is interface and container for the collision detection.
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
The btOverlappingPairCache provides an interface for overlapping pair management (add,...
virtual int getNumOverlappingPairs() const =0
bool operator()(const btPersistentManifold *lhs, const btPersistentManifold *rhs) const
function object that routes calls to operator<
bool operator()(const btPersistentManifold *lhs, const btPersistentManifold *rhs) const
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
virtual void storeIslandActivationState(btCollisionWorld *world)
void findUnions(btDispatcher *dispatcher, btCollisionWorld *colWorld)
void processIslands(btDispatcher *dispatcher, btCollisionWorld *collisionWorld, IslandCallback *callback)
virtual void updateActivationState(btCollisionWorld *colWorld, btDispatcher *dispatcher)
btAlignedObjectArray< btCollisionObject * > m_islandBodies
void buildAndProcessIslands(btDispatcher *dispatcher, btCollisionWorld *collisionWorld, IslandCallback *callback)
btUnionFind & getUnionFind()
void initUnionFind(int n)
btAlignedObjectArray< btPersistentManifold * > m_islandmanifold
btSimulationIslandManager()
void buildIslands(btDispatcher *dispatcher, btCollisionWorld *colWorld)
virtual ~btSimulationIslandManager()
int getNumElements() const
btElement & getElement(int index)
void sortIslands()
this is a special operation, destroying the content of btUnionFind.
The btBroadphasePair class contains a pair of aabb-overlapping objects.
virtual void processIsland(btCollisionObject **bodies, int numBodies, class btPersistentManifold **manifolds, int numManifolds, int islandId)=0