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

///|
#external
pub type Cylindrical

///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn Cylindrical::Cylindrical(
  radius : Double,
  theta : Double,
  y : Double,
) -> Cylindrical = "cylindrical"

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

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

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

///|
pub extern "js" fn Cylindrical::set_theta(
  self : Cylindrical,
  value : Double,
) -> Unit =
  #| (self, value) => { self.theta = value; }

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

///|
pub extern "js" fn Cylindrical::set_y(
  self : Cylindrical,
  value : Double,
) -> Unit =
  #| (self, value) => { self.y = value; }

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

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

///|
pub extern "js" fn Cylindrical::set(
  self : Cylindrical,
  radius : Double,
  theta : Double,
  y : Double,
) -> Cylindrical =
  #| (self, radius, theta, y) => self.set(radius, theta, y)

///|
pub extern "js" fn Cylindrical::set_from_vector3(
  self : Cylindrical,
  vector : Vector3,
) -> Cylindrical =
  #| (self, vector) => self.setFromVector3(vector)

///|
pub extern "js" fn Cylindrical::set_from_cartesian_coords(
  self : Cylindrical,
  x : Double,
  y : Double,
  z : Double,
) -> Cylindrical =
  #| (self, x, y, z) => self.setFromCartesianCoords(x, y, z)