From 9fe075cdf1286f86c85529d899d263133f3941fd Mon Sep 17 00:00:00 2001 From: Luc Maisonobe <luc@orekit.org> Date: Wed, 21 May 2014 18:26:44 +0200 Subject: [PATCH] New class diagrams. --- design/configuration-class-diagram.puml | 103 ++++++++++++++++++ design/direct-localization-class-diagram.puml | 76 +++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 design/configuration-class-diagram.puml create mode 100644 design/direct-localization-class-diagram.puml diff --git a/design/configuration-class-diagram.puml b/design/configuration-class-diagram.puml new file mode 100644 index 00000000..7e8791eb --- /dev/null +++ b/design/configuration-class-diagram.puml @@ -0,0 +1,103 @@ +' Copyright 2013-2014 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 orekit #ECEBD8 { + class OneAxisEllipsoid + class Frame + class PVCoordinatesProvider + class AttitudeProvider + } + + package rugged #ECEBD8 { + + package utils #DDEBD8 { + + class ExtendedEllipsoid + class SpacecraftToObservedBody + + OneAxisEllipsoid <|-- ExtendedEllipsoid + Frame "2" <--o SpacecraftToObservedBody + PVCoordinatesProvider "1" <--o SpacecraftToObservedBody + AttitudeProvider "1" <--o SpacecraftToObservedBody + + } + + package api #DDEBD8 { + enum AlgorithmId { + +DUVENHAGE + +DUVENHAGE_FLAT_BODY + +BASIC_SCAN + +IGNORE_DEM + } + enum EllipsoidId { + +GRS80 + +WGS84 + +IERS96 + +IERS2003 + } + enum BodyRotatingFrameId { + +ITRF + +ITRF_EQUINOX + +GTOD + } + enum InertialFrameId { + +GCRF + +EME2000 + +MOD + +TOD + +VEIS1950 + } + class Rugged { + +setLightTimeCorrection(boolean) + +setAberrationOfLightCorrection(boolean) + +addLineSensor(lineSensor) + } + class LineSensor + ExtendedEllipsoid "1" <--o Rugged + SpacecraftToObservedBody "1" <--o Rugged + Rugged o--> "*" LineSensor + } + + } + + package mission.specific #C4D2C5 { + class UserMain #D5E0D5/E2EBE2 + AlgorithmId <-- UserMain : selects + EllipsoidId <-- UserMain : selects + BodyRotatingFrameId <-- UserMain : selects + InertialFrameId <-- UserMain : selects + LineSensor <-- UserMain : creates + Rugged <-- UserMain : configures + note as N1 #E2EBE2 + user configures Rugged either by + selecting from a few predefined + choices or by directly building + Orekit objects + end note + } + +@enduml diff --git a/design/direct-localization-class-diagram.puml b/design/direct-localization-class-diagram.puml new file mode 100644 index 00000000..ee230694 --- /dev/null +++ b/design/direct-localization-class-diagram.puml @@ -0,0 +1,76 @@ +' Copyright 2013-2014 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 rugged #ECEBD8 { + + package raster #DDEBD8 { + interface Tile { + +interpolateElevation(φ, λ) + +pixelIntersection(geodeticPoint, los, φ index, λ index) + } + } + + package intersection #DDEBD8 { + interface IntersectionAlgorithm { + +intersection(ellipsoid, position, los) + +refineIntersection(ellipsoid, position, los, closeGuess) + } + Tile <-- IntersectionAlgorithm : compute elevation + } + + package utils #DDEBD8 { + + class ExtendedEllipsoid { + +pointAtLatitude(position, los, φ, closereference) + +pointAtLongitude(position, los, λ) + +pointAtAltitude(position, los, h) + +pointOnGround(position, los) + } + class SpacecraftToObservedBody + IntersectionAlgorithm --> ExtendedEllipsoid : find DEM tiles boundaries + } + + package api #DDEBD8 { + class Rugged { + +directLocalization(sensorName, line) + } + class LineSensor + IntersectionAlgorithm "1" <--o Rugged : delegate DEM intersection + ExtendedEllipsoid <-- Rugged : convert geodetic points + Rugged --> LineSensor : getLOS(pixel) + Rugged --> LineSensor : getDate(line) + SpacecraftToObservedBody <-- Rugged : convert positions/directions + } + + } + + package mission.specific #C4D2C5 { + class UserMain #D5E0D5/E2EBE2 + Rugged <-- UserMain + } + +@enduml -- GitLab