From edc88755ab8fa35b1dd61e3d8b04f0287450c533 Mon Sep 17 00:00:00 2001
From: Luc Maisonobe <luc@orekit.org>
Date: Tue, 20 May 2014 16:55:32 +0200
Subject: [PATCH] Improved tile loading class diagram.

---
 design/dem-loading-class-diagram.puml | 35 +++++++++++++++++++--------
 1 file changed, 25 insertions(+), 10 deletions(-)

diff --git a/design/dem-loading-class-diagram.puml b/design/dem-loading-class-diagram.puml
index 173c65c1..dbda0ca2 100644
--- a/design/dem-loading-class-diagram.puml
+++ b/design/dem-loading-class-diagram.puml
@@ -35,30 +35,45 @@
       interface TileUpdater {
         +updateTile(φ, λ, UpdatableTile)
       }
-      UpdatableTile <-- TileUpdater : updates
+      TileUpdater --> UpdatableTile : updates
     }
 
     package raster #DDEBD8 {
-     interface Tile
-     class SpecializedTile
       interface "TileFactory<T extends Tile>" as TileFactory_T_ {
         +T createTile()
       }
       class "TilesCache<T extends Tile>" as TilesCache_T_ {
         + T getTile(φ, λ)
       }
-      Tile --|> UpdatableTile
-      Tile <|-- SpecializedTile
-      SpecializedTile "*" <--o "1" TilesCache_T_
-     TileUpdater  "1" <--o "1" TilesCache_T_ : triggers
-     TileFactory_T_  "1" <--o "1" TilesCache_T_ : triggers
-     TileFactory_T_  --> SpecializedTile : creates
+      interface Tile {
+        + double interpolateElevation(φ, λ)
+      }
+      UpdatableTile <|.. Tile
+      Tile <|-- SimpleTile
+      TilesCache_T_ "1" o--> "*" Tile
+      TilesCache_T_  "1" o--> "1" TileUpdater : triggers
+      TilesCache_T_ "1" o--> "1" TileFactory_T_ : triggers
+    }
+
+    package intersection.duvenhage #DDEBD8 {
+      TileFactory_T_ <|-- MinMaxTreeTileFactory
+      SimpleTile     <|-- MinMaxTreeTile
+      MinMaxTreeTileFactory  -left-> MinMaxTreeTile : creates
+      note left
+        tile extended with Duvenhage
+        specific min/max kd-tree
+      end note
     }
 
   }
 
-  package specific.interface #ECEBD8 {
+  package mission.specific #C4D2C5 {
+    class MissionSpecificDEM #D5E0D5/E2EBE2
     TileUpdater <|-- MissionSpecificDEM
+    note top #E2EBE2
+      user provides DEM loading
+      by implementing TileUpdater
+    end note
   }
 
 @enduml
-- 
GitLab