int numContacts = _contactManifold->getNumContacts();
//For each contact point in that manifold
double pdist = (_contactManifold->getContactPoint(0).getDistance());
+ btVector3 ptN = (_contactManifold->getContactPoint(0).m_normalWorldOnB);;
for (int j = 0; j < numContacts; j++) {
//Get the contact information
btManifoldPoint& pt = _contactManifold->getContactPoint(j);
- btVector3 ptA = pt.getPositionWorldOnA();
- pdist = min(((double)pt.getDistance()), pdist);
+
+ if (pdist >= pt.getDistance())
+ {
+ pdist = pt.getDistance();
+ ptN = pt.m_normalWorldOnB;
+ }
+
+
+ }
+
+ if (ptN.getY() >= .4f)
+ {
+ _other->ySpeed = 5;
+ //BOAR DIE!!!
+ return;
}
if (pdist >= .0f)
{
//Get the contact information
btManifoldPoint& pt = _contactManifold->getContactPoint(j);
- btVector3 ptA = pt.getPositionWorldOnA();
- btVector3 ptB = pt.getPositionWorldOnB();
- vec3 ptAg(ptA.getX(), ptA.getY(), ptA.getZ());
- vec3 ptBg(ptB.getX(), ptB.getY(), ptB.getZ());
- //normal = normalize(ptAg - ptBg);
pdist = pt.getDistance();
btVector3 ptN = pt.m_normalWorldOnB;
normal = vec3(ptN.getX(), ptN.getY(), ptN.getZ());
+
_other->yFloorDist = pdist * normal[1];