aboutsummaryrefslogtreecommitdiff
path: root/vfd-dashboard/src/main/scala/vfd/dashboard/ui/instruments/Horizon.scala
blob: bbfe8cf54b3578460d7a8f1feb46f08dcab9a84d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package vfd.dashboard.ui.instruments

import org.scalajs.dom.html
import rx._
import vfd.dashboard.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)
  }
}