pub struct Vec4(/* private fields */);
Expand description
A 4-dimensional vector.
SIMD vector types are used for storage on supported platforms.
This type is 16 byte aligned.
Implementations§
source§impl Vec4
impl Vec4
sourcepub const NEG_INFINITY: Vec4 = _
pub const NEG_INFINITY: Vec4 = _
All f32::NEG_INFINITY
.
sourcepub fn select(mask: BVec4A, if_true: Vec4, if_false: Vec4) -> Vec4
pub fn select(mask: BVec4A, if_true: Vec4, if_false: Vec4) -> Vec4
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: [f32; 4]) -> Vec4
pub const fn from_array(a: [f32; 4]) -> Vec4
Creates a new vector from an array.
sourcepub const fn from_slice(slice: &[f32]) -> Vec4
pub const fn from_slice(slice: &[f32]) -> Vec4
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 [f32])
pub fn write_to_slice(self, slice: &mut [f32])
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) -> Vec3
pub fn truncate(self) -> Vec3
Creates a 3D vector from the x
, y
and z
elements of self
, discarding w
.
Truncation to Vec3
may also be performed by using self.xyz()
.
To truncate to Vec3A
use Vec3A::from()
.
sourcepub fn dot_into_vec(self, rhs: Vec4) -> Vec4
pub fn dot_into_vec(self, rhs: Vec4) -> Vec4
Returns a vector where every component is the dot product of self
and rhs
.
sourcepub fn min(self, rhs: Vec4) -> Vec4
pub fn min(self, rhs: Vec4) -> Vec4
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: Vec4) -> Vec4
pub fn max(self, rhs: Vec4) -> Vec4
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: Vec4, max: Vec4) -> Vec4
pub fn clamp(self, min: Vec4, max: Vec4) -> Vec4
Component-wise clamping of values, similar to f32::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) -> f32
pub fn min_element(self) -> f32
Returns the horizontal minimum of self
.
In other words this computes min(x, y, ..)
.
sourcepub fn max_element(self) -> f32
pub fn max_element(self) -> f32
Returns the horizontal maximum of self
.
In other words this computes max(x, y, ..)
.
sourcepub fn cmpeq(self, rhs: Vec4) -> BVec4A
pub fn cmpeq(self, rhs: Vec4) -> BVec4A
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: Vec4) -> BVec4A
pub fn cmpne(self, rhs: Vec4) -> BVec4A
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: Vec4) -> BVec4A
pub fn cmpge(self, rhs: Vec4) -> BVec4A
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: Vec4) -> BVec4A
pub fn cmpgt(self, rhs: Vec4) -> BVec4A
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: Vec4) -> BVec4A
pub fn cmple(self, rhs: Vec4) -> BVec4A
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: Vec4) -> BVec4A
pub fn cmplt(self, rhs: Vec4) -> BVec4A
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 abs(self) -> Vec4
pub fn abs(self) -> Vec4
Returns a vector containing the absolute value of each element of self
.
sourcepub fn signum(self) -> Vec4
pub fn signum(self) -> Vec4
Returns a vector with elements representing the sign of self
.
1.0
if the number is positive,+0.0
orINFINITY
-1.0
if the number is negative,-0.0
orNEG_INFINITY
NAN
if the number isNAN
sourcepub fn copysign(self, rhs: Vec4) -> Vec4
pub fn copysign(self, rhs: Vec4) -> Vec4
Returns a vector with signs of rhs
and the magnitudes of self
.
sourcepub fn is_negative_bitmask(self) -> u32
pub fn is_negative_bitmask(self) -> u32
Returns a bitmask with the lowest 4 bits set to the sign bits from the elements of self
.
A negative element results in a 1
bit and a positive element in a 0
bit. Element x
goes
into the first lowest bit, element y
into the second, etc.
sourcepub fn is_finite(self) -> bool
pub fn is_finite(self) -> bool
Returns true
if, and only if, all elements are finite. If any element is either
NaN
, positive or negative infinity, this will return false
.
sourcepub fn is_nan_mask(self) -> BVec4A
pub fn is_nan_mask(self) -> BVec4A
Performs is_nan
on each element of self, returning a vector mask of the results.
In other words, this computes [x.is_nan(), y.is_nan(), z.is_nan(), w.is_nan()]
.
sourcepub fn length_squared(self) -> f32
pub fn length_squared(self) -> f32
Computes the squared length of self
.
This is faster than length()
as it avoids a square root operation.
sourcepub fn length_recip(self) -> f32
pub fn length_recip(self) -> f32
Computes 1.0 / length()
.
For valid results, self
must not be of length zero.
sourcepub fn distance(self, rhs: Vec4) -> f32
pub fn distance(self, rhs: Vec4) -> f32
Computes the Euclidean distance between two points in space.
sourcepub fn distance_squared(self, rhs: Vec4) -> f32
pub fn distance_squared(self, rhs: Vec4) -> f32
Compute the squared euclidean distance between two points in space.
sourcepub fn div_euclid(self, rhs: Vec4) -> Vec4
pub fn div_euclid(self, rhs: Vec4) -> Vec4
Returns the element-wise quotient of [Euclidean division] of self
by rhs
.
sourcepub fn rem_euclid(self, rhs: Vec4) -> Vec4
pub fn rem_euclid(self, rhs: Vec4) -> Vec4
Returns the element-wise remainder of Euclidean division of self
by rhs
.
sourcepub fn normalize(self) -> Vec4
pub fn normalize(self) -> Vec4
Returns self
normalized to length 1.0.
For valid results, self
must not be of length zero, nor very close to zero.
See also Self::try_normalize()
and Self::normalize_or_zero()
.
Panics
Will panic if self
is zero length when glam_assert
is enabled.
sourcepub fn try_normalize(self) -> Option<Vec4>
pub fn try_normalize(self) -> Option<Vec4>
Returns self
normalized to length 1.0 if possible, else returns None
.
In particular, if the input is zero (or very close to zero), or non-finite,
the result of this operation will be None
.
See also Self::normalize_or_zero()
.
sourcepub fn normalize_or_zero(self) -> Vec4
pub fn normalize_or_zero(self) -> Vec4
Returns self
normalized to length 1.0 if possible, else returns zero.
In particular, if the input is zero (or very close to zero), or non-finite, the result of this operation will be zero.
See also Self::try_normalize()
.
sourcepub fn is_normalized(self) -> bool
pub fn is_normalized(self) -> bool
Returns whether self
is length 1.0
or not.
Uses a precision threshold of 1e-6
.
sourcepub fn project_onto(self, rhs: Vec4) -> Vec4
pub fn project_onto(self, rhs: Vec4) -> Vec4
Returns the vector projection of self
onto rhs
.
rhs
must be of non-zero length.
Panics
Will panic if rhs
is zero length when glam_assert
is enabled.
sourcepub fn reject_from(self, rhs: Vec4) -> Vec4
pub fn reject_from(self, rhs: Vec4) -> Vec4
Returns the vector rejection of self
from rhs
.
The vector rejection is the vector perpendicular to the projection of self
onto
rhs
, in rhs words the result of self - self.project_onto(rhs)
.
rhs
must be of non-zero length.
Panics
Will panic if rhs
has a length of zero when glam_assert
is enabled.
sourcepub fn project_onto_normalized(self, rhs: Vec4) -> Vec4
pub fn project_onto_normalized(self, rhs: Vec4) -> Vec4
Returns the vector projection of self
onto rhs
.
rhs
must be normalized.
Panics
Will panic if rhs
is not normalized when glam_assert
is enabled.
sourcepub fn reject_from_normalized(self, rhs: Vec4) -> Vec4
pub fn reject_from_normalized(self, rhs: Vec4) -> Vec4
Returns the vector rejection of self
from rhs
.
The vector rejection is the vector perpendicular to the projection of self
onto
rhs
, in rhs words the result of self - self.project_onto(rhs)
.
rhs
must be normalized.
Panics
Will panic if rhs
is not normalized when glam_assert
is enabled.
sourcepub fn round(self) -> Vec4
pub fn round(self) -> Vec4
Returns a vector containing the nearest integer to a number for each element of self
.
Round half-way cases away from 0.0.
sourcepub fn floor(self) -> Vec4
pub fn floor(self) -> Vec4
Returns a vector containing the largest integer less than or equal to a number for each
element of self
.
sourcepub fn ceil(self) -> Vec4
pub fn ceil(self) -> Vec4
Returns a vector containing the smallest integer greater than or equal to a number for
each element of self
.
sourcepub fn trunc(self) -> Vec4
pub fn trunc(self) -> Vec4
Returns a vector containing the integer part each element of self
. This means numbers are
always truncated towards zero.
sourcepub fn fract(self) -> Vec4
pub fn fract(self) -> Vec4
Returns a vector containing the fractional part of the vector, e.g. self - self.floor()
.
Note that this is fast but not precise for large numbers.
sourcepub fn exp(self) -> Vec4
pub fn exp(self) -> Vec4
Returns a vector containing e^self
(the exponential function) for each element of
self
.
sourcepub fn powf(self, n: f32) -> Vec4
pub fn powf(self, n: f32) -> Vec4
Returns a vector containing each element of self
raised to the power of n
.
sourcepub fn recip(self) -> Vec4
pub fn recip(self) -> Vec4
Returns a vector containing the reciprocal 1.0/n
of each element of self
.
sourcepub fn lerp(self, rhs: Vec4, s: f32) -> Vec4
pub fn lerp(self, rhs: Vec4, s: f32) -> Vec4
Performs a linear interpolation between self
and rhs
based on the value s
.
When s
is 0.0
, the result will be equal to self
. When s
is 1.0
, the result
will be equal to rhs
. When s
is outside of range [0, 1]
, the result is linearly
extrapolated.
sourcepub fn abs_diff_eq(self, rhs: Vec4, max_abs_diff: f32) -> bool
pub fn abs_diff_eq(self, rhs: Vec4, max_abs_diff: f32) -> bool
Returns true if the absolute difference of all elements between self
and rhs
is
less than or equal to max_abs_diff
.
This can be used to compare if two vectors contain similar elements. It works best when
comparing with a known value. The max_abs_diff
that should be used used depends on
the values being compared against.
For more see comparing floating point numbers.
sourcepub fn clamp_length(self, min: f32, max: f32) -> Vec4
pub fn clamp_length(self, min: f32, max: f32) -> Vec4
Returns a vector with a length no less than min
and no more than max
Panics
Will panic if min
is greater than max
when glam_assert
is enabled.
sourcepub fn clamp_length_max(self, max: f32) -> Vec4
pub fn clamp_length_max(self, max: f32) -> Vec4
Returns a vector with a length no more than max
sourcepub fn clamp_length_min(self, min: f32) -> Vec4
pub fn clamp_length_min(self, min: f32) -> Vec4
Returns a vector with a length no less than min
sourcepub fn mul_add(self, a: Vec4, b: Vec4) -> Vec4
pub fn mul_add(self, a: Vec4, b: Vec4) -> Vec4
Fused multiply-add. Computes (self * a) + b
element-wise with only one rounding
error, yielding a more accurate result than an unfused multiply-add.
Using mul_add
may be more performant than an unfused multiply-add if the target
architecture has a dedicated fma CPU instruction. However, this is not always true,
and will be heavily dependant on designing algorithms with specific target hardware in
mind.
sourcepub fn as_i16vec4(&self) -> I16Vec4
pub fn as_i16vec4(&self) -> I16Vec4
Casts all elements of self
to i16
.
sourcepub fn as_u16vec4(&self) -> U16Vec4
pub fn as_u16vec4(&self) -> U16Vec4
Casts all elements of self
to u16
.
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<f32> for Vec4
impl AddAssign<f32> for Vec4
source§fn add_assign(&mut self, rhs: f32)
fn add_assign(&mut self, rhs: f32)
+=
operation. Read moresource§impl AddAssign for Vec4
impl AddAssign for Vec4
source§fn add_assign(&mut self, rhs: Vec4)
fn add_assign(&mut self, rhs: Vec4)
+=
operation. Read moresource§impl Animatable for Vec4
impl Animatable for Vec4
source§fn blend(inputs: impl Iterator<Item = BlendInput<Vec4>>) -> Vec4
fn blend(inputs: impl Iterator<Item = BlendInput<Vec4>>) -> Vec4
source§fn post_process(&mut self, _world: &World)
fn post_process(&mut self, _world: &World)
World
.
Most animatable types do not need to implement this.source§impl AsMutVectorParts<f32, 4> for Vec4
impl AsMutVectorParts<f32, 4> for Vec4
fn as_mut_parts(&mut self) -> &mut [f32; 4]
source§impl AsRefVectorParts<f32, 4> for Vec4
impl AsRefVectorParts<f32, 4> for Vec4
fn as_ref_parts(&self) -> &[f32; 4]
source§impl CreateFrom for Vec4
impl CreateFrom for Vec4
source§impl<'de> Deserialize<'de> for Vec4
impl<'de> Deserialize<'de> for Vec4
source§fn deserialize<D>(
deserializer: D
) -> Result<Vec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<Vec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
source§impl DivAssign<f32> for Vec4
impl DivAssign<f32> for Vec4
source§fn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
/=
operation. Read moresource§impl DivAssign for Vec4
impl DivAssign for Vec4
source§fn div_assign(&mut self, rhs: Vec4)
fn div_assign(&mut self, rhs: Vec4)
/=
operation. Read moresource§impl FromReflect for Vec4
impl FromReflect for Vec4
source§fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Vec4>
fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Vec4>
Self
from a reflected value.source§fn take_from_reflect(
reflect: Box<dyn Reflect>
) -> Result<Self, Box<dyn Reflect>>
fn take_from_reflect( reflect: Box<dyn Reflect> ) -> Result<Self, Box<dyn Reflect>>
Self
using,
constructing the value using from_reflect
if that fails. Read moresource§impl FromVectorParts<f32, 4> for Vec4
impl FromVectorParts<f32, 4> for Vec4
source§impl GetTypeRegistration for Vec4
impl GetTypeRegistration for Vec4
source§impl MulAssign<Vec4> for Color
impl MulAssign<Vec4> for Color
source§fn mul_assign(&mut self, rhs: Vec4)
fn mul_assign(&mut self, rhs: Vec4)
*=
operation. Read moresource§impl MulAssign<f32> for Vec4
impl MulAssign<f32> for Vec4
source§fn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
*=
operation. Read moresource§impl MulAssign for Vec4
impl MulAssign for Vec4
source§fn mul_assign(&mut self, rhs: Vec4)
fn mul_assign(&mut self, rhs: Vec4)
*=
operation. Read moresource§impl Reflect for Vec4
impl Reflect for Vec4
source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any
.source§fn into_reflect(self: Box<Vec4>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Vec4>) -> Box<dyn Reflect>
source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
source§fn clone_value(&self) -> Box<dyn Reflect>
fn clone_value(&self) -> Box<dyn Reflect>
Reflect
trait object. Read moresource§fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
source§fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
source§fn reflect_owned(self: Box<Vec4>) -> ReflectOwned
fn reflect_owned(self: Box<Vec4>) -> ReflectOwned
source§fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
source§impl RemAssign<f32> for Vec4
impl RemAssign<f32> for Vec4
source§fn rem_assign(&mut self, rhs: f32)
fn rem_assign(&mut self, rhs: f32)
%=
operation. Read moresource§impl RemAssign for Vec4
impl RemAssign for Vec4
source§fn rem_assign(&mut self, rhs: Vec4)
fn rem_assign(&mut self, rhs: Vec4)
%=
operation. Read moresource§impl Serialize for Vec4
impl Serialize for Vec4
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 ShaderSize for Vec4where
f32: ShaderSize,
impl ShaderSize for Vec4where
f32: ShaderSize,
source§const SHADER_SIZE: NonZeroU64 = _
const SHADER_SIZE: NonZeroU64 = _
ShaderType::min_size
)source§impl ShaderType for Vec4where
f32: ShaderSize,
impl ShaderType for Vec4where
f32: ShaderSize,
source§fn min_size() -> NonZeroU64
fn min_size() -> NonZeroU64
source§fn size(&self) -> NonZeroU64
fn size(&self) -> NonZeroU64
Self
at runtime Read moresource§fn assert_uniform_compat()
fn assert_uniform_compat()
Self
meets the requirements of the
uniform address space restrictions on stored values and the
uniform address space layout constraints Read moresource§impl Struct for Vec4
impl Struct for Vec4
source§fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
name
as a &dyn Reflect
.source§fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
name
as a
&mut dyn Reflect
.source§fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
index
as a
&dyn Reflect
.source§fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
index
as a &mut dyn Reflect
.source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
index
.source§fn iter_fields(&self) -> FieldIter<'_> ⓘ
fn iter_fields(&self) -> FieldIter<'_> ⓘ
source§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
DynamicStruct
.source§impl SubAssign<f32> for Vec4
impl SubAssign<f32> for Vec4
source§fn sub_assign(&mut self, rhs: f32)
fn sub_assign(&mut self, rhs: f32)
-=
operation. Read moresource§impl SubAssign for Vec4
impl SubAssign for Vec4
source§fn sub_assign(&mut self, rhs: Vec4)
fn sub_assign(&mut self, rhs: Vec4)
-=
operation. Read moresource§impl TypePath for Vec4
impl TypePath for Vec4
source§fn type_path() -> &'static str
fn type_path() -> &'static str
source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
source§impl Vec4Swizzles for Vec4
impl Vec4Swizzles for Vec4
type Vec2 = Vec2
type Vec3 = Vec3
fn xx(self) -> Vec2
fn xy(self) -> Vec2
fn xz(self) -> Vec2
fn xw(self) -> Vec2
fn yx(self) -> Vec2
fn yy(self) -> Vec2
fn yz(self) -> Vec2
fn yw(self) -> Vec2
fn zx(self) -> Vec2
fn zy(self) -> Vec2
fn zz(self) -> Vec2
fn zw(self) -> Vec2
fn wx(self) -> Vec2
fn wy(self) -> Vec2
fn wz(self) -> Vec2
fn ww(self) -> Vec2
fn xxx(self) -> Vec3
fn xxy(self) -> Vec3
fn xxz(self) -> Vec3
fn xxw(self) -> Vec3
fn xyx(self) -> Vec3
fn xyy(self) -> Vec3
fn xyz(self) -> Vec3
fn xyw(self) -> Vec3
fn xzx(self) -> Vec3
fn xzy(self) -> Vec3
fn xzz(self) -> Vec3
fn xzw(self) -> Vec3
fn xwx(self) -> Vec3
fn xwy(self) -> Vec3
fn xwz(self) -> Vec3
fn xww(self) -> Vec3
fn yxx(self) -> Vec3
fn yxy(self) -> Vec3
fn yxz(self) -> Vec3
fn yxw(self) -> Vec3
fn yyx(self) -> Vec3
fn yyy(self) -> Vec3
fn yyz(self) -> Vec3
fn yyw(self) -> Vec3
fn yzx(self) -> Vec3
fn yzy(self) -> Vec3
fn yzz(self) -> Vec3
fn yzw(self) -> Vec3
fn ywx(self) -> Vec3
fn ywy(self) -> Vec3
fn ywz(self) -> Vec3
fn yww(self) -> Vec3
fn zxx(self) -> Vec3
fn zxy(self) -> Vec3
fn zxz(self) -> Vec3
fn zxw(self) -> Vec3
fn zyx(self) -> Vec3
fn zyy(self) -> Vec3
fn zyz(self) -> Vec3
fn zyw(self) -> Vec3
fn zzx(self) -> Vec3
fn zzy(self) -> Vec3
fn zzz(self) -> Vec3
fn zzw(self) -> Vec3
fn zwx(self) -> Vec3
fn zwy(self) -> Vec3
fn zwz(self) -> Vec3
fn zww(self) -> Vec3
fn wxx(self) -> Vec3
fn wxy(self) -> Vec3
fn wxz(self) -> Vec3
fn wxw(self) -> Vec3
fn wyx(self) -> Vec3
fn wyy(self) -> Vec3
fn wyz(self) -> Vec3
fn wyw(self) -> Vec3
fn wzx(self) -> Vec3
fn wzy(self) -> Vec3
fn wzz(self) -> Vec3
fn wzw(self) -> Vec3
fn wwx(self) -> Vec3
fn wwy(self) -> Vec3
fn wwz(self) -> Vec3
fn www(self) -> Vec3
fn xxxx(self) -> Vec4
fn xxxy(self) -> Vec4
fn xxxz(self) -> Vec4
fn xxxw(self) -> Vec4
fn xxyx(self) -> Vec4
fn xxyy(self) -> Vec4
fn xxyz(self) -> Vec4
fn xxyw(self) -> Vec4
fn xxzx(self) -> Vec4
fn xxzy(self) -> Vec4
fn xxzz(self) -> Vec4
fn xxzw(self) -> Vec4
fn xxwx(self) -> Vec4
fn xxwy(self) -> Vec4
fn xxwz(self) -> Vec4
fn xxww(self) -> Vec4
fn xyxx(self) -> Vec4
fn xyxy(self) -> Vec4
fn xyxz(self) -> Vec4
fn xyxw(self) -> Vec4
fn xyyx(self) -> Vec4
fn xyyy(self) -> Vec4
fn xyyz(self) -> Vec4
fn xyyw(self) -> Vec4
fn xyzx(self) -> Vec4
fn xyzy(self) -> Vec4
fn xyzz(self) -> Vec4
fn xyzw(self) -> Vec4
fn xywx(self) -> Vec4
fn xywy(self) -> Vec4
fn xywz(self) -> Vec4
fn xyww(self) -> Vec4
fn xzxx(self) -> Vec4
fn xzxy(self) -> Vec4
fn xzxz(self) -> Vec4
fn xzxw(self) -> Vec4
fn xzyx(self) -> Vec4
fn xzyy(self) -> Vec4
fn xzyz(self) -> Vec4
fn xzyw(self) -> Vec4
fn xzzx(self) -> Vec4
fn xzzy(self) -> Vec4
fn xzzz(self) -> Vec4
fn xzzw(self) -> Vec4
fn xzwx(self) -> Vec4
fn xzwy(self) -> Vec4
fn xzwz(self) -> Vec4
fn xzww(self) -> Vec4
fn xwxx(self) -> Vec4
fn xwxy(self) -> Vec4
fn xwxz(self) -> Vec4
fn xwxw(self) -> Vec4
fn xwyx(self) -> Vec4
fn xwyy(self) -> Vec4
fn xwyz(self) -> Vec4
fn xwyw(self) -> Vec4
fn xwzx(self) -> Vec4
fn xwzy(self) -> Vec4
fn xwzz(self) -> Vec4
fn xwzw(self) -> Vec4
fn xwwx(self) -> Vec4
fn xwwy(self) -> Vec4
fn xwwz(self) -> Vec4
fn xwww(self) -> Vec4
fn yxxx(self) -> Vec4
fn yxxy(self) -> Vec4
fn yxxz(self) -> Vec4
fn yxxw(self) -> Vec4
fn yxyx(self) -> Vec4
fn yxyy(self) -> Vec4
fn yxyz(self) -> Vec4
fn yxyw(self) -> Vec4
fn yxzx(self) -> Vec4
fn yxzy(self) -> Vec4
fn yxzz(self) -> Vec4
fn yxzw(self) -> Vec4
fn yxwx(self) -> Vec4
fn yxwy(self) -> Vec4
fn yxwz(self) -> Vec4
fn yxww(self) -> Vec4
fn yyxx(self) -> Vec4
fn yyxy(self) -> Vec4
fn yyxz(self) -> Vec4
fn yyxw(self) -> Vec4
fn yyyx(self) -> Vec4
fn yyyy(self) -> Vec4
fn yyyz(self) -> Vec4
fn yyyw(self) -> Vec4
fn yyzx(self) -> Vec4
fn yyzy(self) -> Vec4
fn yyzz(self) -> Vec4
fn yyzw(self) -> Vec4
fn yywx(self) -> Vec4
fn yywy(self) -> Vec4
fn yywz(self) -> Vec4
fn yyww(self) -> Vec4
fn yzxx(self) -> Vec4
fn yzxy(self) -> Vec4
fn yzxz(self) -> Vec4
fn yzxw(self) -> Vec4
fn yzyx(self) -> Vec4
fn yzyy(self) -> Vec4
fn yzyz(self) -> Vec4
fn yzyw(self) -> Vec4
fn yzzx(self) -> Vec4
fn yzzy(self) -> Vec4
fn yzzz(self) -> Vec4
fn yzzw(self) -> Vec4
fn yzwx(self) -> Vec4
fn yzwy(self) -> Vec4
fn yzwz(self) -> Vec4
fn yzww(self) -> Vec4
fn ywxx(self) -> Vec4
fn ywxy(self) -> Vec4
fn ywxz(self) -> Vec4
fn ywxw(self) -> Vec4
fn ywyx(self) -> Vec4
fn ywyy(self) -> Vec4
fn ywyz(self) -> Vec4
fn ywyw(self) -> Vec4
fn ywzx(self) -> Vec4
fn ywzy(self) -> Vec4
fn ywzz(self) -> Vec4
fn ywzw(self) -> Vec4
fn ywwx(self) -> Vec4
fn ywwy(self) -> Vec4
fn ywwz(self) -> Vec4
fn ywww(self) -> Vec4
fn zxxx(self) -> Vec4
fn zxxy(self) -> Vec4
fn zxxz(self) -> Vec4
fn zxxw(self) -> Vec4
fn zxyx(self) -> Vec4
fn zxyy(self) -> Vec4
fn zxyz(self) -> Vec4
fn zxyw(self) -> Vec4
fn zxzx(self) -> Vec4
fn zxzy(self) -> Vec4
fn zxzz(self) -> Vec4
fn zxzw(self) -> Vec4
fn zxwx(self) -> Vec4
fn zxwy(self) -> Vec4
fn zxwz(self) -> Vec4
fn zxww(self) -> Vec4
fn zyxx(self) -> Vec4
fn zyxy(self) -> Vec4
fn zyxz(self) -> Vec4
fn zyxw(self) -> Vec4
fn zyyx(self) -> Vec4
fn zyyy(self) -> Vec4
fn zyyz(self) -> Vec4
fn zyyw(self) -> Vec4
fn zyzx(self) -> Vec4
fn zyzy(self) -> Vec4
fn zyzz(self) -> Vec4
fn zyzw(self) -> Vec4
fn zywx(self) -> Vec4
fn zywy(self) -> Vec4
fn zywz(self) -> Vec4
fn zyww(self) -> Vec4
fn zzxx(self) -> Vec4
fn zzxy(self) -> Vec4
fn zzxz(self) -> Vec4
fn zzxw(self) -> Vec4
fn zzyx(self) -> Vec4
fn zzyy(self) -> Vec4
fn zzyz(self) -> Vec4
fn zzyw(self) -> Vec4
fn zzzx(self) -> Vec4
fn zzzy(self) -> Vec4
fn zzzz(self) -> Vec4
fn zzzw(self) -> Vec4
fn zzwx(self) -> Vec4
fn zzwy(self) -> Vec4
fn zzwz(self) -> Vec4
fn zzww(self) -> Vec4
fn zwxx(self) -> Vec4
fn zwxy(self) -> Vec4
fn zwxz(self) -> Vec4
fn zwxw(self) -> Vec4
fn zwyx(self) -> Vec4
fn zwyy(self) -> Vec4
fn zwyz(self) -> Vec4
fn zwyw(self) -> Vec4
fn zwzx(self) -> Vec4
fn zwzy(self) -> Vec4
fn zwzz(self) -> Vec4
fn zwzw(self) -> Vec4
fn zwwx(self) -> Vec4
fn zwwy(self) -> Vec4
fn zwwz(self) -> Vec4
fn zwww(self) -> Vec4
fn wxxx(self) -> Vec4
fn wxxy(self) -> Vec4
fn wxxz(self) -> Vec4
fn wxxw(self) -> Vec4
fn wxyx(self) -> Vec4
fn wxyy(self) -> Vec4
fn wxyz(self) -> Vec4
fn wxyw(self) -> Vec4
fn wxzx(self) -> Vec4
fn wxzy(self) -> Vec4
fn wxzz(self) -> Vec4
fn wxzw(self) -> Vec4
fn wxwx(self) -> Vec4
fn wxwy(self) -> Vec4
fn wxwz(self) -> Vec4
fn wxww(self) -> Vec4
fn wyxx(self) -> Vec4
fn wyxy(self) -> Vec4
fn wyxz(self) -> Vec4
fn wyxw(self) -> Vec4
fn wyyx(self) -> Vec4
fn wyyy(self) -> Vec4
fn wyyz(self) -> Vec4
fn wyyw(self) -> Vec4
fn wyzx(self) -> Vec4
fn wyzy(self) -> Vec4
fn wyzz(self) -> Vec4
fn wyzw(self) -> Vec4
fn wywx(self) -> Vec4
fn wywy(self) -> Vec4
fn wywz(self) -> Vec4
fn wyww(self) -> Vec4
fn wzxx(self) -> Vec4
fn wzxy(self) -> Vec4
fn wzxz(self) -> Vec4
fn wzxw(self) -> Vec4
fn wzyx(self) -> Vec4
fn wzyy(self) -> Vec4
fn wzyz(self) -> Vec4
fn wzyw(self) -> Vec4
fn wzzx(self) -> Vec4
fn wzzy(self) -> Vec4
fn wzzz(self) -> Vec4
fn wzzw(self) -> Vec4
fn wzwx(self) -> Vec4
fn wzwy(self) -> Vec4
fn wzwz(self) -> Vec4
fn wzww(self) -> Vec4
fn wwxx(self) -> Vec4
fn wwxy(self) -> Vec4
fn wwxz(self) -> Vec4
fn wwxw(self) -> Vec4
fn wwyx(self) -> Vec4
fn wwyy(self) -> Vec4
fn wwyz(self) -> Vec4
fn wwyw(self) -> Vec4
fn wwzx(self) -> Vec4
fn wwzy(self) -> Vec4
fn wwzz(self) -> Vec4
fn wwzw(self) -> Vec4
fn wwwx(self) -> Vec4
fn wwwy(self) -> Vec4
fn wwwz(self) -> Vec4
fn wwww(self) -> Vec4
source§impl WriteInto for Vec4
impl WriteInto for Vec4
fn write_into<B>(&self, writer: &mut Writer<B>)where
B: BufferMut,
impl Copy for Vec4
impl Pod for Vec4
Auto Trait Implementations§
impl RefUnwindSafe for Vec4
impl Send for Vec4
impl Sync for Vec4
impl Unpin for Vec4
impl UnwindSafe for Vec4
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
source§impl<T> GetPath for T
impl<T> GetPath for T
source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>
) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p> ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read moresource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read moresource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moresource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path
. Read more