Skip to content
Snippets Groups Projects
direct-location-sequence-diagram.puml 3.4 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 NoteBackgroundColor                 #F3EFEB
      skinparam NoteBorderColor                     #691616
      skinparam NoteFontColor                       #691616
      skinparam SequenceActorBorderColor            #6A584B
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
      skinparam SequenceActorBackgroundColor        #F3EFEB/CCC9C5
    
      skinparam SequenceParticipantBackgroundColor  #F3EFEB/CCC9C5
      skinparam SequenceParticipantBorderColor      #6A584B
      skinparam SequenceLifeLineBackgroundColor     #CCC9C5/F3EFEB
      skinparam SequenceLifeLineBorderColor         #6A584B
      skinparam SequenceArrowColor                  #6A584B
      skinparam SequenceBorderColor                 #6A584B
      skinparam SequenceFontSize                    11
    
      hide footbox
    
    
    Luc Maisonobe's avatar
    Luc Maisonobe committed
      actor       "UserMain" as A
    
      participant "Rugged" as R
    
      participant "LineSensor" as LS
      participant "SpacecraftToObservedBody" as S
      participant "ExtendedEllipsoid" as E
      participant "IntersectionAlgorithm" as G
      participant "Tile" as T
    
         A  -> R : directLocation(name, number)
    
         activate R
           R -> LS : apply time stamping model
           R -> S : get transforms at line date
           R -> R : loop over line pixels pₖ
    
           activate R
    
             R -> R : fix aberration of light
             R -> E : approximate point on ground
             R -> R : fix speed of light delay in transforms
             R -> G : intersection(ellipsoid, line-of-sight)
             activate G
               G -> E  : grid points crossings
               G -> T : elevation(φₖ, λₖ)
               activate T
                 T -> A : DEM callback
                 A --> T : DEM raw data cell
                 T --> G : h(φₖ, λₖ)
               deactivate T
               G -> E  : grid points crossings
               G -> T : elevation(φₖ, λₖ)
               activate T
                 T --> G : h(φₖ, λₖ)
               deactivate T
               G -> E  : grid points crossings
               G -> T : elevation(φₖ, λₖ)
               activate T
                 T --> G : h(φₖ, λₖ)
               deactivate T
               G -> T  : pixel intersection(los)
               activate T
                 T --> G : φₖ, λₖ, hₖ
               deactivate T
               G --> R : φₖ, λₖ, hₖ
             deactivate G
             R -> R : refine speed of light delay in transforms
             R -> G : refine intersection(ellipsoid, line-of-sight)
             activate G
               G -> T  : refine pixel intersection(los)
               activate T
                 T --> G : φₖ, λₖ, hₖ
               deactivate T
             deactivate G
             R --> R : array(φₖ, λₖ, hₖ)
    
           deactivate R
    
           R --> A : array(φₖ, λₖ, hₖ)
         deactivate R
    
      deactivate A
    
    @enduml