Here's how to get the world point (or points, maximum 2 points) where the collision occurred. Inside an object B2ContactListenerin BeginContactor EndContactfunction:
b2WorldManifold worldManifold;
contact->GetWorldManifold(&worldManifold);
std::cout << "Contact point X: " << worldManifold.points[0].x * Ascengine::Physics::PIXEL_TO_METER_RATIO << " Contact point Y: " << worldManifold.points[0].y * Ascengine::Physics::PIXEL_TO_METER_RATIO << std::endl;
From here, as Jason F mentioned, you can use b2Body::GetLocalPoint(const b2Vec2 &worldPoint)to transform this point of the world into a local space of objects. I just wanted to add my own answer to include all the information on how to get contact lenses in the world, as this seems to be completely excluded in the accepted answer.
user562566