Skip to content
Snippets Groups Projects
Commit 9fe075cd authored by Luc Maisonobe's avatar Luc Maisonobe
Browse files

New class diagrams.

parent 93216c62
Branches
Tags
No related merge requests found
' 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
' 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment