// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type BufferGeometry
///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn BufferGeometry::BufferGeometry() -> BufferGeometry = "bufferGeometry"
///|
pub extern "js" fn BufferGeometry::morph_targets_relative(
self : BufferGeometry,
) -> Bool =
#| (self) => self.morphTargetsRelative
///|
pub extern "js" fn BufferGeometry::set_morph_targets_relative(
self : BufferGeometry,
value : Bool,
) -> Unit =
#| (self, value) => { self.morphTargetsRelative = value; }
///|
pub extern "js" fn BufferGeometry::morph_attributes(
self : BufferGeometry,
name : String,
) -> FixedArray[BufferAttribute] =
#| (self, name) => Object.hasOwn(self.morphAttributes, name) ? self.morphAttributes[name].slice() : []
///|
pub extern "js" fn BufferGeometry::set_morph_attributes(
self : BufferGeometry,
name : String,
attributes : FixedArray[BufferAttribute],
) -> Unit =
#| (self, name, attributes) => { Object.defineProperty(self.morphAttributes, name, { value: attributes.slice(), writable: true, enumerable: true, configurable: true }); }
///|
pub extern "js" fn BufferGeometry::id(self : BufferGeometry) -> Int =
#| (self) => self.id
///|
pub extern "js" fn BufferGeometry::name(self : BufferGeometry) -> String =
#| (self) => self.name
///|
pub extern "js" fn BufferGeometry::set_name(
self : BufferGeometry,
value : String,
) -> Unit =
#| (self, value) => { self.name = value; }
///|
pub extern "js" fn BufferGeometry::same_reference(
self : BufferGeometry,
other : BufferGeometry,
) -> Bool =
#| (self, other) => self === other
///|
pub extern "js" fn BufferGeometry::clone(
self : BufferGeometry,
) -> BufferGeometry =
#| (self) => self.clone()
///|
pub extern "js" fn BufferGeometry::set_attribute(
self : BufferGeometry,
name : String,
attribute : BufferAttribute,
) -> BufferGeometry =
#| (self, name, attribute) => self.setAttribute(name, attribute)
///|
extern "js" fn BufferGeometry::ffi_get_attribute(
self : BufferGeometry,
name : String,
) -> Nullable[BufferAttribute] =
#| (self, name) => self.getAttribute(name)
///|
pub fn BufferGeometry::get_attribute(
self : BufferGeometry,
name : String,
) -> BufferAttribute? {
self.ffi_get_attribute(name).to_option()
}
///|
pub extern "js" fn BufferGeometry::delete_attribute(
self : BufferGeometry,
name : String,
) -> BufferGeometry =
#| (self, name) => self.deleteAttribute(name)
///|
pub extern "js" fn BufferGeometry::has_attribute(
self : BufferGeometry,
name : String,
) -> Bool =
#| (self, name) => self.hasAttribute(name)
///|
pub extern "js" fn BufferGeometry::set_indices(
self : BufferGeometry,
indices : FixedArray[Int],
) -> BufferGeometry =
#| (self, indices) => self.setIndex(indices)
///|
extern "js" fn BufferGeometry::ffi_get_index(
self : BufferGeometry,
) -> Nullable[BufferAttribute] =
#| (self) => self.getIndex()
///|
pub fn BufferGeometry::get_index(self : BufferGeometry) -> BufferAttribute? {
self.ffi_get_index().to_option()
}
///|
pub extern "js" fn BufferGeometry::compute_vertex_normals(
self : BufferGeometry,
) -> Unit =
#| (self) => self.computeVertexNormals()
///|
pub extern "js" fn BufferGeometry::compute_bounding_box(
self : BufferGeometry,
) -> Unit =
#| (self) => self.computeBoundingBox()
///|
pub extern "js" fn BufferGeometry::compute_bounding_sphere(
self : BufferGeometry,
) -> Unit =
#| (self) => self.computeBoundingSphere()
///|
extern "js" fn BufferGeometry::ffi_bounding_box(
self : BufferGeometry,
) -> Nullable[Box3] =
#| (self) => self.boundingBox
///|
pub fn BufferGeometry::bounding_box(self : BufferGeometry) -> Box3? {
self.ffi_bounding_box().to_option()
}
///|
extern "js" fn BufferGeometry::ffi_bounding_sphere(
self : BufferGeometry,
) -> Nullable[Sphere] =
#| (self) => self.boundingSphere
///|
pub fn BufferGeometry::bounding_sphere(self : BufferGeometry) -> Sphere? {
self.ffi_bounding_sphere().to_option()
}
///|
pub extern "js" fn BufferGeometry::translate(
self : BufferGeometry,
x : Double,
y : Double,
z : Double,
) -> BufferGeometry =
#| (self, x, y, z) => self.translate(x, y, z)
///|
pub extern "js" fn BufferGeometry::scale(
self : BufferGeometry,
x : Double,
y : Double,
z : Double,
) -> BufferGeometry =
#| (self, x, y, z) => self.scale(x, y, z)
///|
pub extern "js" fn BufferGeometry::rotate_x(
self : BufferGeometry,
angle : Double,
) -> BufferGeometry =
#| (self, angle) => self.rotateX(angle)
///|
pub extern "js" fn BufferGeometry::rotate_y(
self : BufferGeometry,
angle : Double,
) -> BufferGeometry =
#| (self, angle) => self.rotateY(angle)
///|
pub extern "js" fn BufferGeometry::rotate_z(
self : BufferGeometry,
angle : Double,
) -> BufferGeometry =
#| (self, angle) => self.rotateZ(angle)
///|
pub extern "js" fn BufferGeometry::apply_matrix4(
self : BufferGeometry,
matrix : Matrix4,
) -> BufferGeometry =
#| (self, matrix) => self.applyMatrix4(matrix)
///|
pub extern "js" fn BufferGeometry::center(
self : BufferGeometry,
) -> BufferGeometry =
#| (self) => self.center()
///|
pub extern "js" fn BufferGeometry::to_non_indexed(
self : BufferGeometry,
) -> BufferGeometry =
#| (self) => self.toNonIndexed()
///|
pub extern "js" fn BufferGeometry::set_draw_range(
self : BufferGeometry,
start : Int,
count : Int,
) -> Unit =
#| (self, start, count) => self.setDrawRange(start, count)
///|
pub extern "js" fn BufferGeometry::add_group(
self : BufferGeometry,
start : Int,
count : Int,
material_index : Int,
) -> Unit =
#| (self, start, count, material_index) => self.addGroup(start, count, material_index)
///|
pub extern "js" fn BufferGeometry::clear_groups(self : BufferGeometry) -> Unit =
#| (self) => self.clearGroups()
///|
pub extern "js" fn BufferGeometry::dispose(self : BufferGeometry) -> Unit =
#| (self) => self.dispose()
///|
pub extern "js" fn BufferGeometry::groups(
self : BufferGeometry,
) -> FixedArray[GeometryGroup] =
#| (self) => self.groups.map(group => ({...group}))
///|
pub extern "js" fn BufferGeometry::uuid(self : BufferGeometry) -> String =
#| (self) => self.uuid
///|
pub extern "js" fn BufferGeometry::kind(self : BufferGeometry) -> String =
#| (self) => self.type
///|
pub extern "js" fn BufferGeometry::user_data(self : BufferGeometry) -> UserData =
#| (self) => self.userData
///|
pub extern "js" fn BufferGeometry::attribute_names(
self : BufferGeometry,
) -> FixedArray[String] =
#| (self) => Object.keys(self.attributes)
///|
pub extern "js" fn BufferGeometry::apply_quaternion(
self : BufferGeometry,
quaternion : Quaternion,
) -> BufferGeometry =
#| (self, quaternion) => self.applyQuaternion(quaternion)
///|
pub extern "js" fn BufferGeometry::look_at(
self : BufferGeometry,
vector : Vector3,
) -> BufferGeometry =
#| (self, vector) => self.lookAt(vector)
///|
pub extern "js" fn BufferGeometry::set_from_points(
self : BufferGeometry,
points : FixedArray[Vector3],
) -> BufferGeometry =
#| (self, points) => self.setFromPoints(points)
///|
pub extern "js" fn BufferGeometry::set_from_points2(
self : BufferGeometry,
points : FixedArray[Vector2],
) -> BufferGeometry =
#| (self, points) => self.setFromPoints(points)
///|
pub extern "js" fn BufferGeometry::compute_tangents(
self : BufferGeometry,
) -> Unit =
#| (self) => self.computeTangents()
///|
pub extern "js" fn BufferGeometry::normalize_normals(
self : BufferGeometry,
) -> Unit =
#| (self) => self.normalizeNormals()
///|
pub extern "js" fn BufferGeometry::copy(
self : BufferGeometry,
source : BufferGeometry,
) -> BufferGeometry =
#| (self, source) => self.copy(source)
///|
pub extern "js" fn BufferGeometry::draw_range_start(
self : BufferGeometry,
) -> Int =
#| (self) => self.drawRange.start
///|
pub extern "js" fn BufferGeometry::draw_range_count(
self : BufferGeometry,
) -> Double =
#| (self) => self.drawRange.count
///|
extern "js" fn BufferGeometry::ffi_to_json(
self : BufferGeometry,
) -> JsResult[String] =
#| (self) => { try { return { ok: true, value: (() => JSON.stringify(self.toJSON()))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn BufferGeometry::to_json(
self : BufferGeometry,
) -> 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 BufferGeometry::ffi_to_json_string(
self : BufferGeometry,
) -> JsResult[String] =
#| (self) => { try { return { ok: true, value: (() => JSON.stringify(self.toJSON()))() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn BufferGeometry::to_json_string(
self : BufferGeometry,
) -> String raise SerializationError {
match self.ffi_to_json_string().into_result() {
Ok(value) => value
Err(message) => raise SerializationError(message)
}
}