// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.

///|
#external
pub type PointerLockControls

///|
#module("@mizchi/three-mbt/controls")
pub extern "js" fn PointerLockControls::PointerLockControls(
  camera : Camera,
  canvas : Canvas,
) -> PointerLockControls = "pointerLockControls"

///|
pub extern "js" fn PointerLockControls::enabled(
  self : PointerLockControls,
) -> Bool =
  #| (self) => self.enabled

///|
pub extern "js" fn PointerLockControls::set_enabled(
  self : PointerLockControls,
  value : Bool,
) -> Unit =
  #| (self, value) => { self.enabled = value; }

///|
pub extern "js" fn PointerLockControls::is_locked(
  self : PointerLockControls,
) -> Bool =
  #| (self) => self.isLocked

///|
pub extern "js" fn PointerLockControls::pointer_speed(
  self : PointerLockControls,
) -> Double =
  #| (self) => self.pointerSpeed

///|
pub extern "js" fn PointerLockControls::set_pointer_speed(
  self : PointerLockControls,
  value : Double,
) -> Unit =
  #| (self, value) => { self.pointerSpeed = value; }

///|
pub extern "js" fn PointerLockControls::min_polar_angle(
  self : PointerLockControls,
) -> Double =
  #| (self) => self.minPolarAngle

///|
pub extern "js" fn PointerLockControls::set_min_polar_angle(
  self : PointerLockControls,
  value : Double,
) -> Unit =
  #| (self, value) => { self.minPolarAngle = value; }

///|
pub extern "js" fn PointerLockControls::max_polar_angle(
  self : PointerLockControls,
) -> Double =
  #| (self) => self.maxPolarAngle

///|
pub extern "js" fn PointerLockControls::set_max_polar_angle(
  self : PointerLockControls,
  value : Double,
) -> Unit =
  #| (self, value) => { self.maxPolarAngle = value; }

///|
pub extern "js" fn PointerLockControls::lock(
  self : PointerLockControls,
  unadjusted_movement : Bool,
) -> Unit =
  #| (self, unadjusted_movement) => self.lock(unadjusted_movement)

///|
pub extern "js" fn PointerLockControls::unlock(
  self : PointerLockControls,
) -> Unit =
  #| (self) => self.unlock()

///|
pub extern "js" fn PointerLockControls::dispose(
  self : PointerLockControls,
) -> Unit =
  #| (self) => self.dispose()

///|
pub extern "js" fn PointerLockControls::move_forward(
  self : PointerLockControls,
  distance : Double,
) -> Unit =
  #| (self, distance) => self.moveForward(distance)

///|
pub extern "js" fn PointerLockControls::move_right(
  self : PointerLockControls,
  distance : Double,
) -> Unit =
  #| (self, distance) => self.moveRight(distance)

///|
pub extern "js" fn PointerLockControls::get_direction(
  self : PointerLockControls,
  target : Vector3,
) -> Vector3 =
  #| (self, target) => self.getDirection(target)