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

List:       kde-commits
Subject:    playground/base/marble
From:       Inge Wallin <inge () lysator ! liu ! se>
Date:       2007-04-22 19:38:05
Message-ID: 1177270685.228798.18673.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 656943 by ingwa:

a structure and some initial data about the DESIGN

 M  +6 -2      ChangeLog  
 M  +96 -3     src/DESIGN  
 M  +3 -0      src/TODO  


--- trunk/playground/base/marble/ChangeLog #656942:656943
@@ -1,5 +1,9 @@
+22.04.07 - ingwa
+	 First draft of the DESIGN file with headings, but lots of missing
+	 contents.
 
-22.04.07 - introducing m_dragThreshold in KAtlasInputHandler to get rid 
-           of extra repaints. murad/tackat
+22.04.07 - murad/tackat
+	 introducing m_dragThreshold in KAtlasInputHandler to get rid of
+	 extra repaints.
 
 
--- trunk/playground/base/marble/src/DESIGN #656942:656943
@@ -1,3 +1,99 @@
+This file describes the design and structure of Marble
+
+1. The main structure
+=====================
+
+Marble, the application, consists two main widgets: 
+  - a KAtlasView that contains the view of the world, and
+  - a KAtlasToolbox that controls it.
+
+The KAtlasView is a view for the model represented by the KAtlasGlobe
+class, which contains all the data necessary for manipulating and
+displaying the map.
+
+FIXME: Currently the view creates the model, but this will be changed
+       very soon.  The model/view separation is not perfect, so we are
+       working on it.  In the future, the main program will create the
+       model and then create the view and controller with a pointer to
+       the model as a parameter.  This will allow the model to have
+       several views with separate sizes, orientations and even
+       projections (flat and spherical, for instance).
+
+
+2. The World Model
+==================
+
+The model of the world consists of 3 different parts, which can be
+viewed as separate layers:
+
+ - A pixel based area that is split up into tiles.  These tiles are
+   produced from different data sources, either from satellite scans
+   or from photographs.  The tiles are stored in several different
+   resolutions that are used in different zoom levels.  The tiles are
+   automatically generated the first time that the application is
+   started, and are stored into $HOME/.marble/data/maps.
+
+   The main class of the tiles layer is the TextureMapper, which maps
+   a tiled texture onto the projected sphere.
+
+ - Vectors that represent different kinds of borders, political or
+   geographical or features.  Geographical borders can be coastlines
+   or lakes, but also rivers.  Political borders are mostly countries,
+   but also the states of the USA.
+
+   The main classes of the vectors are the GeoPolygon and the PntMap,
+   which contain the actual vectors, but also a bounding box.
+
+ - Points of interest.  These are mostly cities, but also some
+   mountains. 
+
+   The main class of the points is the PlaceMark with a somewhat
+   arbitrary selection of properties. Another important class is the
+   PlaceContainer which collects a number of PlaceMarks into a
+   container, just like the name suggests.
+
+
+2.1 The Tile System
+-------------------
+
+FIXME: To be written...
+
+
+2.2 The Vector System
+---------------------
+
+FIXME: To be written...
+
+FIXME: Explain the differences between the GeoPolygon and the
+       ScreenPolygon, and how they interact.  Also the PntMap and the
+       VectorMap.
+
+
+2.3 Placemarks
+--------------
+
+FIXME: To be written...
+
+
+3. The Painting Process
+=======================
+
+FIXME: To be written...
+
+
+4. The Basic Building Blocks
+============================
+
+Quaternions
+GeoPoint, GeoPolygon, PntMap
+ScreenPolygon, VectorMap
+
+
+5. Class Overview
+=================
+
+Here follows now a list of classes, their roles and how they interact.
+
 Basic classes
 -------------
 
@@ -30,9 +126,6 @@
 		 - Countrycode (QString)
 		 - View stuff (selected, labelstring, boundingbox, etc)
 
-PlaceMarkStorage Contains a name and a bool 'visible' 
-		 Not used.  FIXME.
-
 PlaceContainer	A list of PlaceMarks ( QVector<Placemark *> )
 
 
--- trunk/playground/base/marble/src/TODO #656942:656943
@@ -12,7 +12,10 @@
  * Add Downloadmanager class for tiles and Wikipedia articles		TACK
  * Fix image downloading for Wikipedia					TACK
 
+Cleaning
+ * Make the ChangeLog file follow the GNU format.                       INGE
 
+
 Before the SoC projects start (0.5)
 ----------------------------------------------------------------
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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