0 / 0
00:00

RaceViewer Infrastructure

making it visible

Slides

Symbiosis - the best of two worlds

RACE - WorldWind Integration

Big Picture: Configurable Extension Points

Big Picture: Zoom In on Bridges

RACE Configuration

using normal RACE actor configuration:

universe { ..
  actors = [
    { name = "simPlane" ..
      write-to = "/flights/sim" .. },

    { name = "viewer"
      class = ".ww.RaceViewerActor"
      layers = [
        { name = "flightPos"
          class = "gov.nasa.race.ww.layers.FlightPosLayer"
          read-from = "/flights/sim"
          description = "flight positions"
          categories = ["data" ..] .. } ..
      ]
      layer-categories = ["data" ..]
      panels = [ .. ]
      size = [1400,1000]
      eye { lat = 37.246822 .. }

Data Integration

Data Integration on demand - ChannelTopics

don't overwhelm UI threads (0.1 sec rule) ⟹ ChannelTopic "producer valves"

Viewer Sync

UI Framework

Build Integration

  ...
  lazy val wwjProject = RootProject( uri(
              sys.props.getOrElse("race.wwj_uri",
                  "git://github.com/pcmehlitz/WorldWindJava.git#pcm")))
  ...
  lazy val raceSwing = createProject("race-swing").
    dependsOn(raceCommon) ...

  lazy val raceWW = createProject("race-ww").
    dependsOn(wwjProject).
    dependsOn(raceCommon,raceData,raceCore,raceSwing) ...