// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type InstancedFlow
///|
#module("@mizchi/three-mbt/modeling-edit")
pub extern "js" fn InstancedFlow::InstancedFlow(
count : Int,
curve_count : Int,
geometry : BufferGeometry,
material : Material,
) -> InstancedFlow = "instancedFlow"
///|
pub fn InstancedFlow::as_flow(self : InstancedFlow) -> Flow = "%identity"
///|
pub extern "js" fn InstancedFlow::object(self : InstancedFlow) -> InstancedMesh =
#| (self) => self.object3D
///|
extern "js" fn InstancedFlow::ffi_set_curve(
self : InstancedFlow,
index : Int,
curve_index : Int,
) -> JsResult[Unit] =
#| (self, index, curve_index) => { try { return { ok: true, value: (() => { if (index < 0 || index >= self.object3D.count || curve_index < 0 || curve_index >= self.curveArray.length || !self.curveArray[curve_index]) throw new RangeError("Instance index or initialized curve required"); self.setCurve(index, curve_index); })() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn InstancedFlow::set_curve(
self : InstancedFlow,
index : Int,
curve_index : Int,
) -> Unit raise ModelingError {
match self.ffi_set_curve(index, curve_index).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}
///|
extern "js" fn InstancedFlow::ffi_move_individual_along_curve(
self : InstancedFlow,
index : Int,
amount : Double,
) -> JsResult[Unit] =
#| (self, index, amount) => { try { return { ok: true, value: (() => { if (index < 0 || index >= self.object3D.count || !self.curveArray[self.whichCurve[index]]) throw new RangeError("Instance index or initialized curve required"); self.moveIndividualAlongCurve(index, amount); })() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn InstancedFlow::move_individual_along_curve(
self : InstancedFlow,
index : Int,
amount : Double,
) -> Unit raise ModelingError {
match self.ffi_move_individual_along_curve(index, amount).into_result() {
Ok(value) => value
Err(message) => raise ModelingError(message)
}
}