| 80 | } |
| 81 | |
| 82 | m2::RectD TileKey::GetGlobalRect(bool clipByDataMaxZoom) const |
| 83 | { |
| 84 | int const zoomLevel = clipByDataMaxZoom ? ClipTileZoomByMaxDataZoom(m_zoomLevel) : m_zoomLevel; |
| 85 | ASSERT_GREATER(zoomLevel, 0, ()); |
| 86 | double const worldSizeDivisor = 1 << (zoomLevel - 1); |
| 87 | // Mercator SizeX and SizeY are equal. |
| 88 | double const rectSize = mercator::Bounds::kRangeX / worldSizeDivisor; |
| 89 | |
| 90 | double const startX = m_x * rectSize; |
| 91 | double const startY = m_y * rectSize; |
| 92 | |
| 93 | return m2::RectD(startX, startY, startX + rectSize, startY + rectSize); |
| 94 | } |
| 95 | |
| 96 | m2::PointI TileKey::GetTileCoords() const |
| 97 | { |
no test coverage detected