Struct valence_math::UVec4
source · #[repr(C)]pub struct UVec4 {
pub x: u32,
pub y: u32,
pub z: u32,
pub w: u32,
}
Expand description
A 4-dimensional vector.
Fields§
§x: u32
§y: u32
§z: u32
§w: u32
Implementations§
source§impl UVec4
impl UVec4
sourcepub const X: UVec4 = Self::new(1, 0, 0, 0)
pub const X: UVec4 = Self::new(1, 0, 0, 0)
A unit-length vector pointing along the positive X axis.
sourcepub const Y: UVec4 = Self::new(0, 1, 0, 0)
pub const Y: UVec4 = Self::new(0, 1, 0, 0)
A unit-length vector pointing along the positive Y axis.
sourcepub const Z: UVec4 = Self::new(0, 0, 1, 0)
pub const Z: UVec4 = Self::new(0, 0, 1, 0)
A unit-length vector pointing along the positive Z axis.
sourcepub const W: UVec4 = Self::new(0, 0, 0, 1)
pub const W: UVec4 = Self::new(0, 0, 0, 1)
A unit-length vector pointing along the positive W axis.
sourcepub fn select(mask: BVec4, if_true: UVec4, if_false: UVec4) -> UVec4
pub fn select(mask: BVec4, if_true: UVec4, if_false: UVec4) -> UVec4
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: [u32; 4]) -> UVec4
pub const fn from_array(a: [u32; 4]) -> UVec4
Creates a new vector from an array.
sourcepub const fn from_slice(slice: &[u32]) -> UVec4
pub const fn from_slice(slice: &[u32]) -> UVec4
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 [u32])
pub fn write_to_slice(self, slice: &mut [u32])
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) -> UVec3
pub fn truncate(self) -> UVec3
Creates a 2D vector from the x
, y
and z
elements of self
, discarding w
.
Truncation to UVec3
may also be performed by using self.xyz()
or UVec3::from()
.
sourcepub fn dot_into_vec(self, rhs: UVec4) -> UVec4
pub fn dot_into_vec(self, rhs: UVec4) -> UVec4
Returns a vector where every component is the dot product of self
and rhs
.
sourcepub fn min(self, rhs: UVec4) -> UVec4
pub fn min(self, rhs: UVec4) -> UVec4
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: UVec4) -> UVec4
pub fn max(self, rhs: UVec4) -> UVec4
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: UVec4, max: UVec4) -> UVec4
pub fn clamp(self, min: UVec4, max: UVec4) -> UVec4
Component-wise clamping of values, similar to u32::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) -> u32
pub fn min_element(self) -> u32
Returns the horizontal minimum of self
.
In other words this computes min(x, y, ..)
.
sourcepub fn max_element(self) -> u32
pub fn max_element(self) -> u32
Returns the horizontal maximum of self
.
In other words this computes max(x, y, ..)
.
sourcepub fn cmpeq(self, rhs: UVec4) -> BVec4
pub fn cmpeq(self, rhs: UVec4) -> 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: UVec4) -> BVec4
pub fn cmpne(self, rhs: UVec4) -> 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: UVec4) -> BVec4
pub fn cmpge(self, rhs: UVec4) -> 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: UVec4) -> BVec4
pub fn cmpgt(self, rhs: UVec4) -> 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: UVec4) -> BVec4
pub fn cmple(self, rhs: UVec4) -> 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.
Trait Implementations§
source§impl AddAssign<UVec4> for UVec4
impl AddAssign<UVec4> for UVec4
source§fn add_assign(&mut self, rhs: UVec4)
fn add_assign(&mut self, rhs: UVec4)
+=
operation. Read moresource§impl AddAssign<u32> for UVec4
impl AddAssign<u32> for UVec4
source§fn add_assign(&mut self, rhs: u32)
fn add_assign(&mut self, rhs: u32)
+=
operation. Read moresource§impl DivAssign<UVec4> for UVec4
impl DivAssign<UVec4> for UVec4
source§fn div_assign(&mut self, rhs: UVec4)
fn div_assign(&mut self, rhs: UVec4)
/=
operation. Read moresource§impl DivAssign<u32> for UVec4
impl DivAssign<u32> for UVec4
source§fn div_assign(&mut self, rhs: u32)
fn div_assign(&mut self, rhs: u32)
/=
operation. Read moresource§impl MulAssign<UVec4> for UVec4
impl MulAssign<UVec4> for UVec4
source§fn mul_assign(&mut self, rhs: UVec4)
fn mul_assign(&mut self, rhs: UVec4)
*=
operation. Read moresource§impl MulAssign<u32> for UVec4
impl MulAssign<u32> for UVec4
source§fn mul_assign(&mut self, rhs: u32)
fn mul_assign(&mut self, rhs: u32)
*=
operation. Read moresource§impl PartialEq<UVec4> for UVec4
impl PartialEq<UVec4> for UVec4
source§impl RemAssign<UVec4> for UVec4
impl RemAssign<UVec4> for UVec4
source§fn rem_assign(&mut self, rhs: UVec4)
fn rem_assign(&mut self, rhs: UVec4)
%=
operation. Read moresource§impl RemAssign<u32> for UVec4
impl RemAssign<u32> for UVec4
source§fn rem_assign(&mut self, rhs: u32)
fn rem_assign(&mut self, rhs: u32)
%=
operation. Read moresource§impl SubAssign<UVec4> for UVec4
impl SubAssign<UVec4> for UVec4
source§fn sub_assign(&mut self, rhs: UVec4)
fn sub_assign(&mut self, rhs: UVec4)
-=
operation. Read moresource§impl SubAssign<u32> for UVec4
impl SubAssign<u32> for UVec4
source§fn sub_assign(&mut self, rhs: u32)
fn sub_assign(&mut self, rhs: u32)
-=
operation. Read more