, m_zoomLevel(UNDEFINED)
{
setPos(UNDEFINED, UNDEFINED);
+ setShapeMode(QGraphicsPixmapItem::BoundingRectShape);
}
int MapTile::zoomLevel()
return m_zoomLevel;
}
-void MapTile::setZoomLevel(int zoomLevel)
+void MapTile::setZoomLevel(int tileZoomLevel, int currentViewZoomLevel)
{
- m_zoomLevel = zoomLevel;
+ m_zoomLevel = tileZoomLevel;
setPosition();
- setZValue(static_cast<qreal>(MIN_MAP_SCENE_NORMAL_LEVEL + zoomLevel));
+ setSceneLevel(currentViewZoomLevel);
qreal zoomFactor = static_cast<qreal>(1 << (MAX_MAP_ZOOM_LEVEL - m_zoomLevel));
setScale(zoomFactor);
void MapTile::setSceneLevel(int currentZoomLevel)
{
- /// @todo DONE Sami: bbb
if (currentZoomLevel < m_zoomLevel) {
qreal z = static_cast<qreal>(MIN_MAP_SCENE_NORMAL_LEVEL + currentZoomLevel
- (m_zoomLevel - currentZoomLevel)) + 0.5;
const int maxTileNumber = (1 << m_zoomLevel) - 1;
if ((m_zoomLevel >= MIN_MAP_ZOOM_LEVEL) && (m_zoomLevel <= MAX_MAP_ZOOM_LEVEL) &&
- (m_tileNumber.x() >= 0) && (m_tileNumber.x() <= maxTileNumber) &&
- (m_tileNumber.y() >= 0) && (m_tileNumber.y() <= maxTileNumber)) {
+ (m_tileNumber.x() >= 0) && (m_tileNumber.x() <= maxTileNumber) &&
+ (m_tileNumber.y() >= 0) && (m_tileNumber.y() <= maxTileNumber)) {
+
setPos(MapEngine::convertTileNumberToSceneCoordinate(m_zoomLevel, m_tileNumber));
//qDebug() << __PRETTY_FUNCTION__ << "tile position:" << pos();
- /// @todo DONE Sami: return
}
else {
setPos(UNDEFINED, UNDEFINED);