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

///|
#external
pub type IKLink

///|
#module("@mizchi/three-mbt/rigging")
pub extern "js" fn IKLink::IKLink(index : Int) -> IKLink = "iKLink"

///|
pub extern "js" fn IKLink::index(self : IKLink) -> Int =
  #| (self) => self.index

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

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

///|
extern "js" fn IKLink::ffi_limitation(self : IKLink) -> Nullable[Vector3] =
  #| (self) => self.limitation

///|
pub fn IKLink::limitation(self : IKLink) -> Vector3? {
  self.ffi_limitation().to_option()
}

///|
extern "js" fn IKLink::ffi_set_limitation(
  self : IKLink,
  value : Nullable[Vector3],
) -> Unit =
  #| (self, value) => { self.limitation = value; }

///|
pub fn IKLink::set_limitation(self : IKLink, value : Vector3?) -> Unit {
  self.ffi_set_limitation(Nullable::from_option(value))
}

///|
extern "js" fn IKLink::ffi_rotation_min(self : IKLink) -> Nullable[Vector3] =
  #| (self) => self.rotationMin

///|
pub fn IKLink::rotation_min(self : IKLink) -> Vector3? {
  self.ffi_rotation_min().to_option()
}

///|
extern "js" fn IKLink::ffi_set_rotation_min(
  self : IKLink,
  value : Nullable[Vector3],
) -> Unit =
  #| (self, value) => { self.rotationMin = value; }

///|
pub fn IKLink::set_rotation_min(self : IKLink, value : Vector3?) -> Unit {
  self.ffi_set_rotation_min(Nullable::from_option(value))
}

///|
extern "js" fn IKLink::ffi_rotation_max(self : IKLink) -> Nullable[Vector3] =
  #| (self) => self.rotationMax

///|
pub fn IKLink::rotation_max(self : IKLink) -> Vector3? {
  self.ffi_rotation_max().to_option()
}

///|
extern "js" fn IKLink::ffi_set_rotation_max(
  self : IKLink,
  value : Nullable[Vector3],
) -> Unit =
  #| (self, value) => { self.rotationMax = value; }

///|
pub fn IKLink::set_rotation_max(self : IKLink, value : Vector3?) -> Unit {
  self.ffi_set_rotation_max(Nullable::from_option(value))
}