Struct ambient_api_core::global::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 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()
.
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.
sourcepub fn cmplt(self, rhs: UVec4) -> BVec4
pub fn cmplt(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 length_squared(self) -> u32
pub fn length_squared(self) -> u32
Computes the squared length of self
.
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
.
Trait Implementations§
source§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 AddAssign for UVec4
impl AddAssign for UVec4
source§fn add_assign(&mut self, rhs: UVec4)
fn add_assign(&mut self, rhs: UVec4)
+=
operation. Read moresource§impl<'de> Deserialize<'de> for UVec4
impl<'de> Deserialize<'de> for UVec4
source§fn deserialize<D>(
deserializer: D
) -> Result<UVec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<UVec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
source§impl Distribution<UVec4> for Standard
impl Distribution<UVec4> for Standard
source§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 DivAssign for UVec4
impl DivAssign for UVec4
source§fn div_assign(&mut self, rhs: UVec4)
fn div_assign(&mut self, rhs: UVec4)
/=
operation. Read moresource§impl MessageSerde for UVec4
impl MessageSerde for UVec4
source§fn serialize_message_part(
&self,
output: &mut Vec<u8>
) -> Result<(), MessageSerdeError>
fn serialize_message_part( &self, output: &mut Vec<u8> ) -> Result<(), MessageSerdeError>
Vec<u8>
.source§fn deserialize_message_part(
input: &mut dyn Read
) -> Result<UVec4, MessageSerdeError>
fn deserialize_message_part( input: &mut dyn Read ) -> Result<UVec4, MessageSerdeError>
source§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 MulAssign for UVec4
impl MulAssign for UVec4
source§fn mul_assign(&mut self, rhs: UVec4)
fn mul_assign(&mut self, rhs: UVec4)
*=
operation. Read moresource§impl PartialEq for UVec4
impl PartialEq for UVec4
source§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 RemAssign for UVec4
impl RemAssign for UVec4
source§fn rem_assign(&mut self, rhs: UVec4)
fn rem_assign(&mut self, rhs: UVec4)
%=
operation. Read moresource§impl Serialize for UVec4
impl Serialize for UVec4
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<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 moresource§impl SubAssign for UVec4
impl SubAssign for UVec4
source§fn sub_assign(&mut self, rhs: UVec4)
fn sub_assign(&mut self, rhs: UVec4)
-=
operation. Read moresource§impl SupportedValue for UVec4
impl SupportedValue for UVec4
source§fn from_value(value: ComponentValue) -> Option<Self>
fn from_value(value: ComponentValue) -> Option<Self>
ComponentValue
into a Self
.source§fn into_value(self) -> ComponentValue
fn into_value(self) -> ComponentValue
Self
into a ComponentValue
.source§impl Vec4Swizzles for UVec4
impl Vec4Swizzles for UVec4
type Vec2 = UVec2
type Vec3 = UVec3
fn xx(self) -> UVec2
fn xy(self) -> UVec2
fn xz(self) -> UVec2
fn xw(self) -> UVec2
fn yx(self) -> UVec2
fn yy(self) -> UVec2
fn yz(self) -> UVec2
fn yw(self) -> UVec2
fn zx(self) -> UVec2
fn zy(self) -> UVec2
fn zz(self) -> UVec2
fn zw(self) -> UVec2
fn wx(self) -> UVec2
fn wy(self) -> UVec2
fn wz(self) -> UVec2
fn ww(self) -> UVec2
fn xxx(self) -> UVec3
fn xxy(self) -> UVec3
fn xxz(self) -> UVec3
fn xxw(self) -> UVec3
fn xyx(self) -> UVec3
fn xyy(self) -> UVec3
fn xyz(self) -> UVec3
fn xyw(self) -> UVec3
fn xzx(self) -> UVec3
fn xzy(self) -> UVec3
fn xzz(self) -> UVec3
fn xzw(self) -> UVec3
fn xwx(self) -> UVec3
fn xwy(self) -> UVec3
fn xwz(self) -> UVec3
fn xww(self) -> UVec3
fn yxx(self) -> UVec3
fn yxy(self) -> UVec3
fn yxz(self) -> UVec3
fn yxw(self) -> UVec3
fn yyx(self) -> UVec3
fn yyy(self) -> UVec3
fn yyz(self) -> UVec3
fn yyw(self) -> UVec3
fn yzx(self) -> UVec3
fn yzy(self) -> UVec3
fn yzz(self) -> UVec3
fn yzw(self) -> UVec3
fn ywx(self) -> UVec3
fn ywy(self) -> UVec3
fn ywz(self) -> UVec3
fn yww(self) -> UVec3
fn zxx(self) -> UVec3
fn zxy(self) -> UVec3
fn zxz(self) -> UVec3
fn zxw(self) -> UVec3
fn zyx(self) -> UVec3
fn zyy(self) -> UVec3
fn zyz(self) -> UVec3
fn zyw(self) -> UVec3
fn zzx(self) -> UVec3
fn zzy(self) -> UVec3
fn zzz(self) -> UVec3
fn zzw(self) -> UVec3
fn zwx(self) -> UVec3
fn zwy(self) -> UVec3
fn zwz(self) -> UVec3
fn zww(self) -> UVec3
fn wxx(self) -> UVec3
fn wxy(self) -> UVec3
fn wxz(self) -> UVec3
fn wxw(self) -> UVec3
fn wyx(self) -> UVec3
fn wyy(self) -> UVec3
fn wyz(self) -> UVec3
fn wyw(self) -> UVec3
fn wzx(self) -> UVec3
fn wzy(self) -> UVec3
fn wzz(self) -> UVec3
fn wzw(self) -> UVec3
fn wwx(self) -> UVec3
fn wwy(self) -> UVec3
fn wwz(self) -> UVec3
fn www(self) -> UVec3
fn xxxx(self) -> UVec4
fn xxxy(self) -> UVec4
fn xxxz(self) -> UVec4
fn xxxw(self) -> UVec4
fn xxyx(self) -> UVec4
fn xxyy(self) -> UVec4
fn xxyz(self) -> UVec4
fn xxyw(self) -> UVec4
fn xxzx(self) -> UVec4
fn xxzy(self) -> UVec4
fn xxzz(self) -> UVec4
fn xxzw(self) -> UVec4
fn xxwx(self) -> UVec4
fn xxwy(self) -> UVec4
fn xxwz(self) -> UVec4
fn xxww(self) -> UVec4
fn xyxx(self) -> UVec4
fn xyxy(self) -> UVec4
fn xyxz(self) -> UVec4
fn xyxw(self) -> UVec4
fn xyyx(self) -> UVec4
fn xyyy(self) -> UVec4
fn xyyz(self) -> UVec4
fn xyyw(self) -> UVec4
fn xyzx(self) -> UVec4
fn xyzy(self) -> UVec4
fn xyzz(self) -> UVec4
fn xyzw(self) -> UVec4
fn xywx(self) -> UVec4
fn xywy(self) -> UVec4
fn xywz(self) -> UVec4
fn xyww(self) -> UVec4
fn xzxx(self) -> UVec4
fn xzxy(self) -> UVec4
fn xzxz(self) -> UVec4
fn xzxw(self) -> UVec4
fn xzyx(self) -> UVec4
fn xzyy(self) -> UVec4
fn xzyz(self) -> UVec4
fn xzyw(self) -> UVec4
fn xzzx(self) -> UVec4
fn xzzy(self) -> UVec4
fn xzzz(self) -> UVec4
fn xzzw(self) -> UVec4
fn xzwx(self) -> UVec4
fn xzwy(self) -> UVec4
fn xzwz(self) -> UVec4
fn xzww(self) -> UVec4
fn xwxx(self) -> UVec4
fn xwxy(self) -> UVec4
fn xwxz(self) -> UVec4
fn xwxw(self) -> UVec4
fn xwyx(self) -> UVec4
fn xwyy(self) -> UVec4
fn xwyz(self) -> UVec4
fn xwyw(self) -> UVec4
fn xwzx(self) -> UVec4
fn xwzy(self) -> UVec4
fn xwzz(self) -> UVec4
fn xwzw(self) -> UVec4
fn xwwx(self) -> UVec4
fn xwwy(self) -> UVec4
fn xwwz(self) -> UVec4
fn xwww(self) -> UVec4
fn yxxx(self) -> UVec4
fn yxxy(self) -> UVec4
fn yxxz(self) -> UVec4
fn yxxw(self) -> UVec4
fn yxyx(self) -> UVec4
fn yxyy(self) -> UVec4
fn yxyz(self) -> UVec4
fn yxyw(self) -> UVec4
fn yxzx(self) -> UVec4
fn yxzy(self) -> UVec4
fn yxzz(self) -> UVec4
fn yxzw(self) -> UVec4
fn yxwx(self) -> UVec4
fn yxwy(self) -> UVec4
fn yxwz(self) -> UVec4
fn yxww(self) -> UVec4
fn yyxx(self) -> UVec4
fn yyxy(self) -> UVec4
fn yyxz(self) -> UVec4
fn yyxw(self) -> UVec4
fn yyyx(self) -> UVec4
fn yyyy(self) -> UVec4
fn yyyz(self) -> UVec4
fn yyyw(self) -> UVec4
fn yyzx(self) -> UVec4
fn yyzy(self) -> UVec4
fn yyzz(self) -> UVec4
fn yyzw(self) -> UVec4
fn yywx(self) -> UVec4
fn yywy(self) -> UVec4
fn yywz(self) -> UVec4
fn yyww(self) -> UVec4
fn yzxx(self) -> UVec4
fn yzxy(self) -> UVec4
fn yzxz(self) -> UVec4
fn yzxw(self) -> UVec4
fn yzyx(self) -> UVec4
fn yzyy(self) -> UVec4
fn yzyz(self) -> UVec4
fn yzyw(self) -> UVec4
fn yzzx(self) -> UVec4
fn yzzy(self) -> UVec4
fn yzzz(self) -> UVec4
fn yzzw(self) -> UVec4
fn yzwx(self) -> UVec4
fn yzwy(self) -> UVec4
fn yzwz(self) -> UVec4
fn yzww(self) -> UVec4
fn ywxx(self) -> UVec4
fn ywxy(self) -> UVec4
fn ywxz(self) -> UVec4
fn ywxw(self) -> UVec4
fn ywyx(self) -> UVec4
fn ywyy(self) -> UVec4
fn ywyz(self) -> UVec4
fn ywyw(self) -> UVec4
fn ywzx(self) -> UVec4
fn ywzy(self) -> UVec4
fn ywzz(self) -> UVec4
fn ywzw(self) -> UVec4
fn ywwx(self) -> UVec4
fn ywwy(self) -> UVec4
fn ywwz(self) -> UVec4
fn ywww(self) -> UVec4
fn zxxx(self) -> UVec4
fn zxxy(self) -> UVec4
fn zxxz(self) -> UVec4
fn zxxw(self) -> UVec4
fn zxyx(self) -> UVec4
fn zxyy(self) -> UVec4
fn zxyz(self) -> UVec4
fn zxyw(self) -> UVec4
fn zxzx(self) -> UVec4
fn zxzy(self) -> UVec4
fn zxzz(self) -> UVec4
fn zxzw(self) -> UVec4
fn zxwx(self) -> UVec4
fn zxwy(self) -> UVec4
fn zxwz(self) -> UVec4
fn zxww(self) -> UVec4
fn zyxx(self) -> UVec4
fn zyxy(self) -> UVec4
fn zyxz(self) -> UVec4
fn zyxw(self) -> UVec4
fn zyyx(self) -> UVec4
fn zyyy(self) -> UVec4
fn zyyz(self) -> UVec4
fn zyyw(self) -> UVec4
fn zyzx(self) -> UVec4
fn zyzy(self) -> UVec4
fn zyzz(self) -> UVec4
fn zyzw(self) -> UVec4
fn zywx(self) -> UVec4
fn zywy(self) -> UVec4
fn zywz(self) -> UVec4
fn zyww(self) -> UVec4
fn zzxx(self) -> UVec4
fn zzxy(self) -> UVec4
fn zzxz(self) -> UVec4
fn zzxw(self) -> UVec4
fn zzyx(self) -> UVec4
fn zzyy(self) -> UVec4
fn zzyz(self) -> UVec4
fn zzyw(self) -> UVec4
fn zzzx(self) -> UVec4
fn zzzy(self) -> UVec4
fn zzzz(self) -> UVec4
fn zzzw(self) -> UVec4
fn zzwx(self) -> UVec4
fn zzwy(self) -> UVec4
fn zzwz(self) -> UVec4
fn zzww(self) -> UVec4
fn zwxx(self) -> UVec4
fn zwxy(self) -> UVec4
fn zwxz(self) -> UVec4
fn zwxw(self) -> UVec4
fn zwyx(self) -> UVec4
fn zwyy(self) -> UVec4
fn zwyz(self) -> UVec4
fn zwyw(self) -> UVec4
fn zwzx(self) -> UVec4
fn zwzy(self) -> UVec4
fn zwzz(self) -> UVec4
fn zwzw(self) -> UVec4
fn zwwx(self) -> UVec4
fn zwwy(self) -> UVec4
fn zwwz(self) -> UVec4
fn zwww(self) -> UVec4
fn wxxx(self) -> UVec4
fn wxxy(self) -> UVec4
fn wxxz(self) -> UVec4
fn wxxw(self) -> UVec4
fn wxyx(self) -> UVec4
fn wxyy(self) -> UVec4
fn wxyz(self) -> UVec4
fn wxyw(self) -> UVec4
fn wxzx(self) -> UVec4
fn wxzy(self) -> UVec4
fn wxzz(self) -> UVec4
fn wxzw(self) -> UVec4
fn wxwx(self) -> UVec4
fn wxwy(self) -> UVec4
fn wxwz(self) -> UVec4
fn wxww(self) -> UVec4
fn wyxx(self) -> UVec4
fn wyxy(self) -> UVec4
fn wyxz(self) -> UVec4
fn wyxw(self) -> UVec4
fn wyyx(self) -> UVec4
fn wyyy(self) -> UVec4
fn wyyz(self) -> UVec4
fn wyyw(self) -> UVec4
fn wyzx(self) -> UVec4
fn wyzy(self) -> UVec4
fn wyzz(self) -> UVec4
fn wyzw(self) -> UVec4
fn wywx(self) -> UVec4
fn wywy(self) -> UVec4
fn wywz(self) -> UVec4
fn wyww(self) -> UVec4
fn wzxx(self) -> UVec4
fn wzxy(self) -> UVec4
fn wzxz(self) -> UVec4
fn wzxw(self) -> UVec4
fn wzyx(self) -> UVec4
fn wzyy(self) -> UVec4
fn wzyz(self) -> UVec4
fn wzyw(self) -> UVec4
fn wzzx(self) -> UVec4
fn wzzy(self) -> UVec4
fn wzzz(self) -> UVec4
fn wzzw(self) -> UVec4
fn wzwx(self) -> UVec4
fn wzwy(self) -> UVec4
fn wzwz(self) -> UVec4
fn wzww(self) -> UVec4
fn wwxx(self) -> UVec4
fn wwxy(self) -> UVec4
fn wwxz(self) -> UVec4
fn wwxw(self) -> UVec4
fn wwyx(self) -> UVec4
fn wwyy(self) -> UVec4
fn wwyz(self) -> UVec4
fn wwyw(self) -> UVec4
fn wwzx(self) -> UVec4
fn wwzy(self) -> UVec4
fn wwzz(self) -> UVec4
fn wwzw(self) -> UVec4
fn wwwx(self) -> UVec4
fn wwwy(self) -> UVec4
fn wwwz(self) -> UVec4
fn wwww(self) -> UVec4
impl Copy for UVec4
impl Eq for UVec4
impl Pod for UVec4
impl StructuralEq for UVec4
impl StructuralPartialEq for UVec4
Auto Trait Implementations§
impl RefUnwindSafe for UVec4
impl Send for UVec4
impl Sync for UVec4
impl Unpin for UVec4
impl UnwindSafe for UVec4
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> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
§type Bits = T
type Bits = T
Self
must have the same layout as the specified Bits
except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern
.source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self
.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.