mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-04-19 19:35:26 +00:00
Removes the body for the physicsBody's findContact function until it's ready to be finished/used with the entity/component stuff.
This corrects an error for PhysX compilation due to unready code being inadvertently added in with the e/c update.
This commit is contained in:
parent
95c0bcd411
commit
34ad0c39d5
2 changed files with 2 additions and 105 deletions
|
|
@ -383,64 +383,6 @@ void BtBody::findContact(SceneObject **contactObject,
|
|||
VectorF *contactNormal,
|
||||
Vector<SceneObject*> *outOverlapObjects) const
|
||||
{
|
||||
AssertFatal(mActor, "BtPlayer::findContact - The controller is null!");
|
||||
|
||||
VectorF normal;
|
||||
F32 maxDot = -1.0f;
|
||||
|
||||
// Go thru the contact points... get the first contact.
|
||||
//mWorld->getDynamicsWorld()->computeOverlappingPairs();
|
||||
btOverlappingPairCache *pairCache = mWorld->getDynamicsWorld()->getBroadphase()->getOverlappingPairCache();
|
||||
|
||||
btBroadphasePairArray& pairArray = pairCache->getOverlappingPairArray();
|
||||
U32 numPairs = pairArray.size();
|
||||
btManifoldArray manifoldArray;
|
||||
|
||||
for (U32 i = 0; i < numPairs; i++)
|
||||
{
|
||||
const btBroadphasePair &pair = pairArray[i];
|
||||
|
||||
btBroadphasePair *collisionPair = pairCache->findPair(pair.m_pProxy0, pair.m_pProxy1);
|
||||
if (!collisionPair || !collisionPair->m_algorithm)
|
||||
continue;
|
||||
|
||||
btCollisionObject *other = (btCollisionObject*)pair.m_pProxy0->m_clientObject;
|
||||
if (other == mActor)
|
||||
other = (btCollisionObject*)pair.m_pProxy1->m_clientObject;
|
||||
|
||||
// AssertFatal(!outOverlapObjects->contains(PhysicsUserData::getObject(other->getUserPointer())),
|
||||
// "Got multiple pairs of the same object!");
|
||||
outOverlapObjects->push_back(PhysicsUserData::getObject(other->getUserPointer()));
|
||||
|
||||
if (other->getCollisionFlags() & btCollisionObject::CF_NO_CONTACT_RESPONSE)
|
||||
continue;
|
||||
|
||||
manifoldArray.clear();
|
||||
collisionPair->m_algorithm->getAllContactManifolds(manifoldArray);
|
||||
|
||||
for (U32 j = 0; j < manifoldArray.size(); j++)
|
||||
{
|
||||
btPersistentManifold *manifold = manifoldArray[j];
|
||||
btScalar directionSign = manifold->getBody0() == mActor ? 1.0f : -1.0f;
|
||||
|
||||
for (U32 p = 0; p < manifold->getNumContacts(); p++)
|
||||
{
|
||||
const btManifoldPoint &pt = manifold->getContactPoint(p);
|
||||
|
||||
// Test the normal... is it the most vertical one we got?
|
||||
normal = btCast<Point3F>(pt.m_normalWorldOnB * directionSign);
|
||||
F32 dot = mDot(normal, VectorF(0, 0, 1));
|
||||
if (dot > maxDot)
|
||||
{
|
||||
maxDot = dot;
|
||||
|
||||
btCollisionObject *colObject = (btCollisionObject*)collisionPair->m_pProxy0->m_clientObject;
|
||||
*contactObject = PhysicsUserData::getObject(colObject->getUserPointer());
|
||||
*contactNormal = normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BtBody::moveKinematicTo(const MatrixF &transform)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue