20#ifdef BT_DEBUG_COLLISION_PAIRS
21int gOverlappingSimplePairs = 0;
22int gRemoveSimplePairs = 0;
23int gAddedSimplePairs = 0;
24int gFindSimplePairs = 0;
29 int initialAllocatedSize = 2;
44 int initialAllocatedSize = 2;
51#ifdef BT_DEBUG_COLLISION_PAIRS
58 int hash =
static_cast<int>(
getHash(
static_cast<unsigned int>(indexA),
static_cast<unsigned int>(indexB)) & (
m_overlappingPairArray.capacity() - 1));
93 m_next.resize(newCapacity);
97 for (i = 0; i < newCapacity; ++i)
101 for (i = 0; i < newCapacity; ++i)
106 for (i = 0; i < curHashtableSize; i++)
112 int hashValue =
static_cast<int>(
getHash(
static_cast<unsigned int>(indexA),
static_cast<unsigned int>(indexB)) & (
m_overlappingPairArray.capacity() - 1));
121 int hash =
static_cast<int>(
getHash(
static_cast<unsigned int>(indexA),
static_cast<unsigned int>(indexB)) & (
m_overlappingPairArray.capacity() - 1));
135 if (oldCapacity < newCapacity)
139 hash =
static_cast<int>(
getHash(
static_cast<unsigned int>(indexA),
static_cast<unsigned int>(indexB)) & (
m_overlappingPairArray.capacity() - 1));
154#ifdef BT_DEBUG_COLLISION_PAIRS
155 gRemoveSimplePairs++;
161 int hash =
static_cast<int>(
getHash(
static_cast<unsigned int>(indexA),
static_cast<unsigned int>(indexB)) & (
m_overlappingPairArray.capacity() - 1));
179 while (index != pairIndex)
202 if (lastPairIndex == pairIndex)
217 while (index != lastPairIndex)
const int BT_SIMPLE_NULL_PAIR
virtual ~btHashedSimplePairCache()
btSimplePair * internalFindPair(int proxyIdA, int proxyIdB, int hash)
unsigned int getHash(unsigned int indexA, unsigned int indexB)
btSimplePair * internalAddPair(int indexA, int indexB)
btAlignedObjectArray< int > m_hashTable
btAlignedObjectArray< int > m_next
btSimplePairArray m_overlappingPairArray
btHashedSimplePairCache()
btSimplePair * findPair(int indexA, int indexB)
bool equalsPair(const btSimplePair &pair, int indexA, int indexB)
virtual void * removeOverlappingPair(int indexA, int indexB)