// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type SceneUtils
///|
#module("@mizchi/three-mbt/scene-tools")
pub extern "js" fn SceneUtils::SceneUtils() -> SceneUtils = "sceneUtils"
///|
pub extern "js" fn SceneUtils::batch_instance_ids(
self : SceneUtils,
batch : BatchedMesh,
) -> FixedArray[BatchedInstanceId] =
#| (self, batch) => self.batchInstanceIds(batch)
///|
extern "js" fn SceneUtils::ffi_batch_geometry(
self : SceneUtils,
batch : BatchedMesh,
id : BatchedGeometryId,
) -> JsResult[BufferGeometry] =
#| (self, batch, id) => { try { return { ok: true, value: (() => self.batchGeometry(batch, id))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn SceneUtils::batch_geometry(
self : SceneUtils,
batch : BatchedMesh,
id : BatchedGeometryId,
) -> BufferGeometry raise ModelingError {
match self.ffi_batch_geometry(batch, id).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}
///|
extern "js" fn SceneUtils::ffi_meshes_from_batch(
self : SceneUtils,
batch : BatchedMesh,
only_visible : Bool,
) -> JsResult[Group] =
#| (self, batch, only_visible) => { try { return { ok: true, value: (() => self.meshesFromBatch(batch, only_visible))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn SceneUtils::meshes_from_batch(
self : SceneUtils,
batch : BatchedMesh,
only_visible : Bool,
) -> Group raise ModelingError {
match self.ffi_meshes_from_batch(batch, only_visible).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}
///|
extern "js" fn SceneUtils::ffi_meshes_from_instances(
self : SceneUtils,
mesh : InstancedMesh,
) -> JsResult[Group] =
#| (self, mesh) => { try { return { ok: true, value: (() => self.meshesFromInstances(mesh))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn SceneUtils::meshes_from_instances(
self : SceneUtils,
mesh : InstancedMesh,
) -> Group raise ModelingError {
match self.ffi_meshes_from_instances(mesh).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}
///|
extern "js" fn SceneUtils::ffi_meshes_from_materials(
self : SceneUtils,
mesh : Mesh,
) -> JsResult[Group] =
#| (self, mesh) => { try { return { ok: true, value: (() => self.meshesFromMaterials(mesh))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn SceneUtils::meshes_from_materials(
self : SceneUtils,
mesh : Mesh,
) -> Group raise ModelingError {
match self.ffi_meshes_from_materials(mesh).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}
///|
pub extern "js" fn SceneUtils::multi_material_object(
self : SceneUtils,
geometry : BufferGeometry,
materials : FixedArray[Material],
) -> Group =
#| (self, geometry, materials) => self.createMultiMaterialObject(geometry, materials)
///|
pub extern "js" fn SceneUtils::sort_instances(
self : SceneUtils,
mesh : InstancedMesh,
compare : (Int, Int) -> Int,
) -> Unit =
#| (self, mesh, compare) => self.sortInstancedMesh(mesh, compare)
///|
extern "js" fn SceneUtils::ffi_uv_debug(
self : SceneUtils,
geometry : BufferGeometry,
size : Int,
) -> JsResult[Canvas] =
#| (self, geometry, size) => { try { return { ok: true, value: (() => self.uvDebug(geometry, size))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn SceneUtils::uv_debug(
self : SceneUtils,
geometry : BufferGeometry,
size : Int,
) -> Canvas raise ModelingError {
match self.ffi_uv_debug(geometry, size).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}