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

New class diagrams.

parent 93216c62
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment