void Report(ContactVelocityConstraint[] constraints) { if (_contactManager == null) { return; } for (int i = 0; i < ContactCount; ++i) { Contact c = _contacts[i]; //FPE optimization: We don't store the impulses and send it to the delegate. We just send the whole contact. //FPE feature: added after collision if (c.FixtureA.AfterCollision != null) { c.FixtureA.AfterCollision(c.FixtureA, c.FixtureB, c, constraints[i]); } if (c.FixtureB.AfterCollision != null) { c.FixtureB.AfterCollision(c.FixtureB, c.FixtureA, c, constraints[i]); } if (_contactManager.OnPostSolve != null) { _contactManager.OnPostSolve(c, constraints[i]); } } }