diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-12-28 11:54:00 +0100 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2016-01-29 13:50:37 -0800 |
commit | 4f4c799a6d9ccf333a3e609a2464e2f317875af7 (patch) | |
tree | 599232dd8c97fa9eb8f3426ea4375216ecadb386 /mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala | |
parent | c77bf21e7f4c197d34d23b2aebe5953a75d099e2 (diff) | |
download | mavigator-4f4c799a6d9ccf333a3e609a2464e2f317875af7.tar.gz mavigator-4f4c799a6d9ccf333a3e609a2464e2f317875af7.tar.bz2 mavigator-4f4c799a6d9ccf333a3e609a2464e2f317875af7.zip |
Rename project and update dependencies
Diffstat (limited to 'mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala')
-rw-r--r-- | mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala new file mode 100644 index 0000000..6abdb36 --- /dev/null +++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala @@ -0,0 +1,47 @@ +package vfd.dashboard.ui + +import vfd.dashboard.Environment +import vfd.dashboard.ui.instruments._ + +import scalatags.JsDom.all._ +import rx._ + +class Hud(attitude: Rx[(Double, Double)])(implicit env: Environment) { + + private def overlay(name: String, z: Int, thinnerThanWide: Boolean = false) = { + val direction = if (thinnerThanWide) "row" else "column" + div( + style:= + "position: absolute; left: 0; right: 0; top: 0; bottom: 0;" + + s"display: flex; align-content: center; align-items: stretch; flex-direction: $direction;"+ + s"z-index: $z;" + )( + `object`(`type`:="image/svg+xml", "data".attr:=env.asset("images/hud/" + name + ".svg"), style := "flex: 1 1 100%;") + ) + } + + object Horizon extends SvgInstrument[(Double, Double)] { + import SvgInstrument._ + + val value = attitude + + lazy val element = `object`(`type`:="image/svg+xml", "data".attr:=env.asset("images/hud/horizon.svg"), style:="flex: 1 1 100%;").render + lazy val horizon = part("horizon") + lazy val moveable = Seq(horizon) + + protected def update(pitchRoll: (Double, Double)) = { + rotate(horizon, pitchRoll._2) + //translate(horizon, 0, (pitchRoll._1 * 180 / math.Pi).toInt) // 1deg === 1px + } + } + + val element = div( + style:= + "position: absolute; left: 0; right: 0; top: 0; bottom: 0;" + + "display: flex; align-content: stretch; align-items: stretch; flex-direction: row;"+ + "z-index: 0;" + )( + Horizon.element + ) +} + |