public void PushContact(Contact contact)
{
if (contact.Manifold.PointCount > 0)
{
contact.FixtureA.Body.Awake = true;
contact.FixtureB.Body.Awake = true;
}
ShapeType type1 = contact.FixtureA.Type;
ShapeType type2 = contact.FixtureB.Type;
IDynamicStack<Contact> creator = contactStacks[(int)type1][(int)type2].Creator;
creator.Push(contact);
}