Struct lotus_script::math::u16::U16Vec4
source · #[repr(C)]pub struct U16Vec4 {
pub x: u16,
pub y: u16,
pub z: u16,
pub w: u16,
}
Expand description
A 4-dimensional vector.
Fields§
§x: u16
§y: u16
§z: u16
§w: u16
Implementations§
source§impl U16Vec4
impl U16Vec4
sourcepub fn map<F>(self, f: F) -> U16Vec4
pub fn map<F>(self, f: F) -> U16Vec4
Returns a vector containing each element of self
modified by a mapping function f
.
sourcepub fn select(mask: BVec4, if_true: U16Vec4, if_false: U16Vec4) -> U16Vec4
pub fn select(mask: BVec4, if_true: U16Vec4, if_false: U16Vec4) -> U16Vec4
Creates a vector from the elements in if_true
and if_false
, selecting which to use
for each element of self
.
A true element in the mask uses the corresponding element from if_true
, and false
uses the element from if_false
.
sourcepub const fn from_array(a: [u16; 4]) -> U16Vec4
pub const fn from_array(a: [u16; 4]) -> U16Vec4
Creates a new vector from an array.
sourcepub const fn from_slice(slice: &[u16]) -> U16Vec4
pub const fn from_slice(slice: &[u16]) -> U16Vec4
Creates a vector from the first 4 values in slice
.
§Panics
Panics if slice
is less than 4 elements long.
sourcepub fn write_to_slice(self, slice: &mut [u16])
pub fn write_to_slice(self, slice: &mut [u16])
Writes the elements of self
to the first 4 elements in slice
.
§Panics
Panics if slice
is less than 4 elements long.
sourcepub fn truncate(self) -> U16Vec3
pub fn truncate(self) -> U16Vec3
Creates a 3D vector from the x
, y
and z
elements of self
, discarding w
.
Truncation to U16Vec3
may also be performed by using self.xyz()
.
sourcepub fn with_x(self, x: u16) -> U16Vec4
pub fn with_x(self, x: u16) -> U16Vec4
Creates a 4D vector from self
with the given value of x
.
sourcepub fn with_y(self, y: u16) -> U16Vec4
pub fn with_y(self, y: u16) -> U16Vec4
Creates a 4D vector from self
with the given value of y
.
sourcepub fn with_z(self, z: u16) -> U16Vec4
pub fn with_z(self, z: u16) -> U16Vec4
Creates a 4D vector from self
with the given value of z
.
sourcepub fn with_w(self, w: u16) -> U16Vec4
pub fn with_w(self, w: u16) -> U16Vec4
Creates a 4D vector from self
with the given value of w
.
sourcepub fn dot_into_vec(self, rhs: U16Vec4) -> U16Vec4
pub fn dot_into_vec(self, rhs: U16Vec4) -> U16Vec4
Returns a vector where every component is the dot product of self
and rhs
.
sourcepub fn min(self, rhs: U16Vec4) -> U16Vec4
pub fn min(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the minimum values for each element of self
and rhs
.
In other words this computes [self.x.min(rhs.x), self.y.min(rhs.y), ..]
.
sourcepub fn max(self, rhs: U16Vec4) -> U16Vec4
pub fn max(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the maximum values for each element of self
and rhs
.
In other words this computes [self.x.max(rhs.x), self.y.max(rhs.y), ..]
.
sourcepub fn clamp(self, min: U16Vec4, max: U16Vec4) -> U16Vec4
pub fn clamp(self, min: U16Vec4, max: U16Vec4) -> U16Vec4
Component-wise clamping of values, similar to u16::clamp
.
Each element in min
must be less-or-equal to the corresponding element in max
.
§Panics
Will panic if min
is greater than max
when glam_assert
is enabled.
sourcepub fn min_element(self) -> u16
pub fn min_element(self) -> u16
Returns the horizontal minimum of self
.
In other words this computes min(x, y, ..)
.
sourcepub fn max_element(self) -> u16
pub fn max_element(self) -> u16
Returns the horizontal maximum of self
.
In other words this computes max(x, y, ..)
.
sourcepub fn element_sum(self) -> u16
pub fn element_sum(self) -> u16
Returns the sum of all elements of self
.
In other words, this computes self.x + self.y + ..
.
sourcepub fn element_product(self) -> u16
pub fn element_product(self) -> u16
Returns the product of all elements of self
.
In other words, this computes self.x * self.y * ..
.
sourcepub fn cmpeq(self, rhs: U16Vec4) -> BVec4
pub fn cmpeq(self, rhs: U16Vec4) -> BVec4
Returns a vector mask containing the result of a ==
comparison for each element of
self
and rhs
.
In other words, this computes [self.x == rhs.x, self.y == rhs.y, ..]
for all
elements.
sourcepub fn cmpne(self, rhs: U16Vec4) -> BVec4
pub fn cmpne(self, rhs: U16Vec4) -> BVec4
Returns a vector mask containing the result of a !=
comparison for each element of
self
and rhs
.
In other words this computes [self.x != rhs.x, self.y != rhs.y, ..]
for all
elements.
sourcepub fn cmpge(self, rhs: U16Vec4) -> BVec4
pub fn cmpge(self, rhs: U16Vec4) -> BVec4
Returns a vector mask containing the result of a >=
comparison for each element of
self
and rhs
.
In other words this computes [self.x >= rhs.x, self.y >= rhs.y, ..]
for all
elements.
sourcepub fn cmpgt(self, rhs: U16Vec4) -> BVec4
pub fn cmpgt(self, rhs: U16Vec4) -> BVec4
Returns a vector mask containing the result of a >
comparison for each element of
self
and rhs
.
In other words this computes [self.x > rhs.x, self.y > rhs.y, ..]
for all
elements.
sourcepub fn cmple(self, rhs: U16Vec4) -> BVec4
pub fn cmple(self, rhs: U16Vec4) -> BVec4
Returns a vector mask containing the result of a <=
comparison for each element of
self
and rhs
.
In other words this computes [self.x <= rhs.x, self.y <= rhs.y, ..]
for all
elements.
sourcepub fn cmplt(self, rhs: U16Vec4) -> BVec4
pub fn cmplt(self, rhs: U16Vec4) -> BVec4
Returns a vector mask containing the result of a <
comparison for each element of
self
and rhs
.
In other words this computes [self.x < rhs.x, self.y < rhs.y, ..]
for all
elements.
sourcepub fn length_squared(self) -> u16
pub fn length_squared(self) -> u16
Computes the squared length of self
.
sourcepub fn as_i16vec4(&self) -> I16Vec4
pub fn as_i16vec4(&self) -> I16Vec4
Casts all elements of self
to i16
.
sourcepub fn as_i64vec4(&self) -> I64Vec4
pub fn as_i64vec4(&self) -> I64Vec4
Casts all elements of self
to i64
.
sourcepub fn as_u64vec4(&self) -> U64Vec4
pub fn as_u64vec4(&self) -> U64Vec4
Casts all elements of self
to u64
.
sourcepub const fn wrapping_add(self, rhs: U16Vec4) -> U16Vec4
pub const fn wrapping_add(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the wrapping addition of self
and rhs
.
In other words this computes [self.x.wrapping_add(rhs.x), self.y.wrapping_add(rhs.y), ..]
.
sourcepub const fn wrapping_sub(self, rhs: U16Vec4) -> U16Vec4
pub const fn wrapping_sub(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the wrapping subtraction of self
and rhs
.
In other words this computes [self.x.wrapping_sub(rhs.x), self.y.wrapping_sub(rhs.y), ..]
.
sourcepub const fn wrapping_mul(self, rhs: U16Vec4) -> U16Vec4
pub const fn wrapping_mul(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the wrapping multiplication of self
and rhs
.
In other words this computes [self.x.wrapping_mul(rhs.x), self.y.wrapping_mul(rhs.y), ..]
.
sourcepub const fn wrapping_div(self, rhs: U16Vec4) -> U16Vec4
pub const fn wrapping_div(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the wrapping division of self
and rhs
.
In other words this computes [self.x.wrapping_div(rhs.x), self.y.wrapping_div(rhs.y), ..]
.
sourcepub const fn saturating_add(self, rhs: U16Vec4) -> U16Vec4
pub const fn saturating_add(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the saturating addition of self
and rhs
.
In other words this computes [self.x.saturating_add(rhs.x), self.y.saturating_add(rhs.y), ..]
.
sourcepub const fn saturating_sub(self, rhs: U16Vec4) -> U16Vec4
pub const fn saturating_sub(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the saturating subtraction of self
and rhs
.
In other words this computes [self.x.saturating_sub(rhs.x), self.y.saturating_sub(rhs.y), ..]
.
sourcepub const fn saturating_mul(self, rhs: U16Vec4) -> U16Vec4
pub const fn saturating_mul(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the saturating multiplication of self
and rhs
.
In other words this computes [self.x.saturating_mul(rhs.x), self.y.saturating_mul(rhs.y), ..]
.
sourcepub const fn saturating_div(self, rhs: U16Vec4) -> U16Vec4
pub const fn saturating_div(self, rhs: U16Vec4) -> U16Vec4
Returns a vector containing the saturating division of self
and rhs
.
In other words this computes [self.x.saturating_div(rhs.x), self.y.saturating_div(rhs.y), ..]
.
sourcepub const fn wrapping_add_signed(self, rhs: I16Vec4) -> U16Vec4
pub const fn wrapping_add_signed(self, rhs: I16Vec4) -> U16Vec4
Returns a vector containing the wrapping addition of self
and signed vector rhs
.
In other words this computes [self.x.wrapping_add_signed(rhs.x), self.y.wrapping_add_signed(rhs.y), ..]
.
sourcepub const fn saturating_add_signed(self, rhs: I16Vec4) -> U16Vec4
pub const fn saturating_add_signed(self, rhs: I16Vec4) -> U16Vec4
Returns a vector containing the saturating addition of self
and signed vector rhs
.
In other words this computes [self.x.saturating_add_signed(rhs.x), self.y.saturating_add_signed(rhs.y), ..]
.
Trait Implementations§
source§impl AddAssign<&U16Vec4> for U16Vec4
impl AddAssign<&U16Vec4> for U16Vec4
source§fn add_assign(&mut self, rhs: &U16Vec4)
fn add_assign(&mut self, rhs: &U16Vec4)
+=
operation. Read moresource§impl AddAssign<&u16> for U16Vec4
impl AddAssign<&u16> for U16Vec4
source§fn add_assign(&mut self, rhs: &u16)
fn add_assign(&mut self, rhs: &u16)
+=
operation. Read moresource§impl AddAssign<u16> for U16Vec4
impl AddAssign<u16> for U16Vec4
source§fn add_assign(&mut self, rhs: u16)
fn add_assign(&mut self, rhs: u16)
+=
operation. Read moresource§impl AddAssign for U16Vec4
impl AddAssign for U16Vec4
source§fn add_assign(&mut self, rhs: U16Vec4)
fn add_assign(&mut self, rhs: U16Vec4)
+=
operation. Read moresource§impl<'de> Deserialize<'de> for U16Vec4
impl<'de> Deserialize<'de> for U16Vec4
Deserialize expects a sequence of 4 values.
source§fn deserialize<D>(
deserializer: D
) -> Result<U16Vec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<U16Vec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
source§impl DivAssign<&U16Vec4> for U16Vec4
impl DivAssign<&U16Vec4> for U16Vec4
source§fn div_assign(&mut self, rhs: &U16Vec4)
fn div_assign(&mut self, rhs: &U16Vec4)
/=
operation. Read moresource§impl DivAssign<&u16> for U16Vec4
impl DivAssign<&u16> for U16Vec4
source§fn div_assign(&mut self, rhs: &u16)
fn div_assign(&mut self, rhs: &u16)
/=
operation. Read moresource§impl DivAssign<u16> for U16Vec4
impl DivAssign<u16> for U16Vec4
source§fn div_assign(&mut self, rhs: u16)
fn div_assign(&mut self, rhs: u16)
/=
operation. Read moresource§impl DivAssign for U16Vec4
impl DivAssign for U16Vec4
source§fn div_assign(&mut self, rhs: U16Vec4)
fn div_assign(&mut self, rhs: U16Vec4)
/=
operation. Read moresource§impl MulAssign<&U16Vec4> for U16Vec4
impl MulAssign<&U16Vec4> for U16Vec4
source§fn mul_assign(&mut self, rhs: &U16Vec4)
fn mul_assign(&mut self, rhs: &U16Vec4)
*=
operation. Read moresource§impl MulAssign<&u16> for U16Vec4
impl MulAssign<&u16> for U16Vec4
source§fn mul_assign(&mut self, rhs: &u16)
fn mul_assign(&mut self, rhs: &u16)
*=
operation. Read moresource§impl MulAssign<u16> for U16Vec4
impl MulAssign<u16> for U16Vec4
source§fn mul_assign(&mut self, rhs: u16)
fn mul_assign(&mut self, rhs: u16)
*=
operation. Read moresource§impl MulAssign for U16Vec4
impl MulAssign for U16Vec4
source§fn mul_assign(&mut self, rhs: U16Vec4)
fn mul_assign(&mut self, rhs: U16Vec4)
*=
operation. Read moresource§impl PartialEq for U16Vec4
impl PartialEq for U16Vec4
source§impl RemAssign<&U16Vec4> for U16Vec4
impl RemAssign<&U16Vec4> for U16Vec4
source§fn rem_assign(&mut self, rhs: &U16Vec4)
fn rem_assign(&mut self, rhs: &U16Vec4)
%=
operation. Read moresource§impl RemAssign<&u16> for U16Vec4
impl RemAssign<&u16> for U16Vec4
source§fn rem_assign(&mut self, rhs: &u16)
fn rem_assign(&mut self, rhs: &u16)
%=
operation. Read moresource§impl RemAssign<u16> for U16Vec4
impl RemAssign<u16> for U16Vec4
source§fn rem_assign(&mut self, rhs: u16)
fn rem_assign(&mut self, rhs: u16)
%=
operation. Read moresource§impl RemAssign for U16Vec4
impl RemAssign for U16Vec4
source§fn rem_assign(&mut self, rhs: U16Vec4)
fn rem_assign(&mut self, rhs: U16Vec4)
%=
operation. Read moresource§impl Serialize for U16Vec4
impl Serialize for U16Vec4
Serialize as a sequence of 4 values.
source§fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
source§impl SubAssign<&U16Vec4> for U16Vec4
impl SubAssign<&U16Vec4> for U16Vec4
source§fn sub_assign(&mut self, rhs: &U16Vec4)
fn sub_assign(&mut self, rhs: &U16Vec4)
-=
operation. Read moresource§impl SubAssign<&u16> for U16Vec4
impl SubAssign<&u16> for U16Vec4
source§fn sub_assign(&mut self, rhs: &u16)
fn sub_assign(&mut self, rhs: &u16)
-=
operation. Read moresource§impl SubAssign<u16> for U16Vec4
impl SubAssign<u16> for U16Vec4
source§fn sub_assign(&mut self, rhs: u16)
fn sub_assign(&mut self, rhs: u16)
-=
operation. Read moresource§impl SubAssign for U16Vec4
impl SubAssign for U16Vec4
source§fn sub_assign(&mut self, rhs: U16Vec4)
fn sub_assign(&mut self, rhs: U16Vec4)
-=
operation. Read more