// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type Vector4
///|
#module("@mizchi/three-mbt/constructors")
pub extern "js" fn Vector4::Vector4(
x : Double,
y : Double,
z : Double,
w : Double,
) -> Vector4 = "vector4"
///|
pub extern "js" fn Vector4::x(self : Vector4) -> Double =
#| (self) => self.x
///|
pub extern "js" fn Vector4::y(self : Vector4) -> Double =
#| (self) => self.y
///|
pub extern "js" fn Vector4::z(self : Vector4) -> Double =
#| (self) => self.z
///|
pub extern "js" fn Vector4::w(self : Vector4) -> Double =
#| (self) => self.w
///|
pub extern "js" fn Vector4::set(
self : Vector4,
x : Double,
y : Double,
z : Double,
w : Double,
) -> Vector4 =
#| (self, x, y, z, w) => self.set(x, y, z, w)
///|
pub extern "js" fn Vector4::clone(self : Vector4) -> Vector4 =
#| (self) => self.clone()
///|
pub extern "js" fn Vector4::copy(self : Vector4, other : Vector4) -> Vector4 =
#| (self, other) => self.copy(other)
///|
pub extern "js" fn Vector4::add(self : Vector4, other : Vector4) -> Vector4 =
#| (self, other) => self.add(other)
///|
pub extern "js" fn Vector4::sub(self : Vector4, other : Vector4) -> Vector4 =
#| (self, other) => self.sub(other)
///|
pub extern "js" fn Vector4::multiply_scalar(
self : Vector4,
scalar : Double,
) -> Vector4 =
#| (self, scalar) => self.multiplyScalar(scalar)
///|
pub extern "js" fn Vector4::dot(self : Vector4, other : Vector4) -> Double =
#| (self, other) => self.dot(other)
///|
pub extern "js" fn Vector4::normalize(self : Vector4) -> Vector4 =
#| (self) => self.normalize()
///|
pub extern "js" fn Vector4::length(self : Vector4) -> Double =
#| (self) => self.length()
///|
pub extern "js" fn Vector4::apply_matrix4(
self : Vector4,
matrix : Matrix4,
) -> Vector4 =
#| (self, matrix) => self.applyMatrix4(matrix)
///|
pub extern "js" fn Vector4::from_array(
self : Vector4,
values : FixedArray[Double],
offset : Int,
) -> Vector4 =
#| (self, values, offset) => self.fromArray(values, offset)
///|
pub extern "js" fn Vector4::to_array(self : Vector4) -> FixedArray[Double] =
#| (self) => self.toArray()
///|
pub extern "js" fn Vector4::to_array_into(
self : Vector4,
values : FixedArray[Double],
offset : Int,
) -> FixedArray[Double] =
#| (self, values, offset) => self.toArray(values, offset)
///|
pub extern "js" fn Vector4::is_vector4(self : Vector4) -> Bool =
#| (self) => self.isVector4
///|
pub extern "js" fn Vector4::set_x(self : Vector4, value : Double) -> Vector4 =
#| (self, value) => self.setX(value)
///|
pub extern "js" fn Vector4::set_y(self : Vector4, value : Double) -> Vector4 =
#| (self, value) => self.setY(value)
///|
pub extern "js" fn Vector4::set_z(self : Vector4, value : Double) -> Vector4 =
#| (self, value) => self.setZ(value)
///|
pub extern "js" fn Vector4::set_w(self : Vector4, value : Double) -> Vector4 =
#| (self, value) => self.setW(value)
///|
pub extern "js" fn Vector4::set_component(
self : Vector4,
index : Int,
value : Double,
) -> Vector4 =
#| (self, index, value) => self.setComponent(index, value)
///|
pub extern "js" fn Vector4::get_component(
self : Vector4,
index : Int,
) -> Double =
#| (self, index) => self.getComponent(index)
///|
pub extern "js" fn Vector4::set_scalar(
self : Vector4,
value : Double,
) -> Vector4 =
#| (self, value) => self.setScalar(value)
///|
pub extern "js" fn Vector4::add_scalar(
self : Vector4,
value : Double,
) -> Vector4 =
#| (self, value) => self.addScalar(value)
///|
pub extern "js" fn Vector4::sub_scalar(
self : Vector4,
value : Double,
) -> Vector4 =
#| (self, value) => self.subScalar(value)
///|
pub extern "js" fn Vector4::divide_scalar(
self : Vector4,
value : Double,
) -> Vector4 =
#| (self, value) => self.divideScalar(value)
///|
pub extern "js" fn Vector4::set_length(
self : Vector4,
value : Double,
) -> Vector4 =
#| (self, value) => self.setLength(value)
///|
pub extern "js" fn Vector4::add_vectors(
self : Vector4,
a : Vector4,
b : Vector4,
) -> Vector4 =
#| (self, a, b) => self.addVectors(a, b)
///|
pub extern "js" fn Vector4::sub_vectors(
self : Vector4,
a : Vector4,
b : Vector4,
) -> Vector4 =
#| (self, a, b) => self.subVectors(a, b)
///|
pub extern "js" fn Vector4::add_scaled_vector(
self : Vector4,
other : Vector4,
scale : Double,
) -> Vector4 =
#| (self, other, scale) => self.addScaledVector(other, scale)
///|
pub extern "js" fn Vector4::multiply(
self : Vector4,
other : Vector4,
) -> Vector4 =
#| (self, other) => self.multiply(other)
///|
pub extern "js" fn Vector4::divide(self : Vector4, other : Vector4) -> Vector4 =
#| (self, other) => self.divide(other)
///|
pub extern "js" fn Vector4::min(self : Vector4, other : Vector4) -> Vector4 =
#| (self, other) => self.min(other)
///|
pub extern "js" fn Vector4::max(self : Vector4, other : Vector4) -> Vector4 =
#| (self, other) => self.max(other)
///|
pub extern "js" fn Vector4::clamp(
self : Vector4,
min : Vector4,
max : Vector4,
) -> Vector4 =
#| (self, min, max) => self.clamp(min, max)
///|
pub extern "js" fn Vector4::clamp_scalar(
self : Vector4,
min : Double,
max : Double,
) -> Vector4 =
#| (self, min, max) => self.clampScalar(min, max)
///|
pub extern "js" fn Vector4::floor(self : Vector4) -> Vector4 =
#| (self) => self.floor()
///|
pub extern "js" fn Vector4::ceil(self : Vector4) -> Vector4 =
#| (self) => self.ceil()
///|
pub extern "js" fn Vector4::round(self : Vector4) -> Vector4 =
#| (self) => self.round()
///|
pub extern "js" fn Vector4::round_to_zero(self : Vector4) -> Vector4 =
#| (self) => self.roundToZero()
///|
pub extern "js" fn Vector4::negate(self : Vector4) -> Vector4 =
#| (self) => self.negate()
///|
pub extern "js" fn Vector4::random(self : Vector4) -> Vector4 =
#| (self) => self.random()
///|
pub extern "js" fn Vector4::length_squared(self : Vector4) -> Double =
#| (self) => self.lengthSq()
///|
pub extern "js" fn Vector4::manhattan_length(self : Vector4) -> Double =
#| (self) => self.manhattanLength()
///|
pub extern "js" fn Vector4::lerp(
self : Vector4,
other : Vector4,
alpha : Double,
) -> Vector4 =
#| (self, other, alpha) => self.lerp(other, alpha)
///|
pub extern "js" fn Vector4::lerp_vectors(
self : Vector4,
a : Vector4,
b : Vector4,
alpha : Double,
) -> Vector4 =
#| (self, a, b, alpha) => self.lerpVectors(a, b, alpha)
///|
pub extern "js" fn Vector4::equals(self : Vector4, other : Vector4) -> Bool =
#| (self, other) => self.equals(other)
///|
pub extern "js" fn Vector4::from_buffer_attribute(
self : Vector4,
attribute : BufferAttribute,
index : Int,
) -> Vector4 =
#| (self, attribute, index) => self.fromBufferAttribute(attribute, index)
///|
pub extern "js" fn Vector4::width(self : Vector4) -> Double =
#| (self) => self.width
///|
pub extern "js" fn Vector4::set_width(self : Vector4, value : Double) -> Unit =
#| (self, value) => { self.width = value; }
///|
pub extern "js" fn Vector4::height(self : Vector4) -> Double =
#| (self) => self.height
///|
pub extern "js" fn Vector4::set_height(self : Vector4, value : Double) -> Unit =
#| (self, value) => { self.height = value; }
///|
pub extern "js" fn Vector4::set_axis_angle_from_quaternion(
self : Vector4,
quaternion : Quaternion,
) -> Vector4 =
#| (self, quaternion) => self.setAxisAngleFromQuaternion(quaternion)
///|
pub extern "js" fn Vector4::set_axis_angle_from_rotation_matrix(
self : Vector4,
matrix : Matrix4,
) -> Vector4 =
#| (self, matrix) => self.setAxisAngleFromRotationMatrix(matrix)
///|
pub extern "js" fn Vector4::set_from_matrix_position(
self : Vector4,
matrix : Matrix4,
) -> Vector4 =
#| (self, matrix) => self.setFromMatrixPosition(matrix)
///|
pub extern "js" fn Vector4::same_reference(
self : Vector4,
other : Vector4,
) -> Bool =
#| (self, other) => self === other
///|
/// Returns a fresh vector; leaves the receiver unchanged. Numeric behavior follows three.js.
pub extern "js" fn Vector4::scaled(self : Vector4, scalar : Double) -> Vector4 =
#| (self, scalar) => self.clone().multiplyScalar(scalar)
///|
/// Returns a fresh vector; leaves the receiver unchanged. Numeric behavior follows three.js.
pub extern "js" fn Vector4::divided_by(
self : Vector4,
scalar : Double,
) -> Vector4 =
#| (self, scalar) => self.clone().divideScalar(scalar)
///|
/// Returns a fresh vector without changing either operand. Binary operations are component-wise.
pub impl Add for Vector4 with fn add(self : Vector4, other : Vector4) -> Vector4 {
self.clone().add(other)
}
///|
/// Returns a fresh vector without changing either operand. Binary operations are component-wise.
pub impl Sub for Vector4 with fn sub(self : Vector4, other : Vector4) -> Vector4 {
self.clone().sub(other)
}
///|
/// Returns a fresh vector without changing either operand. Binary operations are component-wise.
pub impl Mul for Vector4 with fn mul(self : Vector4, other : Vector4) -> Vector4 {
self.clone().multiply(other)
}
///|
/// Returns a fresh vector without changing either operand. Binary operations are component-wise.
pub impl Div for Vector4 with fn div(self : Vector4, other : Vector4) -> Vector4 {
self.clone().divide(other)
}
///|
/// Returns a fresh vector without changing either operand. Binary operations are component-wise.
pub impl Neg for Vector4 with fn neg(self : Vector4) -> Vector4 {
self.clone().negate()
}