' 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 package org.orekit.rugged #ECEBD8 { 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 } @enduml