public SimObject getObject(Vec2 point) {
		for (SimObject obj : this.allObjects.descendingSet()) {
			if (!obj.isMoveable()) continue;
			if (obj instanceof Gate) {
				// Do the collision math
				Vec2 center = ((Gate)obj).getPosition();
				Vec2 dir = MathHelper.polar(1.0f,(float) obj.getStartAngle());
				Vec2 diff = point.sub(center);
				Vec2 proj = dir.mul(Vec2.dot(diff,dir)/Vec2.dot(dir,dir));
				Vec2 rej = diff.sub(proj);
				if (proj.length() < 128.0f && rej.length() < 16.0f) return obj;
			}
			if (obj.getBody() == null) continue;
			Fixture fix = obj.getBody().getFixtureList();
			if (fix.testPoint(point.mul(1.0f/WorldManager.PHYSICS_SCALE))) return obj;
		}
		return null;
	}