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

///|
#external
pub type Capsule

///|
#module("@mizchi/three-mbt/modeling-workflow")
pub extern "js" fn Capsule::Capsule(
  start : Vector3,
  end : Vector3,
  radius : Double,
) -> Capsule = "capsule"

///|
pub extern "js" fn Capsule::start(self : Capsule) -> Vector3 =
  #| (self) => self.start

///|
pub extern "js" fn Capsule::end(self : Capsule) -> Vector3 =
  #| (self) => self.end

///|
pub extern "js" fn Capsule::radius(self : Capsule) -> Double =
  #| (self) => self.radius

///|
pub extern "js" fn Capsule::set_radius(self : Capsule, value : Double) -> Unit =
  #| (self, value) => { self.radius = value; }

///|
pub extern "js" fn Capsule::set(
  self : Capsule,
  start : Vector3,
  end : Vector3,
  radius : Double,
) -> Capsule =
  #| (self, start, end, radius) => self.set(start, end, radius)

///|
pub extern "js" fn Capsule::clone(self : Capsule) -> Capsule =
  #| (self) => self.clone()

///|
pub extern "js" fn Capsule::copy(self : Capsule, other : Capsule) -> Capsule =
  #| (self, other) => self.copy(other)

///|
pub extern "js" fn Capsule::get_center(
  self : Capsule,
  target : Vector3,
) -> Vector3 =
  #| (self, target) => self.getCenter(target)

///|
pub extern "js" fn Capsule::translate(
  self : Capsule,
  offset : Vector3,
) -> Capsule =
  #| (self, offset) => self.translate(offset)

///|
pub extern "js" fn Capsule::intersects_box(self : Capsule, box : Box3) -> Bool =
  #| (self, box) => self.intersectsBox(box)