Skip to content
Snippets Groups Projects
parametric-los-class-diagram.puml 2.99 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
    
      package org.orekit.rugged #ECEBD8 {
    
        package utils #DDEBD8 {
          interface ParametricModel {
             +getNbEstimatedParameters()
             +getEstimatedParameters(parameters, start, length)
            +setEstimatedParameters(parameters, start, length)
          }
          enum ParameterType {
            +FIXED
            +ESTIMATED
          }
        }
    
        package linesensor #DDEBD8 {
          class LineSensor
        }
    
        package los #DDEBD8 {
    
          interface TimeDependentLOS {
            +getNbPixels()
            +getLOS(index, date)
            +getLOS(index, date, parameters)
          }
    
          interface LOSTransform {
            +transformLOS(i, los, date)
          }
    
          interface TimeIndependentLOSTransform {
            +transformLOS(i, los)
          }
     
    
          class LOSBuilder {
            +LOSBuilder(List<Vector3D> rawLOS)
            +LOSBuilder addTransform(TimeIndependentLOSTransform transform)
            +LOSBuilder addTransform(LOSTransform transform)
            +TimeDependentLOS build()
          }
    
          ParametricModel             <|.. TimeDependentLOS
          ParametricModel             <|.. LOSTransform
          ParametricModel             <|.. TimeIndependentLOSTransform
          PolynomialRotation          --|> LOSTransform
          ParameterType               <--*  PolynomialRotation
          FixedRotation               --|> TimeIndependentLOSTransform
          ParameterType               <--*  FixedRotation
          TimeDependentLOS            <--  LOSBuilder : builds
          TimeIndependentLOSTransform <--  LOSBuilder : combines
          LOSTransform                <--  LOSBuilder : combines
    
          LineSensor                  "1" *--> TimeDependentLOS
    
        }
    
      }
    
      package o.a.c.m.analysis.differentiation #C4D2C5 {
        class DerivativeStructure #D5E0D5/E2EBE2 {
          +getOrder()
          +getValue()
          +getPartialDerivatives(order1, order2, ...)
        }
        LOSTransform --> DerivativeStructure
        TimeIndependentLOSTransform --> DerivativeStructure
      }
    
    @enduml