// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type GLTFLoader
///|
#module("@mizchi/three-mbt/loaders")
pub extern "js" fn GLTFLoader::GLTFLoader() -> GLTFLoader = "gLTFLoader"
///|
pub extern "js" fn GLTFLoader::set_path(
self : GLTFLoader,
path : String,
) -> GLTFLoader =
#| (self, path) => self.setPath(path)
///|
pub extern "js" fn GLTFLoader::set_resource_path(
self : GLTFLoader,
path : String,
) -> GLTFLoader =
#| (self, path) => self.setResourcePath(path)
///|
pub extern "js" fn GLTFLoader::set_with_credentials(
self : GLTFLoader,
enabled : Bool,
) -> GLTFLoader =
#| (self, enabled) => self.setWithCredentials(enabled)
///|
pub extern "js" fn GLTFLoader::set_draco_loader(
self : GLTFLoader,
loader : DRACOLoader,
) -> GLTFLoader =
#| (self, loader) => self.setDRACOLoader(loader)
///|
pub extern "js" fn GLTFLoader::set_ktx2_loader(
self : GLTFLoader,
loader : KTX2Loader,
) -> GLTFLoader =
#| (self, loader) => self.setKTX2Loader(loader)
///|
pub fn GLTFLoader::as_loader(self : GLTFLoader) -> Loader = "%identity"
///|
pub extern "js" fn GLTFLoader::register(
self : GLTFLoader,
factory : (GLTFParser) -> GLTFLoaderPlugin,
) -> GLTFLoaderRegistration =
#| (self, factory) => { const callback=context=>factory(context);self.register(callback);return {owner:self,callback,active:true}; }
///|
extern "js" fn GLTFLoader::ffi_unregister(
self : GLTFLoader,
registration : GLTFLoaderRegistration,
) -> JsResult[Unit] =
#| (self, registration) => { try { return { ok: true, value: (() => { if(registration.owner!==self)throw new TypeError("Registration belongs to a different owner");if(registration.active){self.unregister(registration.callback);registration.active=false;} })() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn GLTFLoader::unregister(
self : GLTFLoader,
registration : GLTFLoaderRegistration,
) -> Unit raise LoadError {
match self.ffi_unregister(registration).into_result() {
Ok(value) => value
Err(message) => raise LoadError(message)
}
}