100 return lhs->bodyArray.capacity() >
rhs->bodyArray.capacity();
127 for (
int i = 0; i <
island.bodyArray.size(); ++i )
174 island->manifoldArray.resize( 0 );
175 island->constraintArray.resize( 0 );
177 island->isSleeping =
true;
235 for (
int i =
freeIslands.size() - 1; i >= 0; --i )
237 if (
freeIslands[ i ]->bodyArray.capacity() >= allocSize )
262 island->bodyArray.reserve( allocSize );
368 colObj0->setDeactivationTime(0.f);
409 island->isSleeping =
false;
443 if (
colObj0->hasContactResponse() )
448 if (
colObj1->hasContactResponse() )
554 for (
int i = 0; i <
islands.size(); ++i )
562 island->manifoldArray.size(),
564 island->constraintArray.size(),
585 island->manifoldArray.size(),
587 island->constraintArray.size(),
638 if (
colObj0->hasContactResponse() )
643 if (
colObj1->hasContactResponse() )
static void getElement(int arrayLen, const char *cur, const char *old, char *oldPtr, char *curData)
#define DISABLE_DEACTIVATION
#define WANTS_DEACTIVATION
int btGetConstraintIslandId(const btTypedConstraint *lhs)
const T & btMax(const T &a, const T &b)
#define SIMD_FORCE_INLINE
bool btIsBodyInIsland(const btSimulationIslandManagerMt::Island &island, const btCollisionObject *obj)
int btGetConstraintIslandId(const btTypedConstraint *lhs)
int getIslandId(const btPersistentManifold *lhs)
int calcBatchCost(int bodies, int manifolds, int constraints)
int getIslandId(const btPersistentManifold *lhs)
void btParallelFor(int iBegin, int iEnd, int grainSize, const btIParallelForBody &body)
function object that routes calls to operator<
bool operator()(const btSimulationIslandManagerMt::Island *lhs, const btSimulationIslandManagerMt::Island *rhs) const
bool operator()(const btSimulationIslandManagerMt::Island *lhs, const btSimulationIslandManagerMt::Island *rhs) const
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)
int capacity() const
return the pre-allocated (reserved) elements, this is at least as large as the total number of elemen...
btCollisionObject can be used to manage collision detection objects.
void activate(bool forceActivation=false) const
CollisionWorld is interface and container for the collision detection.
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
btAlignedObjectArray< Island * > m_allocatedIslands
virtual void addBodiesToIslands(btCollisionWorld *collisionWorld)
static void parallelIslandDispatch(btAlignedObjectArray< Island * > *islandsPtr, IslandCallback *callback)
virtual void initIslandPools()
Island * getIsland(int id)
int m_batchIslandMinBodyCount
virtual Island * allocateIsland(int id, int numBodies)
btAlignedObjectArray< Island * > m_freeIslands
virtual ~btSimulationIslandManagerMt()
btAlignedObjectArray< Island * > m_lookupIslandFromId
virtual void addManifoldsToIslands(btDispatcher *dispatcher)
int m_minimumSolverBatchSize
virtual void addConstraintsToIslands(btAlignedObjectArray< btTypedConstraint * > &constraints)
virtual void buildAndProcessIslands(btDispatcher *dispatcher, btCollisionWorld *collisionWorld, btAlignedObjectArray< btTypedConstraint * > &constraints, IslandCallback *callback)
IslandDispatchFunc m_islandDispatch
btAlignedObjectArray< Island * > m_activeIslands
btSimulationIslandManagerMt()
static void serialIslandDispatch(btAlignedObjectArray< Island * > *islandsPtr, IslandCallback *callback)
virtual void mergeIslands()
virtual void buildIslands(btDispatcher *dispatcher, btCollisionWorld *colWorld)
btUnionFind & getUnionFind()
TypedConstraint is the baseclass for Bullet constraints and vehicles.
int getNumElements() const
btElement & getElement(int index)
void sortIslands()
this is a special operation, destroying the content of btUnionFind.
void forLoop(int iBegin, int iEnd) const BT_OVERRIDE
btAlignedObjectArray< btSimulationIslandManagerMt::Island * > * islandsPtr
btSimulationIslandManagerMt::IslandCallback * callback
virtual void processIsland(btCollisionObject **bodies, int numBodies, btPersistentManifold **manifolds, int numManifolds, btTypedConstraint **constraints, int numConstraints, int islandId)=0
btAlignedObjectArray< btTypedConstraint * > constraintArray
void append(const Island &other)
btAlignedObjectArray< btCollisionObject * > bodyArray
btAlignedObjectArray< btPersistentManifold * > manifoldArray