Hi everyone,
I'm sort of asking this out of the blue... it's something I've always wondered.
When doing simultaneous collision, if you have a couple circles and some line segments, and you collide the circles so that their unembedding causes them to be embedded in something else, what do you do? Do you just wait until the next iteration for it to push out? Do you change the end-positions of the objects that reacted to the collision and rerun the simulation? It seems like that would have potential to infinite loop.
Anyway, I just wanted to see what the "correct" way of handing this is. I wrote one up that's recursion, but when a lot of things get jammed up together it becomes a framerate disaster. Meanwhile Box2D can collide 500x as many items as mine, in worse situations, and never slows down at all.