Moderators: Sascha Willems, walaber
void dgCollidingPairCollector::AddPair (dgContact* const contact, dgInt32 threadIndex)
{
dgWorld* const world = (dgWorld*) this;
dgBody* const body0 = contact->m_body0;
dgBody* const body1 = contact->m_body1;
dgAssert (body0 != m_sentinel);
dgAssert (body1 != m_sentinel);
dgAssert (contact->GetId() == dgConstraint::m_contactConstraint);
dgAssert (body0->GetWorld());
dgAssert (body1->GetWorld());
dgAssert (body0->GetWorld() == world);
dgAssert (body1->GetWorld() == world);
if (!(body0->m_collideWithLinkedBodies & body1->m_collideWithLinkedBodies)) {
if (world->AreBodyConnectedByJoints (body0, body1)) {
return;
}
}
const dgContactMaterial* const material = contact->m_material;
if (material->m_flags & dgContactMaterial::m_collisionEnable) {
dgInt32 processContacts = 1;
if (material->m_aabbOverlap) {
processContacts = material->m_aabbOverlap (*material, *body0, *body1, threadIndex);
}
if (processContacts) {
Users browsing this forum: No registered users and 0 guests