[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