Skip to content
Snippets Groups Projects
direct-location-class-diagram.puml 2.5 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
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
    ' 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 rugged #ECEBD8 {
    
        package raster #DDEBD8 {
          interface Tile {
            +interpolateElevation(φ, λ)
    
            +pixelIntersection(NormalizedGeodeticPoint, los, φ index, λ index)
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
          }
        }
    
        package intersection #DDEBD8 {
          interface IntersectionAlgorithm {
            +intersection(ellipsoid, position, los)
            +refineIntersection(ellipsoid, position, los, closeGuess)
          }
    
          Tile <-- IntersectionAlgorithm : evaluate DEM
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
        }
    
        package utils #DDEBD8 {
    
          class ExtendedEllipsoid {
            +pointAtLatitude(position, los, φ, closereference)
            +pointAtLongitude(position, los, λ)
            +pointAtAltitude(position, los, h)
            +pointOnGround(position, los)
          }
          class SpacecraftToObservedBody
    
          IntersectionAlgorithm --> ExtendedEllipsoid : compute grid points crossings
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
        }
    
        package api #DDEBD8 {
          class Rugged {
    
            +directLocation(sensorName, line)
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
          }
          IntersectionAlgorithm "1" <--o Rugged : delegate DEM intersection
          ExtendedEllipsoid <-- Rugged : convert geodetic points
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
          SpacecraftToObservedBody <-- Rugged : convert positions/directions
        }
    
        package linesensor #DDEBD8 {
          class LineSensor
    
          Rugged --> LineSensor : getLOS(date, pixel)
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
          Rugged --> LineSensor : getDate(line)
        }
    
      }
    
      package mission.specific #C4D2C5 {
        class UserMain #D5E0D5/E2EBE2
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
        UserMain -->  Rugged 
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
      }
    
    @enduml