diff --git a/design/parametric-los-class-diagram.puml b/design/parametric-los-class-diagram.puml new file mode 100644 index 0000000000000000000000000000000000000000..75dcb95ca61830de1f86094da109baa26927e168 --- /dev/null +++ b/design/parametric-los-class-diagram.puml @@ -0,0 +1,97 @@ +' Copyright 2013-2015 CS Systèmes d'Information +' Licensed to CS Systèmes d'Information (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