diff options
Diffstat (limited to 'mavigator-cockpit/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala')
-rw-r--r-- | mavigator-cockpit/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mavigator-cockpit/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala b/mavigator-cockpit/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala new file mode 100644 index 0000000..249f892 --- /dev/null +++ b/mavigator-cockpit/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala @@ -0,0 +1,19 @@ +package mavigator.dashboard.ui.instruments + +import org.scalajs.dom.html +import rx._ +import mavigator.util.Environment + +class Horizon(val value: Rx[(Double, Double)])(implicit env: Environment) extends SvgInstrument[(Double, Double)] { + import SvgInstrument._ + + lazy val element = svgObject("horizon") + lazy val pitch = part("pitch") + lazy val roll = part("roll") + lazy val moveable = Seq(pitch, roll) + + protected def update(pitchRoll: (Double, Double)) = { + translate(pitch, 0, (pitchRoll._1 * 180 / math.Pi).toInt) // 1deg === 1px + rotate(roll, pitchRoll._2) + } +} |