I've come to revisit collision detection for another project I'm doing. It's in 2D, but it's still applicable.
I'm looking at refreshContactPoints in bullet and it seems like the two transforms (m_rootTransA, m_rootTransB) that are passed in, ironically, never get refreshed. My bullet setup is a capsule on a box so it's using btConvexConvexAlgorithm. I see refreshContacts is being called in there, but nowhere else! Unless I'm missing something in the overlapping pairs section, it's not clear to me how this capsule rolls (it rolls beautifully--bullet still looks better than my physics engine). I think maybe the broad phase is detecting a separation and dumping the entire manifold instead of the narrow phase updating the contact points. I could be way off, but it's pretty hard to tell what the heck is going on.
I would appreciate any help on this.
Basically, my problem is this:
I'm doing a 2D physics setup with balls and boxes. I'm detecting contact points, but I don't know how to manage the contact points. Maximize area, sure. But the seperation of objects seems to be a problem. On another note, I commented out my version of refreshContacts from my engine and the rag-dolls don't go through the floor anymore, BUT they slide around on the ground as if ghost objects are pushing them. My broadphase is really dumb, I'm doing OBBIntersectOBB which is like 13 cross products if I remember correctly

Mike