// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type Skeleton
///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn Skeleton::Skeleton(bones : FixedArray[Bone]) -> Skeleton = "skeleton"
///|
pub extern "js" fn Skeleton::bones(self : Skeleton) -> FixedArray[Bone] =
#| (self) => self.bones.slice()
///|
pub extern "js" fn Skeleton::pose(self : Skeleton) -> Unit =
#| (self) => self.pose()
///|
pub extern "js" fn Skeleton::update(self : Skeleton) -> Unit =
#| (self) => self.update()
///|
pub extern "js" fn Skeleton::dispose(self : Skeleton) -> Unit =
#| (self) => self.dispose()
///|
extern "js" fn Skeleton::ffi_get_bone_by_name(
self : Skeleton,
name : String,
) -> Nullable[Bone] =
#| (self, name) => self.getBoneByName(name)
///|
pub fn Skeleton::get_bone_by_name(self : Skeleton, name : String) -> Bone? {
self.ffi_get_bone_by_name(name).to_option()
}
///|
pub extern "js" fn Skeleton::uuid(self : Skeleton) -> String =
#| (self) => self.uuid
///|
pub extern "js" fn Skeleton::frame(self : Skeleton) -> Int =
#| (self) => self.frame
///|
pub extern "js" fn Skeleton::set_frame(self : Skeleton, value : Int) -> Unit =
#| (self, value) => { self.frame = value; }
///|
pub extern "js" fn Skeleton::bone_inverses(
self : Skeleton,
) -> FixedArray[Matrix4] =
#| (self) => self.boneInverses.slice()
///|
extern "js" fn Skeleton::ffi_bone_matrices(
self : Skeleton,
) -> Nullable[FixedArray[Double]] =
#| (self) => self.boneMatrices ? Array.from(self.boneMatrices) : null
///|
pub fn Skeleton::bone_matrices(self : Skeleton) -> FixedArray[Double]? {
self.ffi_bone_matrices().to_option()
}
///|
extern "js" fn Skeleton::ffi_bone_texture(
self : Skeleton,
) -> Nullable[DataTexture] =
#| (self) => self.boneTexture
///|
pub fn Skeleton::bone_texture(self : Skeleton) -> DataTexture? {
self.ffi_bone_texture().to_option()
}
///|
pub extern "js" fn Skeleton::init(self : Skeleton) -> Unit =
#| (self) => self.init()
///|
pub extern "js" fn Skeleton::calculate_inverses(self : Skeleton) -> Unit =
#| (self) => self.calculateInverses()
///|
pub extern "js" fn Skeleton::compute_bone_texture(self : Skeleton) -> Skeleton =
#| (self) => self.computeBoneTexture()
///|
pub extern "js" fn Skeleton::clone(self : Skeleton) -> Skeleton =
#| (self) => self.clone()
///|
extern "js" fn Skeleton::ffi_to_json(self : Skeleton) -> JsResult[String] =
#| (self) => { try { return { ok: true, value: (() => JSON.stringify(self.toJSON()))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn Skeleton::to_json(self : Skeleton) -> Json raise SerializationError {
match self.ffi_to_json().into_result() {
Ok(value) =>
@json.parse(value) catch {
error => raise SerializationError((error : Error).to_string())
}
Err(message) => raise SerializationError(message)
}
}
///|
extern "js" fn Skeleton::ffi_to_json_string(
self : Skeleton,
) -> JsResult[String] =
#| (self) => { try { return { ok: true, value: (() => JSON.stringify(self.toJSON()))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn Skeleton::to_json_string(
self : Skeleton,
) -> String raise SerializationError {
match self.ffi_to_json_string().into_result() {
Ok(value) => value
Err(message) => raise SerializationError(message)
}
}