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

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/lib
From:       Torsten Rahn <tackat () kde ! org>
Date:       2008-04-02 16:01:10
Message-ID: 1207152070.934920.15452.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 792939 by rahn:

- Full AA for Marble's Atlas View



 M  +0 -5      MarbleMap.cpp  
 M  +0 -5      MarbleMap.h  
 M  +93 -13    TextureColorizer.cpp  
 M  +17 -7     VectorComposer.cpp  
 M  +0 -2      ViewParams.cpp  
 M  +0 -2      ViewParams.h  


--- trunk/KDE/kdeedu/marble/src/lib/MarbleMap.cpp #792938:792939
@@ -1167,11 +1167,6 @@
     }
 }
 
-void MarbleMap::setViewContext( Marble::ViewContext viewContext )
-{
-    viewParams()->m_viewContext = viewContext;
-}
-
 QString MarbleMap::distanceString() const
 {
     const double VIEW_ANGLE = 110.0;
--- trunk/KDE/kdeedu/marble/src/lib/MarbleMap.h #792938:792939
@@ -797,11 +797,6 @@
      */
     void setDownloadUrl( const QUrl &url );
 
-    /**
-     * @brief Set the view context (i.e. still or animated map) 
-     */
-    void setViewContext( Marble::ViewContext viewContext );
-
     bool  globeCoversImage();
 
  Q_SIGNALS:
--- trunk/KDE/kdeedu/marble/src/lib/TextureColorizer.cpp #792938:792939
@@ -47,7 +47,7 @@
 
     const uint landoffscreen = qRgb(255,0,0);
     // const uint seaoffscreen = qRgb(0,0,0);
-    const uint lakeoffscreen = qRgb(0,255,0);
+    const uint lakeoffscreen = qRgb(0,0,0);
     // const uint glaciercolor = qRgb(200,200,200);
 
     int     bump = 0;
@@ -107,15 +107,55 @@
                 else
                     bump = 8;
 
-                if ( *coastData == landoffscreen )
-                    *writeData = texturepalette[bump][grey + 0x100]; 
-                else {
-                    if (*coastData == lakeoffscreen)
-                        *writeData = texturepalette[bump][0x055];
+                int red  = qRed( *coastData );
+                if ( red == 255 || red == 0 ) {
+                    if ( *coastData == landoffscreen )
+                        *writeData = texturepalette[bump][grey + 0x100]; 
                     else {
-                        *writeData = texturepalette[bump][grey];
+                        if (*coastData == lakeoffscreen)
+                            *writeData = texturepalette[bump][0x055];
+                        else {
+                            *writeData = texturepalette[bump][grey];
+                        }
                     }
                 }
+                else
+                {
+                    if ( qRed( *coastData ) != 0 && qGreen( *coastData ) == 0) {
+                        double landalpha = (double)(red) / 255.0;
+
+                        QRgb landcolor  = (QRgb)(texturepalette[bump][grey + 0x100]);
+                        QRgb watercolor = (QRgb)(texturepalette[bump][grey]);
+
+                        *writeData = qRgb( 
+                              (int)( landalpha * qRed( landcolor ) )
+                            + (int)( ( 1-landalpha ) * qRed( watercolor ) ),
+                              (int)( landalpha * qGreen( landcolor ) )
+                            + (int)( ( 1-landalpha ) * qGreen( watercolor ) ),
+                              (int)( landalpha * qBlue( landcolor ) )
+                            + (int)( ( 1-landalpha ) * qBlue( watercolor ) )
+                        );
+                    }
+                    else {
+
+                        if ( qGreen( *coastData ) != 0 ) {
+                            double landalpha = qGreen(*coastData) / 255.0;
+
+                            QRgb landcolor  = (QRgb)(texturepalette[bump][grey + 0x100]);
+                            QRgb glaciercolor = (QRgb)(texturepalette[bump][grey]);
+    
+                            *writeData = qRgb( 
+                                (int)( landalpha * qRed( glaciercolor ) )
+                                + (int)( ( 1-landalpha ) * qRed( landcolor ) ),
+                                (int)( landalpha * qGreen( glaciercolor ) )
+                                + (int)( ( 1-landalpha ) * qGreen( landcolor ) ),
+                                (int)( landalpha * qBlue( glaciercolor ) )
+                                + (int)( ( 1-landalpha ) * qBlue( landcolor ) )
+                            ); 
+                        }
+
+                    }
+                }
             }
         }
     }
@@ -158,15 +198,55 @@
                 else
                     bump = 8;
 
-                if ( *coastData == landoffscreen )
-                    *writeData = texturepalette[bump][grey + 0x100];	
-                else {
-                    if (*coastData == lakeoffscreen)
-                    *writeData = texturepalette[bump][0x055];
+                int red  = qRed( *coastData );
+                if ( red == 255 || red == 0 ) {
+                    if ( *coastData == landoffscreen )
+                        *writeData = texturepalette[bump][grey + 0x100]; 
                     else {
-                        *writeData = texturepalette[bump][grey];
+                        if (*coastData == lakeoffscreen)
+                            *writeData = texturepalette[bump][0x055];
+                        else {
+                            *writeData = texturepalette[bump][grey];
+                        }
                     }
                 }
+                else
+                {
+                    if ( qRed( *coastData ) != 0 && qGreen( *coastData ) == 0) {
+                        double landalpha = (double)(red) / 255.0;
+
+                        QRgb landcolor  = (QRgb)(texturepalette[bump][grey + 0x100]);
+                        QRgb watercolor = (QRgb)(texturepalette[bump][grey]);
+
+                        *writeData = qRgb( 
+                              (int)( landalpha * qRed( landcolor ) )
+                            + (int)( ( 1-landalpha ) * qRed( watercolor ) ),
+                              (int)( landalpha * qGreen( landcolor ) )
+                            + (int)( ( 1-landalpha ) * qGreen( watercolor ) ),
+                              (int)( landalpha * qBlue( landcolor ) )
+                            + (int)( ( 1-landalpha ) * qBlue( watercolor ) )
+                        );
+                    }
+                    else {
+
+                        if ( qGreen( *coastData ) != 0 ) {
+                            double landalpha = qGreen(*coastData) / 255.0;
+
+                            QRgb landcolor  = (QRgb)(texturepalette[bump][grey + 0x100]);
+                            QRgb glaciercolor = (QRgb)(texturepalette[bump][grey]);
+    
+                            *writeData = qRgb( 
+                                (int)( landalpha * qRed( glaciercolor ) )
+                                + (int)( ( 1-landalpha ) * qRed( landcolor ) ),
+                                (int)( landalpha * qGreen( glaciercolor ) )
+                                + (int)( ( 1-landalpha ) * qGreen( landcolor ) ),
+                                (int)( landalpha * qBlue( glaciercolor ) )
+                                + (int)( ( 1-landalpha ) * qBlue( landcolor ) )
+                            ); 
+                        }
+
+                    }
+                }
             }
         }
     }
--- trunk/KDE/kdeedu/marble/src/lib/VectorComposer.cpp #792938:792939
@@ -56,8 +56,8 @@
     m_textureLandPen = QPen( Qt::NoPen );
 
     m_textureLandBrush = QBrush( QColor( 255, 0, 0 ) );
-    m_textureLakeBrush = QBrush( QColor( 0, 255, 0 ) );
-    m_textureGlacierBrush = QBrush( QColor( 0, 0, 0 ) );
+    m_textureLakeBrush = QBrush( QColor( 0, 0, 0 ) );
+    m_textureGlacierBrush = QBrush( QColor( 0, 255, 0 ) );
     m_textureBorderPen.setStyle( Qt::SolidLine );
     m_textureBorderPen.setColor( QColor( 0, 255, 0 ) );
 
@@ -93,6 +93,13 @@
 
     //	m_vectorMap -> clearNodeCount();
 
+    bool antialiased = false;
+
+    if (   viewParams->mapQuality() == Marble::High
+        || viewParams->mapQuality() == Marble::Print ) {
+            antialiased = true;
+    }
+
     // Coastlines
     m_vectorMap -> setzBoundingBoxLimit( 0.4 ); 
     m_vectorMap -> setzPointLimit( 0 ); // 0.6 results in green pacific
@@ -100,7 +107,7 @@
     m_vectorMap -> createFromPntMap( m_coastLines, viewParams->viewport() );
     m_vectorMap -> setPen( m_textureLandPen );
     m_vectorMap -> setBrush( m_textureLandBrush );
-    m_vectorMap -> drawMap( origimg, false, viewParams->viewport() );
+    m_vectorMap -> drawMap( origimg, antialiased, viewParams->viewport() );
 
     // Islands
     m_vectorMap -> setzBoundingBoxLimit( 0.8 );
@@ -109,7 +116,7 @@
     m_vectorMap -> createFromPntMap( m_islands, viewParams->viewport() );
     m_vectorMap -> setPen( m_textureLandPen );
     m_vectorMap -> setBrush( m_textureLandBrush );
-    m_vectorMap -> drawMap( origimg, false, viewParams->viewport() );
+    m_vectorMap -> drawMap( origimg, antialiased, viewParams->viewport() );
 
     if ( viewParams->m_showLakes ) {
          // Lakes
@@ -117,12 +124,14 @@
          m_vectorMap -> setzPointLimit( 0.98 ); 
 
          m_vectorMap -> createFromPntMap( m_lakes, viewParams->viewport() );
+         m_vectorMap -> setPen( Qt::NoPen );
          m_vectorMap -> setBrush( m_textureLakeBrush );
-         m_vectorMap -> drawMap( origimg, false, viewParams->viewport() );
+         m_vectorMap -> drawMap( origimg, antialiased, viewParams->viewport() );
 
          m_vectorMap -> createFromPntMap( m_lakeislands, viewParams->viewport() );
+         m_vectorMap -> setPen( Qt::NoPen );
          m_vectorMap -> setBrush( m_textureLandBrush );
-         m_vectorMap -> drawMap( origimg, false, viewParams->viewport() );
+         m_vectorMap -> drawMap( origimg, antialiased, viewParams->viewport() );
     }
 
     if ( viewParams->m_showIceLayer ) {
@@ -130,9 +139,10 @@
          m_vectorMap -> setzBoundingBoxLimit( 0.8 );
          m_vectorMap -> setzPointLimit( 0.9 );
          m_vectorMap -> createFromPntMap( m_glaciers, viewParams->viewport() );
+         m_vectorMap -> setPen( Qt::NoPen );
          m_vectorMap -> setBrush( m_textureGlacierBrush );
 
-         m_vectorMap -> drawMap( origimg, false, viewParams->viewport() );
+         m_vectorMap -> drawMap( origimg, antialiased, viewParams->viewport() );
     }
 
     // qDebug() << "TextureMap calculated nodes: " << m_vectorMap->nodeCount();
--- trunk/KDE/kdeedu/marble/src/lib/ViewParams.cpp #792938:792939
@@ -21,8 +21,6 @@
 
     m_mapQuality = Normal;
 
-    m_viewContext = Still;
-
     // Show / don't show parameters
     m_showGrid           = true;
     m_showPlaceMarks     = true;
--- trunk/KDE/kdeedu/marble/src/lib/ViewParams.h #792938:792939
@@ -69,8 +69,6 @@
 
     MapQuality  m_mapQuality;
 
-    ViewContext m_viewContext;
-
     // Parameters that determine the painting
     //Quaternion  m_planetAxis;   // Position, coded in a quaternion
     Quaternion  m_planetAxisUpdated;

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

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