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

List:       kde-commits
Subject:    KDE/kdeedu/marble
From:       Torsten Rahn <tackat () kde ! org>
Date:       2008-01-21 23:08:32
Message-ID: 1200956912.062076.19483.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 764493 by rahn:


- More small adjustments



 M  +5 -0      TODO  
 M  +5 -4      docs/layermanagement.txt  


--- trunk/KDE/kdeedu/marble/TODO #764492:764493
@@ -39,6 +39,11 @@
     To get useful temperature/precipation/... maps we need to be able
     to add items to the legend in the .dgml file:
 
+    This is also a first step towards the new DGML version format that 
+    we need for the new layer management class.
+
+    see also: docs/layermanagement.txt.
+
 <Legend>
     <heading>Temperature</heading>
     <LegendItem>
--- trunk/KDE/kdeedu/marble/docs/layermanagement.txt #764492:764493
@@ -25,12 +25,13 @@
 	
 - "Execution order" of the different backends should be based on the following mechanisms:
 	a) each backend should provide "hardcoded" hints which describe dependencies (e.g. the texture \
colorization depends on the result of a texturemapping backend ) and allowed ranges for the rendering \
order (e.g. floating items should always be displayed on top of the map,  a starry background needs to \
                get drawn before the globe is painted)
-	b) the layermanagement class needs to fetch information from the .dgml-parser about the different types \
of backends that get used in a map. The .dgml file also needs to provide information about the rendering \
order. +	b) In Marble the structure of each map gets described in the map's .dgml file. So the \
layermanagement class needs to fetch information from the .dgml-parser about the different types of \
backends that get used in a map. The .dgml file also needs to provide information about the rendering \
order.  c) for backend types where there are no hard requirements on the rendering order the LMC should \
decide itself which order to take.  
-- According to the concept described so far it should be possible to paint different layers based on the \
very same backend  directly on top of each other (e.g. a cloud layer on top of a satellite map layer. \
This would result in two different layers. However for reasons of performance it needs to be possible to \
                merge the data into a single layer ("MergedLayer"). 
-This gets already done for placemarks where data from different files gets merged into a single file. It \
also gets done already for clouds on top of the satellite image data. However what's missing is a more \
generic approach where a MergedLayerPainter class operates directly on the tiles based on the information \
it receives from the LMC. Before telling the MergedLayerPainter class which layers need to get painted on \
top of the tiles the LMC needs to check whether tiles or sourceimage data is available for the map. If \
there is no such data available the LMC needs to either notify the TileLoader that it needs to create \
tiles or the LMC will simply ignore the missing data and will skip asking the MergedLayerPainter to \
render the missing data.  +- According to the concept described so far it should be possible to paint \
different layers based on the very same backend  directly on top of each other (e.g. a cloud layer on top \
of a satellite map layer. Normally this would result in two different layers. However for reasons of \
performance it needs to be possible to merge the data into a single layer right from the \
start("MergedLayer").  
+This gets already done for placemarks in current SVN where data from different files gets merged into a \
single file. It also gets done already for clouds on top of the satellite image data. However what's \
missing is a more generic approach where a MergedLayerPainter class operates directly on the tiles based \
on the information it receives from the LMC. Before telling the MergedLayerPainter class which layers \
need to get painted on top of the tiles the LMC needs to check whether tiles or sourceimage data is \
available for the map. If there is no such data available the LMC needs to either notify the TileLoader \
that it needs to create tiles or the LMC will simply ignore the missing data and will skip asking the \
MergedLayerPainter to render the missing data.  +
 - The plugin-backend concept should allow CUSTOM BACKENDS created by third party developers. 
 - Creating new geographical features on the map should happen using a Qt-like API (which would include \
the QPainter API to draw in screen coordinates):  
@@ -47,7 +48,7 @@
 	painter.drawGeoEllipse( here.lon(), here.lat(), 5, 5 ); 
 	
 
-- It should be possible to use this Qt-like Geo-API either from outside the MarbleWidget or from inside \
the custom backend plugin. +- It should be possible to use this Qt-style Geo-API either from outside the \
MarbleWidget or from inside the custom backend plugin.  
 
 FUTURE low-priority enhancements (for usage in "real" light GIS apps that might use Marble in the \
future):


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

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