Struct valence_math::U16Vec3
source · #[repr(C)]pub struct U16Vec3 {
pub x: u16,
pub y: u16,
pub z: u16,
}
Expand description
A 3-dimensional vector.
Fields§
§x: u16
§y: u16
§z: u16
Implementations§
source§impl U16Vec3
impl U16Vec3
sourcepub fn map<F>(self, f: F) -> U16Vec3
pub fn map<F>(self, f: F) -> U16Vec3
Returns a vector containing each element of self
modified by a mapping function f
.
sourcepub fn select(mask: BVec3, if_true: U16Vec3, if_false: U16Vec3) -> U16Vec3
pub fn select(mask: BVec3, if_true: U16Vec3, if_false: U16Vec3) -> U16Vec3
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; 3]) -> U16Vec3
pub const fn from_array(a: [u16; 3]) -> U16Vec3
Creates a new vector from an array.
sourcepub const fn from_slice(slice: &[u16]) -> U16Vec3
pub const fn from_slice(slice: &[u16]) -> U16Vec3
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 [u16])
pub fn write_to_slice(self, slice: &mut [u16])
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) -> U16Vec2
pub fn truncate(self) -> U16Vec2
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 with_x(self, x: u16) -> U16Vec3
pub fn with_x(self, x: u16) -> U16Vec3
Creates a 3D vector from self
with the given value of x
.
sourcepub fn with_y(self, y: u16) -> U16Vec3
pub fn with_y(self, y: u16) -> U16Vec3
Creates a 3D vector from self
with the given value of y
.
sourcepub fn with_z(self, z: u16) -> U16Vec3
pub fn with_z(self, z: u16) -> U16Vec3
Creates a 3D vector from self
with the given value of z
.
sourcepub fn dot_into_vec(self, rhs: U16Vec3) -> U16Vec3
pub fn dot_into_vec(self, rhs: U16Vec3) -> U16Vec3
Returns a vector where every component is the dot product of self
and rhs
.
sourcepub fn min(self, rhs: U16Vec3) -> U16Vec3
pub fn min(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub fn max(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3, max: U16Vec3) -> U16Vec3
pub fn clamp(self, min: U16Vec3, max: U16Vec3) -> U16Vec3
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: U16Vec3) -> BVec3
pub fn cmpeq(self, rhs: U16Vec3) -> 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: U16Vec3) -> BVec3
pub fn cmpne(self, rhs: U16Vec3) -> 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: U16Vec3) -> BVec3
pub fn cmpge(self, rhs: U16Vec3) -> 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: U16Vec3) -> BVec3
pub fn cmpgt(self, rhs: U16Vec3) -> 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: U16Vec3) -> BVec3
pub fn cmple(self, rhs: U16Vec3) -> 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: U16Vec3) -> BVec3
pub fn cmplt(self, rhs: U16Vec3) -> 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) -> u16
pub fn length_squared(self) -> u16
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_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: U16Vec3) -> U16Vec3
pub const fn wrapping_add(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn wrapping_sub(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn wrapping_mul(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn wrapping_div(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn saturating_add(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn saturating_sub(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn saturating_mul(self, rhs: U16Vec3) -> U16Vec3
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: U16Vec3) -> U16Vec3
pub const fn saturating_div(self, rhs: U16Vec3) -> U16Vec3
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: I16Vec3) -> U16Vec3
pub const fn wrapping_add_signed(self, rhs: I16Vec3) -> U16Vec3
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: I16Vec3) -> U16Vec3
pub const fn saturating_add_signed(self, rhs: I16Vec3) -> U16Vec3
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<&U16Vec3> for U16Vec3
impl AddAssign<&U16Vec3> for U16Vec3
source§fn add_assign(&mut self, rhs: &U16Vec3)
fn add_assign(&mut self, rhs: &U16Vec3)
+=
operation. Read moresource§impl AddAssign<&u16> for U16Vec3
impl AddAssign<&u16> for U16Vec3
source§fn add_assign(&mut self, rhs: &u16)
fn add_assign(&mut self, rhs: &u16)
+=
operation. Read moresource§impl AddAssign<u16> for U16Vec3
impl AddAssign<u16> for U16Vec3
source§fn add_assign(&mut self, rhs: u16)
fn add_assign(&mut self, rhs: u16)
+=
operation. Read moresource§impl AddAssign for U16Vec3
impl AddAssign for U16Vec3
source§fn add_assign(&mut self, rhs: U16Vec3)
fn add_assign(&mut self, rhs: U16Vec3)
+=
operation. Read moresource§impl DivAssign<&U16Vec3> for U16Vec3
impl DivAssign<&U16Vec3> for U16Vec3
source§fn div_assign(&mut self, rhs: &U16Vec3)
fn div_assign(&mut self, rhs: &U16Vec3)
/=
operation. Read moresource§impl DivAssign<&u16> for U16Vec3
impl DivAssign<&u16> for U16Vec3
source§fn div_assign(&mut self, rhs: &u16)
fn div_assign(&mut self, rhs: &u16)
/=
operation. Read moresource§impl DivAssign<u16> for U16Vec3
impl DivAssign<u16> for U16Vec3
source§fn div_assign(&mut self, rhs: u16)
fn div_assign(&mut self, rhs: u16)
/=
operation. Read moresource§impl DivAssign for U16Vec3
impl DivAssign for U16Vec3
source§fn div_assign(&mut self, rhs: U16Vec3)
fn div_assign(&mut self, rhs: U16Vec3)
/=
operation. Read moresource§impl MulAssign<&U16Vec3> for U16Vec3
impl MulAssign<&U16Vec3> for U16Vec3
source§fn mul_assign(&mut self, rhs: &U16Vec3)
fn mul_assign(&mut self, rhs: &U16Vec3)
*=
operation. Read moresource§impl MulAssign<&u16> for U16Vec3
impl MulAssign<&u16> for U16Vec3
source§fn mul_assign(&mut self, rhs: &u16)
fn mul_assign(&mut self, rhs: &u16)
*=
operation. Read moresource§impl MulAssign<u16> for U16Vec3
impl MulAssign<u16> for U16Vec3
source§fn mul_assign(&mut self, rhs: u16)
fn mul_assign(&mut self, rhs: u16)
*=
operation. Read moresource§impl MulAssign for U16Vec3
impl MulAssign for U16Vec3
source§fn mul_assign(&mut self, rhs: U16Vec3)
fn mul_assign(&mut self, rhs: U16Vec3)
*=
operation. Read moresource§impl RemAssign<&U16Vec3> for U16Vec3
impl RemAssign<&U16Vec3> for U16Vec3
source§fn rem_assign(&mut self, rhs: &U16Vec3)
fn rem_assign(&mut self, rhs: &U16Vec3)
%=
operation. Read moresource§impl RemAssign<&u16> for U16Vec3
impl RemAssign<&u16> for U16Vec3
source§fn rem_assign(&mut self, rhs: &u16)
fn rem_assign(&mut self, rhs: &u16)
%=
operation. Read moresource§impl RemAssign<u16> for U16Vec3
impl RemAssign<u16> for U16Vec3
source§fn rem_assign(&mut self, rhs: u16)
fn rem_assign(&mut self, rhs: u16)
%=
operation. Read moresource§impl RemAssign for U16Vec3
impl RemAssign for U16Vec3
source§fn rem_assign(&mut self, rhs: U16Vec3)
fn rem_assign(&mut self, rhs: U16Vec3)
%=
operation. Read moresource§impl SubAssign<&U16Vec3> for U16Vec3
impl SubAssign<&U16Vec3> for U16Vec3
source§fn sub_assign(&mut self, rhs: &U16Vec3)
fn sub_assign(&mut self, rhs: &U16Vec3)
-=
operation. Read moresource§impl SubAssign<&u16> for U16Vec3
impl SubAssign<&u16> for U16Vec3
source§fn sub_assign(&mut self, rhs: &u16)
fn sub_assign(&mut self, rhs: &u16)
-=
operation. Read moresource§impl SubAssign<u16> for U16Vec3
impl SubAssign<u16> for U16Vec3
source§fn sub_assign(&mut self, rhs: u16)
fn sub_assign(&mut self, rhs: u16)
-=
operation. Read moresource§impl SubAssign for U16Vec3
impl SubAssign for U16Vec3
source§fn sub_assign(&mut self, rhs: U16Vec3)
fn sub_assign(&mut self, rhs: U16Vec3)
-=
operation. Read moresource§impl Vec3Swizzles for U16Vec3
impl Vec3Swizzles for U16Vec3
type Vec2 = U16Vec2
type Vec4 = U16Vec4
fn xx(self) -> U16Vec2
fn xy(self) -> U16Vec2
fn xz(self) -> U16Vec2
fn yx(self) -> U16Vec2
fn yy(self) -> U16Vec2
fn yz(self) -> U16Vec2
fn zx(self) -> U16Vec2
fn zy(self) -> U16Vec2
fn zz(self) -> U16Vec2
fn xxx(self) -> U16Vec3
fn xxy(self) -> U16Vec3
fn xxz(self) -> U16Vec3
fn xyx(self) -> U16Vec3
fn xyy(self) -> U16Vec3
fn xzx(self) -> U16Vec3
fn xzy(self) -> U16Vec3
fn xzz(self) -> U16Vec3
fn yxx(self) -> U16Vec3
fn yxy(self) -> U16Vec3
fn yxz(self) -> U16Vec3
fn yyx(self) -> U16Vec3
fn yyy(self) -> U16Vec3
fn yyz(self) -> U16Vec3
fn yzx(self) -> U16Vec3
fn yzy(self) -> U16Vec3
fn yzz(self) -> U16Vec3
fn zxx(self) -> U16Vec3
fn zxy(self) -> U16Vec3
fn zxz(self) -> U16Vec3
fn zyx(self) -> U16Vec3
fn zyy(self) -> U16Vec3
fn zyz(self) -> U16Vec3
fn zzx(self) -> U16Vec3
fn zzy(self) -> U16Vec3
fn zzz(self) -> U16Vec3
fn xxxx(self) -> U16Vec4
fn xxxy(self) -> U16Vec4
fn xxxz(self) -> U16Vec4
fn xxyx(self) -> U16Vec4
fn xxyy(self) -> U16Vec4
fn xxyz(self) -> U16Vec4
fn xxzx(self) -> U16Vec4
fn xxzy(self) -> U16Vec4
fn xxzz(self) -> U16Vec4
fn xyxx(self) -> U16Vec4
fn xyxy(self) -> U16Vec4
fn xyxz(self) -> U16Vec4
fn xyyx(self) -> U16Vec4
fn xyyy(self) -> U16Vec4
fn xyyz(self) -> U16Vec4
fn xyzx(self) -> U16Vec4
fn xyzy(self) -> U16Vec4
fn xyzz(self) -> U16Vec4
fn xzxx(self) -> U16Vec4
fn xzxy(self) -> U16Vec4
fn xzxz(self) -> U16Vec4
fn xzyx(self) -> U16Vec4
fn xzyy(self) -> U16Vec4
fn xzyz(self) -> U16Vec4
fn xzzx(self) -> U16Vec4
fn xzzy(self) -> U16Vec4
fn xzzz(self) -> U16Vec4
fn yxxx(self) -> U16Vec4
fn yxxy(self) -> U16Vec4
fn yxxz(self) -> U16Vec4
fn yxyx(self) -> U16Vec4
fn yxyy(self) -> U16Vec4
fn yxyz(self) -> U16Vec4
fn yxzx(self) -> U16Vec4
fn yxzy(self) -> U16Vec4
fn yxzz(self) -> U16Vec4
fn yyxx(self) -> U16Vec4
fn yyxy(self) -> U16Vec4
fn yyxz(self) -> U16Vec4
fn yyyx(self) -> U16Vec4
fn yyyy(self) -> U16Vec4
fn yyyz(self) -> U16Vec4
fn yyzx(self) -> U16Vec4
fn yyzy(self) -> U16Vec4
fn yyzz(self) -> U16Vec4
fn yzxx(self) -> U16Vec4
fn yzxy(self) -> U16Vec4
fn yzxz(self) -> U16Vec4
fn yzyx(self) -> U16Vec4
fn yzyy(self) -> U16Vec4
fn yzyz(self) -> U16Vec4
fn yzzx(self) -> U16Vec4
fn yzzy(self) -> U16Vec4
fn yzzz(self) -> U16Vec4
fn zxxx(self) -> U16Vec4
fn zxxy(self) -> U16Vec4
fn zxxz(self) -> U16Vec4
fn zxyx(self) -> U16Vec4
fn zxyy(self) -> U16Vec4
fn zxyz(self) -> U16Vec4
fn zxzx(self) -> U16Vec4
fn zxzy(self) -> U16Vec4
fn zxzz(self) -> U16Vec4
fn zyxx(self) -> U16Vec4
fn zyxy(self) -> U16Vec4
fn zyxz(self) -> U16Vec4
fn zyyx(self) -> U16Vec4
fn zyyy(self) -> U16Vec4
fn zyyz(self) -> U16Vec4
fn zyzx(self) -> U16Vec4
fn zyzy(self) -> U16Vec4
fn zyzz(self) -> U16Vec4
fn zzxx(self) -> U16Vec4
fn zzxy(self) -> U16Vec4
fn zzxz(self) -> U16Vec4
fn zzyx(self) -> U16Vec4
fn zzyy(self) -> U16Vec4
fn zzyz(self) -> U16Vec4
fn zzzx(self) -> U16Vec4
fn zzzy(self) -> U16Vec4
fn zzzz(self) -> U16Vec4
fn xyz(self) -> Self
impl Copy for U16Vec3
impl Eq for U16Vec3
impl StructuralPartialEq for U16Vec3
Auto Trait Implementations§
impl Freeze for U16Vec3
impl RefUnwindSafe for U16Vec3
impl Send for U16Vec3
impl Sync for U16Vec3
impl Unpin for U16Vec3
impl UnwindSafe for U16Vec3
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)