Struct lotus_script::math::U8Vec3
source · #[repr(C)]pub struct U8Vec3 {
pub x: u8,
pub y: u8,
pub z: u8,
}Expand description
A 3-dimensional vector.
Fields§
§x: u8§y: u8§z: u8Implementations§
source§impl U8Vec3
impl U8Vec3
sourcepub fn map<F>(self, f: F) -> U8Vec3
pub fn map<F>(self, f: F) -> U8Vec3
Returns a vector containing each element of self modified by a mapping function f.
sourcepub fn select(mask: BVec3, if_true: U8Vec3, if_false: U8Vec3) -> U8Vec3
pub fn select(mask: BVec3, if_true: U8Vec3, if_false: U8Vec3) -> U8Vec3
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: [u8; 3]) -> U8Vec3
pub const fn from_array(a: [u8; 3]) -> U8Vec3
Creates a new vector from an array.
sourcepub const fn from_slice(slice: &[u8]) -> U8Vec3
pub const fn from_slice(slice: &[u8]) -> U8Vec3
Creates a vector from the first 3 values in slice.
§Panics
Panics if slice is less than 3 elements long.
sourcepub fn write_to_slice(self, slice: &mut [u8])
pub fn write_to_slice(self, slice: &mut [u8])
Writes the elements of self to the first 3 elements in slice.
§Panics
Panics if slice is less than 3 elements long.
sourcepub fn truncate(self) -> U8Vec2
pub fn truncate(self) -> U8Vec2
Creates a 2D vector from the x and y elements of self, discarding z.
Truncation may also be performed by using self.xy().
sourcepub fn dot_into_vec(self, rhs: U8Vec3) -> U8Vec3
pub fn dot_into_vec(self, rhs: U8Vec3) -> U8Vec3
Returns a vector where every component is the dot product of self and rhs.
sourcepub fn min(self, rhs: U8Vec3) -> U8Vec3
pub fn min(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub fn max(self, rhs: U8Vec3) -> U8Vec3
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 min_element(self) -> u8
pub fn min_element(self) -> u8
Returns the horizontal minimum of self.
In other words this computes min(x, y, ..).
sourcepub fn max_element(self) -> u8
pub fn max_element(self) -> u8
Returns the horizontal maximum of self.
In other words this computes max(x, y, ..).
sourcepub fn element_sum(self) -> u8
pub fn element_sum(self) -> u8
Returns the sum of all elements of self.
In other words, this computes self.x + self.y + ...
sourcepub fn element_product(self) -> u8
pub fn element_product(self) -> u8
Returns the product of all elements of self.
In other words, this computes self.x * self.y * ...
sourcepub fn cmpeq(self, rhs: U8Vec3) -> BVec3
pub fn cmpeq(self, rhs: U8Vec3) -> BVec3
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: U8Vec3) -> BVec3
pub fn cmpne(self, rhs: U8Vec3) -> BVec3
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: U8Vec3) -> BVec3
pub fn cmpge(self, rhs: U8Vec3) -> BVec3
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: U8Vec3) -> BVec3
pub fn cmpgt(self, rhs: U8Vec3) -> BVec3
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: U8Vec3) -> BVec3
pub fn cmple(self, rhs: U8Vec3) -> BVec3
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: U8Vec3) -> BVec3
pub fn cmplt(self, rhs: U8Vec3) -> BVec3
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) -> u8
pub fn length_squared(self) -> u8
Computes the squared length of self.
sourcepub fn as_i16vec3(&self) -> I16Vec3
pub fn as_i16vec3(&self) -> I16Vec3
Casts all elements of self to i16.
sourcepub fn as_u16vec3(&self) -> U16Vec3
pub fn as_u16vec3(&self) -> U16Vec3
Casts all elements of self to u16.
sourcepub fn as_i64vec3(&self) -> I64Vec3
pub fn as_i64vec3(&self) -> I64Vec3
Casts all elements of self to i64.
sourcepub fn as_u64vec3(&self) -> U64Vec3
pub fn as_u64vec3(&self) -> U64Vec3
Casts all elements of self to u64.
sourcepub const fn wrapping_add(self, rhs: U8Vec3) -> U8Vec3
pub const fn wrapping_add(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn wrapping_sub(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn wrapping_mul(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn wrapping_div(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn saturating_add(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn saturating_sub(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn saturating_mul(self, rhs: U8Vec3) -> U8Vec3
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: U8Vec3) -> U8Vec3
pub const fn saturating_div(self, rhs: U8Vec3) -> U8Vec3
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: I8Vec3) -> U8Vec3
pub const fn wrapping_add_signed(self, rhs: I8Vec3) -> U8Vec3
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: I8Vec3) -> U8Vec3
pub const fn saturating_add_signed(self, rhs: I8Vec3) -> U8Vec3
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<&U8Vec3> for U8Vec3
impl AddAssign<&U8Vec3> for U8Vec3
source§fn add_assign(&mut self, rhs: &U8Vec3)
fn add_assign(&mut self, rhs: &U8Vec3)
+= operation. Read moresource§impl AddAssign<&u8> for U8Vec3
impl AddAssign<&u8> for U8Vec3
source§fn add_assign(&mut self, rhs: &u8)
fn add_assign(&mut self, rhs: &u8)
+= operation. Read moresource§impl AddAssign<u8> for U8Vec3
impl AddAssign<u8> for U8Vec3
source§fn add_assign(&mut self, rhs: u8)
fn add_assign(&mut self, rhs: u8)
+= operation. Read moresource§impl AddAssign for U8Vec3
impl AddAssign for U8Vec3
source§fn add_assign(&mut self, rhs: U8Vec3)
fn add_assign(&mut self, rhs: U8Vec3)
+= operation. Read moresource§impl<'de> Deserialize<'de> for U8Vec3
impl<'de> Deserialize<'de> for U8Vec3
Deserialize expects a sequence of 3 values.
source§fn deserialize<D>(
deserializer: D
) -> Result<U8Vec3, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<U8Vec3, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
source§impl DivAssign<&U8Vec3> for U8Vec3
impl DivAssign<&U8Vec3> for U8Vec3
source§fn div_assign(&mut self, rhs: &U8Vec3)
fn div_assign(&mut self, rhs: &U8Vec3)
/= operation. Read moresource§impl DivAssign<&u8> for U8Vec3
impl DivAssign<&u8> for U8Vec3
source§fn div_assign(&mut self, rhs: &u8)
fn div_assign(&mut self, rhs: &u8)
/= operation. Read moresource§impl DivAssign<u8> for U8Vec3
impl DivAssign<u8> for U8Vec3
source§fn div_assign(&mut self, rhs: u8)
fn div_assign(&mut self, rhs: u8)
/= operation. Read moresource§impl DivAssign for U8Vec3
impl DivAssign for U8Vec3
source§fn div_assign(&mut self, rhs: U8Vec3)
fn div_assign(&mut self, rhs: U8Vec3)
/= operation. Read moresource§impl MulAssign<&U8Vec3> for U8Vec3
impl MulAssign<&U8Vec3> for U8Vec3
source§fn mul_assign(&mut self, rhs: &U8Vec3)
fn mul_assign(&mut self, rhs: &U8Vec3)
*= operation. Read moresource§impl MulAssign<&u8> for U8Vec3
impl MulAssign<&u8> for U8Vec3
source§fn mul_assign(&mut self, rhs: &u8)
fn mul_assign(&mut self, rhs: &u8)
*= operation. Read moresource§impl MulAssign<u8> for U8Vec3
impl MulAssign<u8> for U8Vec3
source§fn mul_assign(&mut self, rhs: u8)
fn mul_assign(&mut self, rhs: u8)
*= operation. Read moresource§impl MulAssign for U8Vec3
impl MulAssign for U8Vec3
source§fn mul_assign(&mut self, rhs: U8Vec3)
fn mul_assign(&mut self, rhs: U8Vec3)
*= operation. Read moresource§impl PartialEq for U8Vec3
impl PartialEq for U8Vec3
source§impl RemAssign<&U8Vec3> for U8Vec3
impl RemAssign<&U8Vec3> for U8Vec3
source§fn rem_assign(&mut self, rhs: &U8Vec3)
fn rem_assign(&mut self, rhs: &U8Vec3)
%= operation. Read moresource§impl RemAssign<&u8> for U8Vec3
impl RemAssign<&u8> for U8Vec3
source§fn rem_assign(&mut self, rhs: &u8)
fn rem_assign(&mut self, rhs: &u8)
%= operation. Read moresource§impl RemAssign<u8> for U8Vec3
impl RemAssign<u8> for U8Vec3
source§fn rem_assign(&mut self, rhs: u8)
fn rem_assign(&mut self, rhs: u8)
%= operation. Read moresource§impl RemAssign for U8Vec3
impl RemAssign for U8Vec3
source§fn rem_assign(&mut self, rhs: U8Vec3)
fn rem_assign(&mut self, rhs: U8Vec3)
%= operation. Read moresource§impl Serialize for U8Vec3
impl Serialize for U8Vec3
Serialize as a sequence of 3 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<&U8Vec3> for U8Vec3
impl SubAssign<&U8Vec3> for U8Vec3
source§fn sub_assign(&mut self, rhs: &U8Vec3)
fn sub_assign(&mut self, rhs: &U8Vec3)
-= operation. Read moresource§impl SubAssign<&u8> for U8Vec3
impl SubAssign<&u8> for U8Vec3
source§fn sub_assign(&mut self, rhs: &u8)
fn sub_assign(&mut self, rhs: &u8)
-= operation. Read moresource§impl SubAssign<u8> for U8Vec3
impl SubAssign<u8> for U8Vec3
source§fn sub_assign(&mut self, rhs: u8)
fn sub_assign(&mut self, rhs: u8)
-= operation. Read moresource§impl SubAssign for U8Vec3
impl SubAssign for U8Vec3
source§fn sub_assign(&mut self, rhs: U8Vec3)
fn sub_assign(&mut self, rhs: U8Vec3)
-= operation. Read more