// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type Mesh
///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn Mesh::Mesh(
geometry : BufferGeometry,
material : Material,
) -> Mesh = "mesh"
///|
pub extern "js" fn Mesh::update_morph_targets(self : Mesh) -> Unit =
#| (self) => self.updateMorphTargets()
///|
pub extern "js" fn Mesh::get_vertex_position(
self : Mesh,
index : Int,
target : Vector3,
) -> Vector3 =
#| (self, index, target) => self.getVertexPosition(index, target)
///|
pub extern "js" fn Mesh::morph_target_names(self : Mesh) -> FixedArray[String] =
#| (self) => Object.keys(self.morphTargetDictionary ?? {})
///|
pub extern "js" fn Mesh::morph_target_influences(
self : Mesh,
) -> FixedArray[Double] =
#| (self) => self.morphTargetInfluences?.slice() ?? []
///|
extern "js" fn Mesh::ffi_morph_target_index(
self : Mesh,
name : String,
) -> Nullable[Int] =
#| (self, name) => self.morphTargetDictionary && Object.hasOwn(self.morphTargetDictionary, name) ? self.morphTargetDictionary[name] : null
///|
pub fn Mesh::morph_target_index(self : Mesh, name : String) -> Int? {
self.ffi_morph_target_index(name).to_option()
}
///|
extern "js" fn Mesh::ffi_morph_influence(
self : Mesh,
index : Int,
) -> Nullable[Double] =
#| (self, index) => index >= 0 && index < (self.morphTargetInfluences?.length ?? 0) ? self.morphTargetInfluences[index] : null
///|
pub fn Mesh::morph_influence(self : Mesh, index : Int) -> Double? {
self.ffi_morph_influence(index).to_option()
}
///|
pub extern "js" fn Mesh::set_morph_influence(
self : Mesh,
index : Int,
weight : Double,
) -> Bool =
#| (self, index, weight) => { if (index < 0 || index >= (self.morphTargetInfluences?.length ?? 0)) return false; self.morphTargetInfluences[index] = weight; return true; }
///|
pub extern "js" fn Mesh::set_morph_weight(
self : Mesh,
name : String,
weight : Double,
) -> Bool =
#| (self, name, weight) => { const dict = self.morphTargetDictionary; if (!dict || !Object.hasOwn(dict, name)) return false; const index = dict[name]; if (index < 0 || index >= (self.morphTargetInfluences?.length ?? 0)) return false; self.morphTargetInfluences[index] = weight; return true; }
///|
pub fn Mesh::as_object3d(self : Mesh) -> Object3D = "%identity"
///|
pub extern "js" fn Mesh::geometry(self : Mesh) -> BufferGeometry =
#| (self) => self.geometry
///|
pub extern "js" fn Mesh::set_geometry(
self : Mesh,
value : BufferGeometry,
) -> Unit =
#| (self, value) => { self.geometry = value; }
///|
pub extern "js" fn Mesh::set_material(self : Mesh, value : Material) -> Unit =
#| (self, value) => { self.material = value; }
///|
pub extern "js" fn Mesh::materials(self : Mesh) -> FixedArray[Material] =
#| (self) => Array.isArray(self.material) ? self.material.slice() : [self.material]
///|
pub extern "js" fn Mesh::set_materials(
self : Mesh,
materials : FixedArray[Material],
) -> Unit =
#| (self, materials) => { self.material = materials.slice(); }
///|
pub extern "js" fn Mesh::cast_shadow(self : Mesh) -> Bool =
#| (self) => self.castShadow
///|
pub extern "js" fn Mesh::set_cast_shadow(self : Mesh, value : Bool) -> Unit =
#| (self, value) => { self.castShadow = value; }
///|
pub extern "js" fn Mesh::receive_shadow(self : Mesh) -> Bool =
#| (self) => self.receiveShadow
///|
pub extern "js" fn Mesh::set_receive_shadow(self : Mesh, value : Bool) -> Unit =
#| (self, value) => { self.receiveShadow = value; }
///|
pub extern "js" fn Mesh::id(self : Mesh) -> Int =
#| (self) => self.id
///|
pub extern "js" fn Mesh::uuid(self : Mesh) -> String =
#| (self) => self.uuid
///|
pub extern "js" fn Mesh::kind(self : Mesh) -> String =
#| (self) => self.type
///|
pub extern "js" fn Mesh::name(self : Mesh) -> String =
#| (self) => self.name
///|
pub extern "js" fn Mesh::visible(self : Mesh) -> Bool =
#| (self) => self.visible
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::position(self : Mesh) -> Vector3 =
#| (self) => self.position
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::rotation(self : Mesh) -> Euler =
#| (self) => self.rotation
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::quaternion(self : Mesh) -> Quaternion =
#| (self) => self.quaternion
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::scale(self : Mesh) -> Vector3 =
#| (self) => self.scale
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::up(self : Mesh) -> Vector3 =
#| (self) => self.up
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::matrix(self : Mesh) -> Matrix4 =
#| (self) => self.matrix
///|
/// Returns the live three.js reference, not a copy.
pub extern "js" fn Mesh::matrix_world(self : Mesh) -> Matrix4 =
#| (self) => self.matrixWorld
///|
pub extern "js" fn Mesh::set_name(self : Mesh, name : String) -> Unit =
#| (self, name) => { self.name = name; }
///|
pub extern "js" fn Mesh::set_visible(self : Mesh, visible : Bool) -> Unit =
#| (self, visible) => { self.visible = visible; }
///|
pub extern "js" fn Mesh::children(self : Mesh) -> FixedArray[Object3D] =
#| (self) => self.children.slice()
///|
pub extern "js" fn Mesh::add(self : Mesh, child : Object3D) -> Object3D =
#| (self, child) => self.add(child)
///|
pub extern "js" fn Mesh::remove(self : Mesh, child : Object3D) -> Object3D =
#| (self, child) => self.remove(child)
///|
pub extern "js" fn Mesh::attach(self : Mesh, child : Object3D) -> Object3D =
#| (self, child) => self.attach(child)
///|
pub extern "js" fn Mesh::remove_from_parent(self : Mesh) -> Object3D =
#| (self) => self.removeFromParent()
///|
pub extern "js" fn Mesh::look_at(self : Mesh, target : Vector3) -> Unit =
#| (self, target) => self.lookAt(target)
///|
pub extern "js" fn Mesh::rotate_x(self : Mesh, angle : Double) -> Object3D =
#| (self, angle) => self.rotateX(angle)
///|
pub extern "js" fn Mesh::rotate_y(self : Mesh, angle : Double) -> Object3D =
#| (self, angle) => self.rotateY(angle)
///|
pub extern "js" fn Mesh::rotate_z(self : Mesh, angle : Double) -> Object3D =
#| (self, angle) => self.rotateZ(angle)
///|
pub extern "js" fn Mesh::translate_x(
self : Mesh,
distance : Double,
) -> Object3D =
#| (self, distance) => self.translateX(distance)
///|
pub extern "js" fn Mesh::translate_y(
self : Mesh,
distance : Double,
) -> Object3D =
#| (self, distance) => self.translateY(distance)
///|
pub extern "js" fn Mesh::translate_z(
self : Mesh,
distance : Double,
) -> Object3D =
#| (self, distance) => self.translateZ(distance)
///|
pub extern "js" fn Mesh::apply_matrix4(self : Mesh, matrix : Matrix4) -> Unit =
#| (self, matrix) => self.applyMatrix4(matrix)
///|
pub extern "js" fn Mesh::apply_quaternion(
self : Mesh,
quaternion : Quaternion,
) -> Object3D =
#| (self, quaternion) => self.applyQuaternion(quaternion)
///|
pub extern "js" fn Mesh::update_matrix(self : Mesh) -> Unit =
#| (self) => self.updateMatrix()
///|
pub extern "js" fn Mesh::update_matrix_world(self : Mesh, force : Bool) -> Unit =
#| (self, force) => self.updateMatrixWorld(force)
///|
pub extern "js" fn Mesh::update_world_matrix(
self : Mesh,
update_parents : Bool,
update_children : Bool,
) -> Unit =
#| (self, update_parents, update_children) => self.updateWorldMatrix(update_parents, update_children)
///|
pub extern "js" fn Mesh::get_world_position(
self : Mesh,
target : Vector3,
) -> Vector3 =
#| (self, target) => self.getWorldPosition(target)
///|
pub extern "js" fn Mesh::get_world_quaternion(
self : Mesh,
target : Quaternion,
) -> Quaternion =
#| (self, target) => self.getWorldQuaternion(target)
///|
pub extern "js" fn Mesh::get_world_scale(
self : Mesh,
target : Vector3,
) -> Vector3 =
#| (self, target) => self.getWorldScale(target)
///|
pub extern "js" fn Mesh::get_world_direction(
self : Mesh,
target : Vector3,
) -> Vector3 =
#| (self, target) => self.getWorldDirection(target)
///|
pub extern "js" fn Mesh::local_to_world(
self : Mesh,
vector : Vector3,
) -> Vector3 =
#| (self, vector) => self.localToWorld(vector)
///|
pub extern "js" fn Mesh::world_to_local(
self : Mesh,
vector : Vector3,
) -> Vector3 =
#| (self, vector) => self.worldToLocal(vector)
///|
pub extern "js" fn Mesh::traverse(
self : Mesh,
callback : (Object3D) -> Unit,
) -> Unit =
#| (self, callback) => self.traverse(callback)
///|
pub extern "js" fn Mesh::traverse_visible(
self : Mesh,
callback : (Object3D) -> Unit,
) -> Unit =
#| (self, callback) => self.traverseVisible(callback)
///|
/// Copies coordinates into the live position vector; does not retain the input vector.
pub extern "js" fn Mesh::set_position(self : Mesh, position : Vector3) -> Unit =
#| (self, position) => { self.position.copy(position); }
///|
/// Sets local position coordinates while preserving the live position reference.
pub extern "js" fn Mesh::set_position_xyz(
self : Mesh,
x : Double,
y : Double,
z : Double,
) -> Unit =
#| (self, x, y, z) => { self.position.set(x, y, z); }
///|
/// Copies Euler angles and order; native quaternion synchronization is preserved.
pub extern "js" fn Mesh::set_rotation(self : Mesh, rotation : Euler) -> Unit =
#| (self, rotation) => { self.rotation.copy(rotation); }
///|
/// Sets local Euler angles in radians, retaining the current Euler order.
pub extern "js" fn Mesh::set_rotation_xyz(
self : Mesh,
x : Double,
y : Double,
z : Double,
) -> Unit =
#| (self, x, y, z) => { self.rotation.set(x, y, z); }
///|
/// Copies quaternion components; native Euler synchronization is preserved. Does not normalize.
pub extern "js" fn Mesh::set_quaternion(
self : Mesh,
quaternion : Quaternion,
) -> Unit =
#| (self, quaternion) => { self.quaternion.copy(quaternion); }
///|
/// Copies local scale components into the existing live scale vector.
pub extern "js" fn Mesh::set_scale(self : Mesh, scale : Vector3) -> Unit =
#| (self, scale) => { self.scale.copy(scale); }
///|
/// Sets the three local scale components.
pub extern "js" fn Mesh::set_scale_xyz(
self : Mesh,
x : Double,
y : Double,
z : Double,
) -> Unit =
#| (self, x, y, z) => { self.scale.set(x, y, z); }
///|
/// Sets all local scale components to the supplied value.
pub extern "js" fn Mesh::set_uniform_scale(self : Mesh, scale : Double) -> Unit =
#| (self, scale) => { self.scale.setScalar(scale); }
///|
/// Adds a child using native reparenting and event behavior.
pub extern "js" fn Mesh::add_child(self : Mesh, child : Object3D) -> Unit =
#| (self, child) => { self.add(child); }
///|
/// Adds children in order using native reparenting and event behavior. An empty list is a no-op.
pub extern "js" fn Mesh::add_children(
self : Mesh,
children : FixedArray[Object3D],
) -> Unit =
#| (self, children) => { if (children.length > 0) { self.add(...children); }; }
///|
/// Adds this object to the parent, retaining this object as the cascade receiver.
pub extern "js" fn Mesh::add_to(self : Mesh, parent : Object3D) -> Unit =
#| (self, parent) => { parent.add(self); }
///|
/// Removes a child using native event behavior. Does not dispose resources.
pub extern "js" fn Mesh::remove_child(self : Mesh, child : Object3D) -> Unit =
#| (self, child) => { self.remove(child); }