Skip to content
Snippets Groups Projects
dem-loading-class-diagram.puml 2.43 KiB
Newer Older
  • Learn to ignore specific revisions
  • Luc Maisonobe's avatar
    Luc Maisonobe committed
    ' Copyright 2013-2022 CS GROUP
    
    ' Licensed to CS GROUP (CS) under one or more
    
    ' contributor license agreements.  See the NOTICE file distributed with
    ' this work for additional information regarding copyright ownership.
    ' CS licenses this file to You under the Apache License, Version 2.0
    ' (the "License"); you may not use this file except in compliance with
    ' the License.  You may obtain a copy of the License at
    '
    '   http://www.apache.org/licenses/LICENSE-2.0
    '
    ' Unless required by applicable law or agreed to in writing, software
    ' distributed under the License is distributed on an "AS IS" BASIS,
    ' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    ' See the License for the specific language governing permissions and
    ' limitations under the License.
    
    @startuml
    
      skinparam svek                  true
      skinparam ClassBackgroundColor  #F3EFEB/CCC9C5
      skinparam ClassArrowColor       #691616
      skinparam ClassBorderColor      #691616
      skinparam NoteBackgroundColor   #F3EFEB
      skinparam NoteBorderColor       #691616
      skinparam NoteFontColor         #691616
      skinparam ClassFontSize         11
    
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
      package org.orekit.rugged #ECEBD8 {
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
        package raster #DDEBD8 {
    
          interface UpdatableTile {
    
            +setGeometry(φ₀, λ₀, δφ, δλ, rows, columns)
    
            +setElevation(i, j, h)
          }
          interface TileUpdater {
            +updateTile(φ, λ, UpdatableTile)
          }
    
          TileUpdater --> UpdatableTile : updates
    
    
          interface "TileFactory<T extends Tile>" as TileFactory_T_ {
            +T createTile()
          }
          class "TilesCache<T extends Tile>" as TilesCache_T_ {
            + T getTile(φ, λ)
          }
    
          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 mission.specific #C4D2C5 {
        class MissionSpecificDEM #D5E0D5/E2EBE2
    
        TileUpdater <|-- MissionSpecificDEM
    
        note top #E2EBE2
          user provides DEM loading
          by implementing TileUpdater
        end note