implemented patch by Vroonsh to optimize island management with many static objects.

It can be disabled by commenting out the #define STATIC_SIMULATION_ISLAND_OPTIMIZATION in Bullet/src/BulletCollision/CollisionDispatch/btUnionFind.h

See also Issue 406
This commit is contained in:
erwin.coumans
2010-07-20 00:21:52 +00:00
parent 5b70a895a5
commit f5e6f87427
3 changed files with 70 additions and 15 deletions

View File

@@ -70,7 +70,9 @@ void btUnionFind::sortIslands()
for (int i=0;i<numElements;i++)
{
m_elements[i].m_id = find(i);
#ifndef STATIC_SIMULATION_ISLAND_OPTIMIZATION
m_elements[i].m_sz = i;
#endif //STATIC_SIMULATION_ISLAND_OPTIMIZATION
}
// Sort the vector using predicate and std::sort
@@ -78,4 +80,3 @@ void btUnionFind::sortIslands()
m_elements.quickSort(btUnionFindElementSortPredicate());
}