aboutsummaryrefslogtreecommitdiff
path: root/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala
blob: 249f892ef9dfabd8c3172fd827be7f17f00782f8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)
  }
}