[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.6/kdeedu/marble/src/lib
From:       Bernhard Beschow <bbeschow () cs ! tu-berlin ! de>
Date:       2011-01-19 16:45:21
Message-ID: 20110119164521.D5757AC8B7 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1215778 by beschow:

don't crash in equirectangular projection when the map doesn't cover the whole view

 M  +8 -8      AbstractScanlineTextureMapper.cpp  
 M  +8 -8      AbstractScanlineTextureMapper.h  
 M  +0 -2      EquirectScanlineTextureMapper.cpp  
 M  +0 -2      MercatorScanlineTextureMapper.cpp  
 M  +0 -2      SphericalScanlineTextureMapper.cpp  
 M  +0 -2      TileScalingTextureMapper.cpp  


--- branches/KDE/4.6/kdeedu/marble/src/lib/AbstractScanlineTextureMapper.cpp #1215777:1215778
@@ -29,8 +29,6 @@
       m_maxGlobalY( 0 ),
       m_prevLat( 0.0 ),
       m_prevLon( 0.0 ),
-      m_toTileCoordinatesLon( 0.0 ),
-      m_toTileCoordinatesLat( 0.0 ),
       m_interlaced( false ),
       m_tileLoader( tileLoader ),
       m_tilePosX( 0 ),
@@ -39,6 +37,8 @@
       m_tileSize( tileLoader->tileSize() ),  // cache tile size
       m_tile( 0 ),
       m_previousRadius( 0 ),
+      m_toTileCoordinatesLon( 0.0 ),
+      m_toTileCoordinatesLat( 0.0 ),
       m_tileLevel( 0 ),
       m_globalWidth( 0 ),
       m_globalHeight( 0 ),
@@ -91,8 +91,8 @@
     // the center to the upper left corner and subtract the tile position 
     // in that coordinate system. In total this equals a coordinate 
     // transformation to tile coordinates.
-    m_toTileCoordinatesLon = (qreal)(m_globalWidth / 2 - m_tilePosX);
-    m_toTileCoordinatesLat = (qreal)(m_globalHeight / 2 - m_tilePosY);
+    m_toTileCoordinatesLon = (qreal)(0.5 * m_globalWidth - m_tilePosX);
+    m_toTileCoordinatesLat = (qreal)(0.5 * m_globalHeight - m_tilePosY);
 
     if ( changedTileLevel ) {
         m_tileLoader->flush();
@@ -501,11 +501,11 @@
     // ( origin upper left, measured in pixels )
 
     m_tilePosX = tileCol * m_tileSize.width();
-    m_toTileCoordinatesLon = (qreal)(m_globalWidth / 2 - m_tilePosX);
+    m_toTileCoordinatesLon = (qreal)(0.5 * m_globalWidth - m_tilePosX);
     posX = lon - m_tilePosX;
 
     m_tilePosY = tileRow * m_tileSize.height();
-    m_toTileCoordinatesLat = (qreal)(m_globalHeight / 2 - m_tilePosY);
+    m_toTileCoordinatesLat = (qreal)(0.5 * m_globalHeight - m_tilePosY);
     posY = lat - m_tilePosY;
 }
 
@@ -541,11 +541,11 @@
     // ( origin upper left, measured in pixels )
 
     m_tilePosX = tileCol * m_tileSize.width();
-    m_toTileCoordinatesLon = (qreal)(m_globalWidth / 2 - m_tilePosX);
+    m_toTileCoordinatesLon = (qreal)(0.5 * m_globalWidth - m_tilePosX);
     posX = lon - m_tilePosX;
 
     m_tilePosY = tileRow * m_tileSize.height();
-    m_toTileCoordinatesLat = (qreal)(m_globalHeight / 2 - m_tilePosY);
+    m_toTileCoordinatesLat = (qreal)(0.5 * m_globalHeight - m_tilePosY);
     posY = lat - m_tilePosY;
 }
 
--- branches/KDE/4.6/kdeedu/marble/src/lib/AbstractScanlineTextureMapper.h #1215777:1215778
@@ -105,14 +105,6 @@
     qreal  m_prevLat;
     qreal  m_prevLon;
 
-    // Coordinate transformations:
-
-    // Converts global texture coordinates 
-    // ( with origin in center, measured in pixel) 
-    // to tile coordinates ( measured in pixel )
-    qreal  m_toTileCoordinatesLon;
-    qreal  m_toTileCoordinatesLat;
-
     bool m_interlaced;
 
     StackedTileLoader *m_tileLoader;
@@ -131,6 +123,14 @@
     StackedTile *m_tile;
     int         m_previousRadius;
 
+    // Coordinate transformations:
+
+    // Converts global texture coordinates 
+    // ( with origin in center, measured in pixel) 
+    // to tile coordinates ( measured in pixel )
+    qreal  m_toTileCoordinatesLon;
+    qreal  m_toTileCoordinatesLat;
+
     int         m_tileLevel;
     int         m_globalWidth;
     int         m_globalHeight;
--- branches/KDE/4.6/kdeedu/marble/src/lib/EquirectScanlineTextureMapper.cpp #1215777:1215778
@@ -81,8 +81,6 @@
 
     m_tilePosX = 65535;
     m_tilePosY = 65535;
-    m_toTileCoordinatesLon = (qreal)(globalWidth() / 2 - m_tilePosX);
-    m_toTileCoordinatesLat = (qreal)(globalHeight() / 2 - m_tilePosY);
 
     // Calculate how many degrees are being represented per pixel.
     const float rad2Pixel = (float)( 2 * radius ) / M_PI;
--- branches/KDE/4.6/kdeedu/marble/src/lib/MercatorScanlineTextureMapper.cpp #1215777:1215778
@@ -85,8 +85,6 @@
 
     m_tilePosX = 65535;
     m_tilePosY = 65535;
-    m_toTileCoordinatesLon = (qreal)(globalWidth() / 2 - m_tilePosX);
-    m_toTileCoordinatesLat = (qreal)(globalHeight() / 2 - m_tilePosY);
 
     // Calculate how many degrees are being represented per pixel.
     const float rad2Pixel = (float)( 2 * radius ) / M_PI;
--- branches/KDE/4.6/kdeedu/marble/src/lib/SphericalScanlineTextureMapper.cpp #1215777:1215778
@@ -87,8 +87,6 @@
 
     m_tilePosX = 65535;
     m_tilePosY = 65535;
-    m_toTileCoordinatesLon = (qreal)(globalWidth() / 2 - m_tilePosX);
-    m_toTileCoordinatesLat = (qreal)(globalHeight() / 2 - m_tilePosY);
 
     // Reset backend
     m_tileLoader->resetTilehash();
--- branches/KDE/4.6/kdeedu/marble/src/lib/TileScalingTextureMapper.cpp #1215777:1215778
@@ -83,8 +83,6 @@
 
     m_tilePosX = 65535;
     m_tilePosY = 65535;
-    m_toTileCoordinatesLon = (qreal)(globalWidth() / 2 - m_tilePosX);
-    m_toTileCoordinatesLat = (qreal)(globalHeight() / 2 - m_tilePosY);
 
     // Reset backend
     m_tileLoader->resetTilehash();
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic