// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/body-tracking

///|
/// XRBodyJoint enum
pub(all) enum XRBodyJoint {
  Hips
  SpineLower
  SpineMiddle
  SpineUpper
  Chest
  Neck
  Head
  LeftShoulder
  LeftScapula
  LeftArmUpper
  LeftArmLower
  LeftHandWristTwist
  RightShoulder
  RightScapula
  RightArmUpper
  RightArmLower
  RightHandWristTwist
  LeftHandPalm
  LeftHandWrist
  LeftHandThumbMetacarpal
  LeftHandThumbPhalanxProximal
  LeftHandThumbPhalanxDistal
  LeftHandThumbTip
  LeftHandIndexMetacarpal
  LeftHandIndexPhalanxProximal
  LeftHandIndexPhalanxIntermediate
  LeftHandIndexPhalanxDistal
  LeftHandIndexTip
  LeftHandMiddlePhalanxMetacarpal
  LeftHandMiddlePhalanxProximal
  LeftHandMiddlePhalanxIntermediate
  LeftHandMiddlePhalanxDistal
  LeftHandMiddleTip
  LeftHandRingMetacarpal
  LeftHandRingPhalanxProximal
  LeftHandRingPhalanxIntermediate
  LeftHandRingPhalanxDistal
  LeftHandRingTip
  LeftHandLittleMetacarpal
  LeftHandLittlePhalanxProximal
  LeftHandLittlePhalanxIntermediate
  LeftHandLittlePhalanxDistal
  LeftHandLittleTip
  RightHandPalm
  RightHandWrist
  RightHandThumbMetacarpal
  RightHandThumbPhalanxProximal
  RightHandThumbPhalanxDistal
  RightHandThumbTip
  RightHandIndexMetacarpal
  RightHandIndexPhalanxProximal
  RightHandIndexPhalanxIntermediate
  RightHandIndexPhalanxDistal
  RightHandIndexTip
  RightHandMiddleMetacarpal
  RightHandMiddlePhalanxProximal
  RightHandMiddlePhalanxIntermediate
  RightHandMiddlePhalanxDistal
  RightHandMiddleTip
  RightHandRingMetacarpal
  RightHandRingPhalanxProximal
  RightHandRingPhalanxIntermediate
  RightHandRingPhalanxDistal
  RightHandRingTip
  RightHandLittleMetacarpal
  RightHandLittlePhalanxProximal
  RightHandLittlePhalanxIntermediate
  RightHandLittlePhalanxDistal
  RightHandLittleTip
  LeftUpperLeg
  LeftLowerLeg
  LeftFootAnkleTwist
  LeftFootAnkle
  LeftFootSubtalar
  LeftFootTransverse
  LeftFootBall
  RightUpperLeg
  RightLowerLeg
  RightFootAnkleTwist
  RightFootAnkle
  RightFootSubtalar
  RightFootTransverse
  RightFootBall
} derive(Eq, Show)

///|
/// Convert to string value
pub fn XRBodyJoint::to_string(self : XRBodyJoint) -> String {
  match self {
    XRBodyJoint::Hips => "hips"
    XRBodyJoint::SpineLower => "spine-lower"
    XRBodyJoint::SpineMiddle => "spine-middle"
    XRBodyJoint::SpineUpper => "spine-upper"
    XRBodyJoint::Chest => "chest"
    XRBodyJoint::Neck => "neck"
    XRBodyJoint::Head => "head"
    XRBodyJoint::LeftShoulder => "left-shoulder"
    XRBodyJoint::LeftScapula => "left-scapula"
    XRBodyJoint::LeftArmUpper => "left-arm-upper"
    XRBodyJoint::LeftArmLower => "left-arm-lower"
    XRBodyJoint::LeftHandWristTwist => "left-hand-wrist-twist"
    XRBodyJoint::RightShoulder => "right-shoulder"
    XRBodyJoint::RightScapula => "right-scapula"
    XRBodyJoint::RightArmUpper => "right-arm-upper"
    XRBodyJoint::RightArmLower => "right-arm-lower"
    XRBodyJoint::RightHandWristTwist => "right-hand-wrist-twist"
    XRBodyJoint::LeftHandPalm => "left-hand-palm"
    XRBodyJoint::LeftHandWrist => "left-hand-wrist"
    XRBodyJoint::LeftHandThumbMetacarpal => "left-hand-thumb-metacarpal"
    XRBodyJoint::LeftHandThumbPhalanxProximal =>
      "left-hand-thumb-phalanx-proximal"
    XRBodyJoint::LeftHandThumbPhalanxDistal => "left-hand-thumb-phalanx-distal"
    XRBodyJoint::LeftHandThumbTip => "left-hand-thumb-tip"
    XRBodyJoint::LeftHandIndexMetacarpal => "left-hand-index-metacarpal"
    XRBodyJoint::LeftHandIndexPhalanxProximal =>
      "left-hand-index-phalanx-proximal"
    XRBodyJoint::LeftHandIndexPhalanxIntermediate =>
      "left-hand-index-phalanx-intermediate"
    XRBodyJoint::LeftHandIndexPhalanxDistal => "left-hand-index-phalanx-distal"
    XRBodyJoint::LeftHandIndexTip => "left-hand-index-tip"
    XRBodyJoint::LeftHandMiddlePhalanxMetacarpal =>
      "left-hand-middle-phalanx-metacarpal"
    XRBodyJoint::LeftHandMiddlePhalanxProximal =>
      "left-hand-middle-phalanx-proximal"
    XRBodyJoint::LeftHandMiddlePhalanxIntermediate =>
      "left-hand-middle-phalanx-intermediate"
    XRBodyJoint::LeftHandMiddlePhalanxDistal =>
      "left-hand-middle-phalanx-distal"
    XRBodyJoint::LeftHandMiddleTip => "left-hand-middle-tip"
    XRBodyJoint::LeftHandRingMetacarpal => "left-hand-ring-metacarpal"
    XRBodyJoint::LeftHandRingPhalanxProximal =>
      "left-hand-ring-phalanx-proximal"
    XRBodyJoint::LeftHandRingPhalanxIntermediate =>
      "left-hand-ring-phalanx-intermediate"
    XRBodyJoint::LeftHandRingPhalanxDistal => "left-hand-ring-phalanx-distal"
    XRBodyJoint::LeftHandRingTip => "left-hand-ring-tip"
    XRBodyJoint::LeftHandLittleMetacarpal => "left-hand-little-metacarpal"
    XRBodyJoint::LeftHandLittlePhalanxProximal =>
      "left-hand-little-phalanx-proximal"
    XRBodyJoint::LeftHandLittlePhalanxIntermediate =>
      "left-hand-little-phalanx-intermediate"
    XRBodyJoint::LeftHandLittlePhalanxDistal =>
      "left-hand-little-phalanx-distal"
    XRBodyJoint::LeftHandLittleTip => "left-hand-little-tip"
    XRBodyJoint::RightHandPalm => "right-hand-palm"
    XRBodyJoint::RightHandWrist => "right-hand-wrist"
    XRBodyJoint::RightHandThumbMetacarpal => "right-hand-thumb-metacarpal"
    XRBodyJoint::RightHandThumbPhalanxProximal =>
      "right-hand-thumb-phalanx-proximal"
    XRBodyJoint::RightHandThumbPhalanxDistal =>
      "right-hand-thumb-phalanx-distal"
    XRBodyJoint::RightHandThumbTip => "right-hand-thumb-tip"
    XRBodyJoint::RightHandIndexMetacarpal => "right-hand-index-metacarpal"
    XRBodyJoint::RightHandIndexPhalanxProximal =>
      "right-hand-index-phalanx-proximal"
    XRBodyJoint::RightHandIndexPhalanxIntermediate =>
      "right-hand-index-phalanx-intermediate"
    XRBodyJoint::RightHandIndexPhalanxDistal =>
      "right-hand-index-phalanx-distal"
    XRBodyJoint::RightHandIndexTip => "right-hand-index-tip"
    XRBodyJoint::RightHandMiddleMetacarpal => "right-hand-middle-metacarpal"
    XRBodyJoint::RightHandMiddlePhalanxProximal =>
      "right-hand-middle-phalanx-proximal"
    XRBodyJoint::RightHandMiddlePhalanxIntermediate =>
      "right-hand-middle-phalanx-intermediate"
    XRBodyJoint::RightHandMiddlePhalanxDistal =>
      "right-hand-middle-phalanx-distal"
    XRBodyJoint::RightHandMiddleTip => "right-hand-middle-tip"
    XRBodyJoint::RightHandRingMetacarpal => "right-hand-ring-metacarpal"
    XRBodyJoint::RightHandRingPhalanxProximal =>
      "right-hand-ring-phalanx-proximal"
    XRBodyJoint::RightHandRingPhalanxIntermediate =>
      "right-hand-ring-phalanx-intermediate"
    XRBodyJoint::RightHandRingPhalanxDistal => "right-hand-ring-phalanx-distal"
    XRBodyJoint::RightHandRingTip => "right-hand-ring-tip"
    XRBodyJoint::RightHandLittleMetacarpal => "right-hand-little-metacarpal"
    XRBodyJoint::RightHandLittlePhalanxProximal =>
      "right-hand-little-phalanx-proximal"
    XRBodyJoint::RightHandLittlePhalanxIntermediate =>
      "right-hand-little-phalanx-intermediate"
    XRBodyJoint::RightHandLittlePhalanxDistal =>
      "right-hand-little-phalanx-distal"
    XRBodyJoint::RightHandLittleTip => "right-hand-little-tip"
    XRBodyJoint::LeftUpperLeg => "left-upper-leg"
    XRBodyJoint::LeftLowerLeg => "left-lower-leg"
    XRBodyJoint::LeftFootAnkleTwist => "left-foot-ankle-twist"
    XRBodyJoint::LeftFootAnkle => "left-foot-ankle"
    XRBodyJoint::LeftFootSubtalar => "left-foot-subtalar"
    XRBodyJoint::LeftFootTransverse => "left-foot-transverse"
    XRBodyJoint::LeftFootBall => "left-foot-ball"
    XRBodyJoint::RightUpperLeg => "right-upper-leg"
    XRBodyJoint::RightLowerLeg => "right-lower-leg"
    XRBodyJoint::RightFootAnkleTwist => "right-foot-ankle-twist"
    XRBodyJoint::RightFootAnkle => "right-foot-ankle"
    XRBodyJoint::RightFootSubtalar => "right-foot-subtalar"
    XRBodyJoint::RightFootTransverse => "right-foot-transverse"
    XRBodyJoint::RightFootBall => "right-foot-ball"
  }
}

///|
/// Parse from string value
pub fn XRBodyJoint::from_string(s : String) -> XRBodyJoint? {
  match s {
    "hips" => Some(XRBodyJoint::Hips)
    "spine-lower" => Some(XRBodyJoint::SpineLower)
    "spine-middle" => Some(XRBodyJoint::SpineMiddle)
    "spine-upper" => Some(XRBodyJoint::SpineUpper)
    "chest" => Some(XRBodyJoint::Chest)
    "neck" => Some(XRBodyJoint::Neck)
    "head" => Some(XRBodyJoint::Head)
    "left-shoulder" => Some(XRBodyJoint::LeftShoulder)
    "left-scapula" => Some(XRBodyJoint::LeftScapula)
    "left-arm-upper" => Some(XRBodyJoint::LeftArmUpper)
    "left-arm-lower" => Some(XRBodyJoint::LeftArmLower)
    "left-hand-wrist-twist" => Some(XRBodyJoint::LeftHandWristTwist)
    "right-shoulder" => Some(XRBodyJoint::RightShoulder)
    "right-scapula" => Some(XRBodyJoint::RightScapula)
    "right-arm-upper" => Some(XRBodyJoint::RightArmUpper)
    "right-arm-lower" => Some(XRBodyJoint::RightArmLower)
    "right-hand-wrist-twist" => Some(XRBodyJoint::RightHandWristTwist)
    "left-hand-palm" => Some(XRBodyJoint::LeftHandPalm)
    "left-hand-wrist" => Some(XRBodyJoint::LeftHandWrist)
    "left-hand-thumb-metacarpal" => Some(XRBodyJoint::LeftHandThumbMetacarpal)
    "left-hand-thumb-phalanx-proximal" =>
      Some(XRBodyJoint::LeftHandThumbPhalanxProximal)
    "left-hand-thumb-phalanx-distal" =>
      Some(XRBodyJoint::LeftHandThumbPhalanxDistal)
    "left-hand-thumb-tip" => Some(XRBodyJoint::LeftHandThumbTip)
    "left-hand-index-metacarpal" => Some(XRBodyJoint::LeftHandIndexMetacarpal)
    "left-hand-index-phalanx-proximal" =>
      Some(XRBodyJoint::LeftHandIndexPhalanxProximal)
    "left-hand-index-phalanx-intermediate" =>
      Some(XRBodyJoint::LeftHandIndexPhalanxIntermediate)
    "left-hand-index-phalanx-distal" =>
      Some(XRBodyJoint::LeftHandIndexPhalanxDistal)
    "left-hand-index-tip" => Some(XRBodyJoint::LeftHandIndexTip)
    "left-hand-middle-phalanx-metacarpal" =>
      Some(XRBodyJoint::LeftHandMiddlePhalanxMetacarpal)
    "left-hand-middle-phalanx-proximal" =>
      Some(XRBodyJoint::LeftHandMiddlePhalanxProximal)
    "left-hand-middle-phalanx-intermediate" =>
      Some(XRBodyJoint::LeftHandMiddlePhalanxIntermediate)
    "left-hand-middle-phalanx-distal" =>
      Some(XRBodyJoint::LeftHandMiddlePhalanxDistal)
    "left-hand-middle-tip" => Some(XRBodyJoint::LeftHandMiddleTip)
    "left-hand-ring-metacarpal" => Some(XRBodyJoint::LeftHandRingMetacarpal)
    "left-hand-ring-phalanx-proximal" =>
      Some(XRBodyJoint::LeftHandRingPhalanxProximal)
    "left-hand-ring-phalanx-intermediate" =>
      Some(XRBodyJoint::LeftHandRingPhalanxIntermediate)
    "left-hand-ring-phalanx-distal" =>
      Some(XRBodyJoint::LeftHandRingPhalanxDistal)
    "left-hand-ring-tip" => Some(XRBodyJoint::LeftHandRingTip)
    "left-hand-little-metacarpal" => Some(XRBodyJoint::LeftHandLittleMetacarpal)
    "left-hand-little-phalanx-proximal" =>
      Some(XRBodyJoint::LeftHandLittlePhalanxProximal)
    "left-hand-little-phalanx-intermediate" =>
      Some(XRBodyJoint::LeftHandLittlePhalanxIntermediate)
    "left-hand-little-phalanx-distal" =>
      Some(XRBodyJoint::LeftHandLittlePhalanxDistal)
    "left-hand-little-tip" => Some(XRBodyJoint::LeftHandLittleTip)
    "right-hand-palm" => Some(XRBodyJoint::RightHandPalm)
    "right-hand-wrist" => Some(XRBodyJoint::RightHandWrist)
    "right-hand-thumb-metacarpal" => Some(XRBodyJoint::RightHandThumbMetacarpal)
    "right-hand-thumb-phalanx-proximal" =>
      Some(XRBodyJoint::RightHandThumbPhalanxProximal)
    "right-hand-thumb-phalanx-distal" =>
      Some(XRBodyJoint::RightHandThumbPhalanxDistal)
    "right-hand-thumb-tip" => Some(XRBodyJoint::RightHandThumbTip)
    "right-hand-index-metacarpal" => Some(XRBodyJoint::RightHandIndexMetacarpal)
    "right-hand-index-phalanx-proximal" =>
      Some(XRBodyJoint::RightHandIndexPhalanxProximal)
    "right-hand-index-phalanx-intermediate" =>
      Some(XRBodyJoint::RightHandIndexPhalanxIntermediate)
    "right-hand-index-phalanx-distal" =>
      Some(XRBodyJoint::RightHandIndexPhalanxDistal)
    "right-hand-index-tip" => Some(XRBodyJoint::RightHandIndexTip)
    "right-hand-middle-metacarpal" =>
      Some(XRBodyJoint::RightHandMiddleMetacarpal)
    "right-hand-middle-phalanx-proximal" =>
      Some(XRBodyJoint::RightHandMiddlePhalanxProximal)
    "right-hand-middle-phalanx-intermediate" =>
      Some(XRBodyJoint::RightHandMiddlePhalanxIntermediate)
    "right-hand-middle-phalanx-distal" =>
      Some(XRBodyJoint::RightHandMiddlePhalanxDistal)
    "right-hand-middle-tip" => Some(XRBodyJoint::RightHandMiddleTip)
    "right-hand-ring-metacarpal" => Some(XRBodyJoint::RightHandRingMetacarpal)
    "right-hand-ring-phalanx-proximal" =>
      Some(XRBodyJoint::RightHandRingPhalanxProximal)
    "right-hand-ring-phalanx-intermediate" =>
      Some(XRBodyJoint::RightHandRingPhalanxIntermediate)
    "right-hand-ring-phalanx-distal" =>
      Some(XRBodyJoint::RightHandRingPhalanxDistal)
    "right-hand-ring-tip" => Some(XRBodyJoint::RightHandRingTip)
    "right-hand-little-metacarpal" =>
      Some(XRBodyJoint::RightHandLittleMetacarpal)
    "right-hand-little-phalanx-proximal" =>
      Some(XRBodyJoint::RightHandLittlePhalanxProximal)
    "right-hand-little-phalanx-intermediate" =>
      Some(XRBodyJoint::RightHandLittlePhalanxIntermediate)
    "right-hand-little-phalanx-distal" =>
      Some(XRBodyJoint::RightHandLittlePhalanxDistal)
    "right-hand-little-tip" => Some(XRBodyJoint::RightHandLittleTip)
    "left-upper-leg" => Some(XRBodyJoint::LeftUpperLeg)
    "left-lower-leg" => Some(XRBodyJoint::LeftLowerLeg)
    "left-foot-ankle-twist" => Some(XRBodyJoint::LeftFootAnkleTwist)
    "left-foot-ankle" => Some(XRBodyJoint::LeftFootAnkle)
    "left-foot-subtalar" => Some(XRBodyJoint::LeftFootSubtalar)
    "left-foot-transverse" => Some(XRBodyJoint::LeftFootTransverse)
    "left-foot-ball" => Some(XRBodyJoint::LeftFootBall)
    "right-upper-leg" => Some(XRBodyJoint::RightUpperLeg)
    "right-lower-leg" => Some(XRBodyJoint::RightLowerLeg)
    "right-foot-ankle-twist" => Some(XRBodyJoint::RightFootAnkleTwist)
    "right-foot-ankle" => Some(XRBodyJoint::RightFootAnkle)
    "right-foot-subtalar" => Some(XRBodyJoint::RightFootSubtalar)
    "right-foot-transverse" => Some(XRBodyJoint::RightFootTransverse)
    "right-foot-ball" => Some(XRBodyJoint::RightFootBall)
    _ => None
  }
}

///|
/// XRBody interface
pub type XRBody

///|
pub extern "js" fn XRBody::to_js_value(self : XRBody) -> JsValue =
  #| (self) => self

///|
/// Cast JsValue to XRBody (unchecked)
pub extern "js" fn XRBody::from_js_value(v : JsValue) -> XRBody =
  #| (v) => v

///|
/// Safely cast JsValue to XRBody (checked with instanceof)
pub extern "js" fn XRBody::from_js_value_opt(v : JsValue) -> XRBody? =
  #| (v) => (v instanceof XRBody) ? { $tag: 1, _0: v } : { $tag: 0 }

///|
/// Safely cast JsValue to XRBody (checked with instanceof)
pub extern "js" fn JsValue::as_xr_body(self : JsValue) -> XRBody? =
  #| (self) => (self instanceof XRBody) ? { $tag: 1, _0: self } : { $tag: 0 }

///|
/// Cast JsValue to XRBody (unchecked)
pub extern "js" fn JsValue::to_xr_body(self : JsValue) -> XRBody =
  #| (self) => self

///|
pub extern "js" fn XRBody::keys(self : XRBody) -> JsValue =
  #| (self) => self.keys()

///|
pub extern "js" fn XRBody::values(self : XRBody) -> JsValue =
  #| (self) => self.values()

///|
pub extern "js" fn XRBody::entries(self : XRBody) -> JsValue =
  #| (self) => self.entries()

///|
pub extern "js" fn XRBody::for_each(self : XRBody, callback : JsValue) -> Unit =
  #| (self, callback) => { self.forEach(callback) }

///|
pub extern "js" fn XRBody::get_size(self : XRBody) -> Int =
  #| (self) => self.size

///|
pub extern "js" fn XRBody::get(self : XRBody, key : XRBodyJoint) -> XRBodySpace =
  #| (self, key) => self.get(['hips', 'spine-lower', 'spine-middle', 'spine-upper', 'chest', 'neck', 'head', 'left-shoulder', 'left-scapula', 'left-arm-upper', 'left-arm-lower', 'left-hand-wrist-twist', 'right-shoulder', 'right-scapula', 'right-arm-upper', 'right-arm-lower', 'right-hand-wrist-twist', 'left-hand-palm', 'left-hand-wrist', 'left-hand-thumb-metacarpal', 'left-hand-thumb-phalanx-proximal', 'left-hand-thumb-phalanx-distal', 'left-hand-thumb-tip', 'left-hand-index-metacarpal', 'left-hand-index-phalanx-proximal', 'left-hand-index-phalanx-intermediate', 'left-hand-index-phalanx-distal', 'left-hand-index-tip', 'left-hand-middle-phalanx-metacarpal', 'left-hand-middle-phalanx-proximal', 'left-hand-middle-phalanx-intermediate', 'left-hand-middle-phalanx-distal', 'left-hand-middle-tip', 'left-hand-ring-metacarpal', 'left-hand-ring-phalanx-proximal', 'left-hand-ring-phalanx-intermediate', 'left-hand-ring-phalanx-distal', 'left-hand-ring-tip', 'left-hand-little-metacarpal', 'left-hand-little-phalanx-proximal', 'left-hand-little-phalanx-intermediate', 'left-hand-little-phalanx-distal', 'left-hand-little-tip', 'right-hand-palm', 'right-hand-wrist', 'right-hand-thumb-metacarpal', 'right-hand-thumb-phalanx-proximal', 'right-hand-thumb-phalanx-distal', 'right-hand-thumb-tip', 'right-hand-index-metacarpal', 'right-hand-index-phalanx-proximal', 'right-hand-index-phalanx-intermediate', 'right-hand-index-phalanx-distal', 'right-hand-index-tip', 'right-hand-middle-metacarpal', 'right-hand-middle-phalanx-proximal', 'right-hand-middle-phalanx-intermediate', 'right-hand-middle-phalanx-distal', 'right-hand-middle-tip', 'right-hand-ring-metacarpal', 'right-hand-ring-phalanx-proximal', 'right-hand-ring-phalanx-intermediate', 'right-hand-ring-phalanx-distal', 'right-hand-ring-tip', 'right-hand-little-metacarpal', 'right-hand-little-phalanx-proximal', 'right-hand-little-phalanx-intermediate', 'right-hand-little-phalanx-distal', 'right-hand-little-tip', 'left-upper-leg', 'left-lower-leg', 'left-foot-ankle-twist', 'left-foot-ankle', 'left-foot-subtalar', 'left-foot-transverse', 'left-foot-ball', 'right-upper-leg', 'right-lower-leg', 'right-foot-ankle-twist', 'right-foot-ankle', 'right-foot-subtalar', 'right-foot-transverse', 'right-foot-ball'][key])

///|
/// XRBodySpace interface
pub type XRBodySpace

///|
pub extern "js" fn XRBodySpace::to_js_value(self : XRBodySpace) -> JsValue =
  #| (self) => self

///|
/// Cast JsValue to XRBodySpace (unchecked)
pub extern "js" fn XRBodySpace::from_js_value(v : JsValue) -> XRBodySpace =
  #| (v) => v

///|
/// Safely cast JsValue to XRBodySpace (checked with instanceof)
pub extern "js" fn XRBodySpace::from_js_value_opt(v : JsValue) -> XRBodySpace? =
  #| (v) => (v instanceof XRBodySpace) ? { $tag: 1, _0: v } : { $tag: 0 }

///|
/// Safely cast JsValue to XRBodySpace (checked with instanceof)
pub extern "js" fn JsValue::as_xr_body_space(self : JsValue) -> XRBodySpace? =
  #| (self) => (self instanceof XRBodySpace) ? { $tag: 1, _0: self } : { $tag: 0 }

///|
/// Cast JsValue to XRBodySpace (unchecked)
pub extern "js" fn JsValue::to_xr_body_space(self : JsValue) -> XRBodySpace =
  #| (self) => self

///|
pub extern "js" fn XRBodySpace::to_xr_space(self : XRBodySpace) -> XRSpace =
  #| (self) => self

///|
pub extern "js" fn XRBodySpace::to_event_target(
  self : XRBodySpace,
) -> EventTarget =
  #| (self) => self

///|
pub extern "js" fn XRBodySpace::get_joint_name(
  self : XRBodySpace,
) -> XRBodyJoint =
  #| (self) => ['hips', 'spine-lower', 'spine-middle', 'spine-upper', 'chest', 'neck', 'head', 'left-shoulder', 'left-scapula', 'left-arm-upper', 'left-arm-lower', 'left-hand-wrist-twist', 'right-shoulder', 'right-scapula', 'right-arm-upper', 'right-arm-lower', 'right-hand-wrist-twist', 'left-hand-palm', 'left-hand-wrist', 'left-hand-thumb-metacarpal', 'left-hand-thumb-phalanx-proximal', 'left-hand-thumb-phalanx-distal', 'left-hand-thumb-tip', 'left-hand-index-metacarpal', 'left-hand-index-phalanx-proximal', 'left-hand-index-phalanx-intermediate', 'left-hand-index-phalanx-distal', 'left-hand-index-tip', 'left-hand-middle-phalanx-metacarpal', 'left-hand-middle-phalanx-proximal', 'left-hand-middle-phalanx-intermediate', 'left-hand-middle-phalanx-distal', 'left-hand-middle-tip', 'left-hand-ring-metacarpal', 'left-hand-ring-phalanx-proximal', 'left-hand-ring-phalanx-intermediate', 'left-hand-ring-phalanx-distal', 'left-hand-ring-tip', 'left-hand-little-metacarpal', 'left-hand-little-phalanx-proximal', 'left-hand-little-phalanx-intermediate', 'left-hand-little-phalanx-distal', 'left-hand-little-tip', 'right-hand-palm', 'right-hand-wrist', 'right-hand-thumb-metacarpal', 'right-hand-thumb-phalanx-proximal', 'right-hand-thumb-phalanx-distal', 'right-hand-thumb-tip', 'right-hand-index-metacarpal', 'right-hand-index-phalanx-proximal', 'right-hand-index-phalanx-intermediate', 'right-hand-index-phalanx-distal', 'right-hand-index-tip', 'right-hand-middle-metacarpal', 'right-hand-middle-phalanx-proximal', 'right-hand-middle-phalanx-intermediate', 'right-hand-middle-phalanx-distal', 'right-hand-middle-tip', 'right-hand-ring-metacarpal', 'right-hand-ring-phalanx-proximal', 'right-hand-ring-phalanx-intermediate', 'right-hand-ring-phalanx-distal', 'right-hand-ring-tip', 'right-hand-little-metacarpal', 'right-hand-little-phalanx-proximal', 'right-hand-little-phalanx-intermediate', 'right-hand-little-phalanx-distal', 'right-hand-little-tip', 'left-upper-leg', 'left-lower-leg', 'left-foot-ankle-twist', 'left-foot-ankle', 'left-foot-subtalar', 'left-foot-transverse', 'left-foot-ball', 'right-upper-leg', 'right-lower-leg', 'right-foot-ankle-twist', 'right-foot-ankle', 'right-foot-subtalar', 'right-foot-transverse', 'right-foot-ball'].indexOf(self.jointName)