#[repr(transparent)]pub struct Vec4(_);
Expand description
A 4-dimensional vector.
This type uses 16 byte aligned SIMD vector type for storage on supported platforms.
Implementations
sourceimpl Vec4
impl Vec4
sourcepub fn truncate(self) -> Vec3
pub fn truncate(self) -> Vec3
Creates a Vec3
from the x
, y
and z
elements of self
, discarding w
.
Truncation to Vec3
may also be performed by using self.xyz()
or Vec3::from()
.
To truncate to Vec3A
use Vec3A::from()
.
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 fn min(self, other: Vec4) -> Vec4
pub fn min(self, other: Vec4) -> Vec4
Returns a vector containing the minimum values for each element of self
and other
.
In other words this computes [self.x.max(other.x), self.y.max(other.y), ..]
.
sourcepub fn max(self, other: Vec4) -> Vec4
pub fn max(self, other: Vec4) -> Vec4
Returns a vector containing the maximum values for each element of self
and other
.
In other words this computes [self.x.max(other.x), self.y.max(other.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, other: Vec4) -> BVec4A
pub fn cmpeq(self, other: Vec4) -> BVec4A
Returns a vector mask containing the result of a ==
comparison for each element of
self
and other
.
In other words, this computes [self.x == other.x, self.y == other.y, ..]
for all
elements.
sourcepub fn cmpne(self, other: Vec4) -> BVec4A
pub fn cmpne(self, other: Vec4) -> BVec4A
Returns a vector mask containing the result of a !=
comparison for each element of
self
and other
.
In other words this computes [self.x != other.x, self.y != other.y, ..]
for all
elements.
sourcepub fn cmpge(self, other: Vec4) -> BVec4A
pub fn cmpge(self, other: Vec4) -> BVec4A
Returns a vector mask containing the result of a >=
comparison for each element of
self
and other
.
In other words this computes [self.x >= other.x, self.y >= other.y, ..]
for all
elements.
sourcepub fn cmpgt(self, other: Vec4) -> BVec4A
pub fn cmpgt(self, other: Vec4) -> BVec4A
Returns a vector mask containing the result of a >
comparison for each element of
self
and other
.
In other words this computes [self.x > other.x, self.y > other.y, ..]
for all
elements.
sourcepub fn cmple(self, other: Vec4) -> BVec4A
pub fn cmple(self, other: Vec4) -> BVec4A
Returns a vector mask containing the result of a <=
comparison for each element of
self
and other
.
In other words this computes [self.x <= other.x, self.y <= other.y, ..]
for all
elements.
sourcepub fn cmplt(self, other: Vec4) -> BVec4A
pub fn cmplt(self, other: Vec4) -> BVec4A
Returns a vector mask containing the result of a <
comparison for each element of
self
and other
.
In other words this computes [self.x < other.x, self.y < other.y, ..]
for all
elements.
sourcepub fn from_slice(slice: &[f32]) -> Vec4
pub fn from_slice(slice: &[f32]) -> Vec4
Creates a vector from the first N values in slice
.
Panics
Panics if slice
is less than N 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 N elements in slice
.
Panics
Panics if slice
is less than N elements long.
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 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, other: Vec4) -> f32
pub fn distance(self, other: Vec4) -> f32
Computes the Euclidean distance between two points in space.
sourcepub fn distance_squared(self, other: Vec4) -> f32
pub fn distance_squared(self, other: Vec4) -> f32
Compute the squared euclidean distance between two points in space.
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, other: Vec4) -> Vec4
pub fn project_onto(self, other: Vec4) -> Vec4
Returns the vector projection of self
onto other
.
other
must be of non-zero length.
Panics
Will panic if other
is zero length when glam_assert
is enabled.
sourcepub fn reject_from(self, other: Vec4) -> Vec4
pub fn reject_from(self, other: Vec4) -> Vec4
Returns the vector rejection of self
from other
.
The vector rejection is the vector perpendicular to the projection of self
onto
other
, in other words the result of self - self.project_onto(other)
.
other
must be of non-zero length.
Panics
Will panic if other
has a length of zero when glam_assert
is enabled.
sourcepub fn project_onto_normalized(self, other: Vec4) -> Vec4
pub fn project_onto_normalized(self, other: Vec4) -> Vec4
Returns the vector projection of self
onto other
.
other
must be normalized.
Panics
Will panic if other
is not normalized when glam_assert
is enabled.
sourcepub fn reject_from_normalized(self, other: Vec4) -> Vec4
pub fn reject_from_normalized(self, other: Vec4) -> Vec4
Returns the vector rejection of self
from other
.
The vector rejection is the vector perpendicular to the projection of self
onto
other
, in other words the result of self - self.project_onto(other)
.
other
must be normalized.
Panics
Will panic if other
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 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, other: Vec4, s: f32) -> Vec4
pub fn lerp(self, other: Vec4, s: f32) -> Vec4
Performs a linear interpolation between self
and other
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 other
.
sourcepub fn abs_diff_eq(self, other: Vec4, max_abs_diff: f32) -> bool
pub fn abs_diff_eq(self, other: Vec4, max_abs_diff: f32) -> bool
Returns true if the absolute difference of all elements between self
and other
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
Trait Implementations
sourceimpl AddAssign<Vec4> for Vec4
impl AddAssign<Vec4> for Vec4
sourcepub fn add_assign(&mut self, other: Vec4)
pub fn add_assign(&mut self, other: Vec4)
Performs the +=
operation. Read more
impl AddAssign<Vec4> for Color
impl AddAssign<Vec4> for Color
pub fn add_assign(&mut self, rhs: Vec4)
pub fn add_assign(&mut self, rhs: Vec4)
Performs the +=
operation. Read more
sourceimpl AddAssign<f32> for Vec4
impl AddAssign<f32> for Vec4
sourcepub fn add_assign(&mut self, other: f32)
pub fn add_assign(&mut self, other: f32)
Performs the +=
operation. Read more
impl AsStd140 for Vec4
impl AsStd140 for Vec4
pub fn as_std140(&self) -> <Vec4 as AsStd140>::Output
pub fn as_std140(&self) -> <Vec4 as AsStd140>::Output
Convert this value into the std140
version of itself.
pub fn from_std140(value: <Vec4 as AsStd140>::Output) -> Vec4
pub fn from_std140(value: <Vec4 as AsStd140>::Output) -> Vec4
Converts from std140
version of self to self.
fn std140_size_static() -> usize
fn std140_size_static() -> usize
Returns the size of the std140
version of this type. Useful for
pre-sizing buffers. Read more
impl AsStd430 for Vec4
impl AsStd430 for Vec4
pub fn as_std430(&self) -> <Vec4 as AsStd430>::Output
pub fn as_std430(&self) -> <Vec4 as AsStd430>::Output
Convert this value into the std430
version of itself.
pub fn from_std430(value: <Vec4 as AsStd430>::Output) -> Vec4
pub fn from_std430(value: <Vec4 as AsStd430>::Output) -> Vec4
Converts from std430
version of self to self.
fn std430_size_static() -> usize
fn std430_size_static() -> usize
Returns the size of the std430
version of this type. Useful for
pre-sizing buffers. Read more
sourceimpl<'de> Deserialize<'de> for Vec4
impl<'de> Deserialize<'de> for Vec4
sourcepub fn deserialize<D>(
deserializer: D
) -> Result<Vec4, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
pub fn deserialize<D>(
deserializer: D
) -> Result<Vec4, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl DivAssign<Vec4> for Vec4
impl DivAssign<Vec4> for Vec4
sourcepub fn div_assign(&mut self, other: Vec4)
pub fn div_assign(&mut self, other: Vec4)
Performs the /=
operation. Read more
sourceimpl DivAssign<f32> for Vec4
impl DivAssign<f32> for Vec4
sourcepub fn div_assign(&mut self, other: f32)
pub fn div_assign(&mut self, other: f32)
Performs the /=
operation. Read more
impl FromReflect for Vec4
impl FromReflect for Vec4
pub fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Vec4>
pub fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Vec4>
Creates a clone of a reflected value, converting it to a concrete type if it was a dynamic types (e.g. DynamicStruct
)
impl GetTypeRegistration for Vec4
impl GetTypeRegistration for Vec4
pub fn get_type_registration() -> TypeRegistration
sourceimpl MulAssign<Vec4> for Vec4
impl MulAssign<Vec4> for Vec4
sourcepub fn mul_assign(&mut self, other: Vec4)
pub fn mul_assign(&mut self, other: Vec4)
Performs the *=
operation. Read more
impl MulAssign<Vec4> for Color
impl MulAssign<Vec4> for Color
pub fn mul_assign(&mut self, rhs: Vec4)
pub fn mul_assign(&mut self, rhs: Vec4)
Performs the *=
operation. Read more
sourceimpl MulAssign<f32> for Vec4
impl MulAssign<f32> for Vec4
sourcepub fn mul_assign(&mut self, other: f32)
pub fn mul_assign(&mut self, other: f32)
Performs the *=
operation. Read more
impl Reflect for Vec4
impl Reflect for Vec4
pub fn type_name(&self) -> &str
pub fn any(&self) -> &(dyn Any + 'static)
pub fn any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
pub fn apply(&mut self, value: &(dyn Reflect + 'static))
pub fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
pub fn reflect_ref(&self) -> ReflectRef<'_>
pub fn reflect_mut(&mut self) -> ReflectMut<'_>
pub fn reflect_hash(&self) -> Option<u64>
pub fn reflect_hash(&self) -> Option<u64>
Returns a hash of the value (which includes the type) if hashing is supported. Otherwise
None
will be returned. Read more
pub fn reflect_partial_eq(
&self,
value: &(dyn Reflect + 'static)
) -> Option<bool>
pub fn reflect_partial_eq(
&self,
value: &(dyn Reflect + 'static)
) -> Option<bool>
Returns a “partial equal” comparison result if comparison is supported. Otherwise None
will be returned. Read more
pub fn serializable(&self) -> Option<Serializable<'_>>
pub fn serializable(&self) -> Option<Serializable<'_>>
Returns a serializable value, if serialization is supported. Otherwise None
will be
returned. Read more
sourceimpl RemAssign<Vec4> for Vec4
impl RemAssign<Vec4> for Vec4
sourcepub fn rem_assign(&mut self, other: Vec4)
pub fn rem_assign(&mut self, other: Vec4)
Performs the %=
operation. Read more
sourceimpl RemAssign<f32> for Vec4
impl RemAssign<f32> for Vec4
sourcepub fn rem_assign(&mut self, other: f32)
pub fn rem_assign(&mut self, other: f32)
Performs the %=
operation. Read more
sourceimpl Serialize for Vec4
impl Serialize for Vec4
sourcepub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
sourceimpl SubAssign<Vec4> for Vec4
impl SubAssign<Vec4> for Vec4
sourcepub fn sub_assign(&mut self, other: Vec4)
pub fn sub_assign(&mut self, other: Vec4)
Performs the -=
operation. Read more
sourceimpl SubAssign<f32> for Vec4
impl SubAssign<f32> for Vec4
sourcepub fn sub_assign(&mut self, other: f32)
pub fn sub_assign(&mut self, other: f32)
Performs the -=
operation. Read more
sourceimpl Vec4Swizzles for Vec4
impl Vec4Swizzles for Vec4
type Vec2 = Vec2
type Vec3 = Vec3
pub fn xxxx(self) -> Vec4
pub fn xxxy(self) -> Vec4
pub fn xxxz(self) -> Vec4
pub fn xxxw(self) -> Vec4
pub fn xxyx(self) -> Vec4
pub fn xxyy(self) -> Vec4
pub fn xxyz(self) -> Vec4
pub fn xxyw(self) -> Vec4
pub fn xxzx(self) -> Vec4
pub fn xxzy(self) -> Vec4
pub fn xxzz(self) -> Vec4
pub fn xxzw(self) -> Vec4
pub fn xxwx(self) -> Vec4
pub fn xxwy(self) -> Vec4
pub fn xxwz(self) -> Vec4
pub fn xxww(self) -> Vec4
pub fn xyxx(self) -> Vec4
pub fn xyxy(self) -> Vec4
pub fn xyxz(self) -> Vec4
pub fn xyxw(self) -> Vec4
pub fn xyyx(self) -> Vec4
pub fn xyyy(self) -> Vec4
pub fn xyyz(self) -> Vec4
pub fn xyyw(self) -> Vec4
pub fn xyzx(self) -> Vec4
pub fn xyzy(self) -> Vec4
pub fn xyzz(self) -> Vec4
pub fn xywx(self) -> Vec4
pub fn xywy(self) -> Vec4
pub fn xywz(self) -> Vec4
pub fn xyww(self) -> Vec4
pub fn xzxx(self) -> Vec4
pub fn xzxy(self) -> Vec4
pub fn xzxz(self) -> Vec4
pub fn xzxw(self) -> Vec4
pub fn xzyx(self) -> Vec4
pub fn xzyy(self) -> Vec4
pub fn xzyz(self) -> Vec4
pub fn xzyw(self) -> Vec4
pub fn xzzx(self) -> Vec4
pub fn xzzy(self) -> Vec4
pub fn xzzz(self) -> Vec4
pub fn xzzw(self) -> Vec4
pub fn xzwx(self) -> Vec4
pub fn xzwy(self) -> Vec4
pub fn xzwz(self) -> Vec4
pub fn xzww(self) -> Vec4
pub fn xwxx(self) -> Vec4
pub fn xwxy(self) -> Vec4
pub fn xwxz(self) -> Vec4
pub fn xwxw(self) -> Vec4
pub fn xwyx(self) -> Vec4
pub fn xwyy(self) -> Vec4
pub fn xwyz(self) -> Vec4
pub fn xwyw(self) -> Vec4
pub fn xwzx(self) -> Vec4
pub fn xwzy(self) -> Vec4
pub fn xwzz(self) -> Vec4
pub fn xwzw(self) -> Vec4
pub fn xwwx(self) -> Vec4
pub fn xwwy(self) -> Vec4
pub fn xwwz(self) -> Vec4
pub fn xwww(self) -> Vec4
pub fn yxxx(self) -> Vec4
pub fn yxxy(self) -> Vec4
pub fn yxxz(self) -> Vec4
pub fn yxxw(self) -> Vec4
pub fn yxyx(self) -> Vec4
pub fn yxyy(self) -> Vec4
pub fn yxyz(self) -> Vec4
pub fn yxyw(self) -> Vec4
pub fn yxzx(self) -> Vec4
pub fn yxzy(self) -> Vec4
pub fn yxzz(self) -> Vec4
pub fn yxzw(self) -> Vec4
pub fn yxwx(self) -> Vec4
pub fn yxwy(self) -> Vec4
pub fn yxwz(self) -> Vec4
pub fn yxww(self) -> Vec4
pub fn yyxx(self) -> Vec4
pub fn yyxy(self) -> Vec4
pub fn yyxz(self) -> Vec4
pub fn yyxw(self) -> Vec4
pub fn yyyx(self) -> Vec4
pub fn yyyy(self) -> Vec4
pub fn yyyz(self) -> Vec4
pub fn yyyw(self) -> Vec4
pub fn yyzx(self) -> Vec4
pub fn yyzy(self) -> Vec4
pub fn yyzz(self) -> Vec4
pub fn yyzw(self) -> Vec4
pub fn yywx(self) -> Vec4
pub fn yywy(self) -> Vec4
pub fn yywz(self) -> Vec4
pub fn yyww(self) -> Vec4
pub fn yzxx(self) -> Vec4
pub fn yzxy(self) -> Vec4
pub fn yzxz(self) -> Vec4
pub fn yzxw(self) -> Vec4
pub fn yzyx(self) -> Vec4
pub fn yzyy(self) -> Vec4
pub fn yzyz(self) -> Vec4
pub fn yzyw(self) -> Vec4
pub fn yzzx(self) -> Vec4
pub fn yzzy(self) -> Vec4
pub fn yzzz(self) -> Vec4
pub fn yzzw(self) -> Vec4
pub fn yzwx(self) -> Vec4
pub fn yzwy(self) -> Vec4
pub fn yzwz(self) -> Vec4
pub fn yzww(self) -> Vec4
pub fn ywxx(self) -> Vec4
pub fn ywxy(self) -> Vec4
pub fn ywxz(self) -> Vec4
pub fn ywxw(self) -> Vec4
pub fn ywyx(self) -> Vec4
pub fn ywyy(self) -> Vec4
pub fn ywyz(self) -> Vec4
pub fn ywyw(self) -> Vec4
pub fn ywzx(self) -> Vec4
pub fn ywzy(self) -> Vec4
pub fn ywzz(self) -> Vec4
pub fn ywzw(self) -> Vec4
pub fn ywwx(self) -> Vec4
pub fn ywwy(self) -> Vec4
pub fn ywwz(self) -> Vec4
pub fn ywww(self) -> Vec4
pub fn zxxx(self) -> Vec4
pub fn zxxy(self) -> Vec4
pub fn zxxz(self) -> Vec4
pub fn zxxw(self) -> Vec4
pub fn zxyx(self) -> Vec4
pub fn zxyy(self) -> Vec4
pub fn zxyz(self) -> Vec4
pub fn zxyw(self) -> Vec4
pub fn zxzx(self) -> Vec4
pub fn zxzy(self) -> Vec4
pub fn zxzz(self) -> Vec4
pub fn zxzw(self) -> Vec4
pub fn zxwx(self) -> Vec4
pub fn zxwy(self) -> Vec4
pub fn zxwz(self) -> Vec4
pub fn zxww(self) -> Vec4
pub fn zyxx(self) -> Vec4
pub fn zyxy(self) -> Vec4
pub fn zyxz(self) -> Vec4
pub fn zyxw(self) -> Vec4
pub fn zyyx(self) -> Vec4
pub fn zyyy(self) -> Vec4
pub fn zyyz(self) -> Vec4
pub fn zyyw(self) -> Vec4
pub fn zyzx(self) -> Vec4
pub fn zyzy(self) -> Vec4
pub fn zyzz(self) -> Vec4
pub fn zyzw(self) -> Vec4
pub fn zywx(self) -> Vec4
pub fn zywy(self) -> Vec4
pub fn zywz(self) -> Vec4
pub fn zyww(self) -> Vec4
pub fn zzxx(self) -> Vec4
pub fn zzxy(self) -> Vec4
pub fn zzxz(self) -> Vec4
pub fn zzxw(self) -> Vec4
pub fn zzyx(self) -> Vec4
pub fn zzyy(self) -> Vec4
pub fn zzyz(self) -> Vec4
pub fn zzyw(self) -> Vec4
pub fn zzzx(self) -> Vec4
pub fn zzzy(self) -> Vec4
pub fn zzzz(self) -> Vec4
pub fn zzzw(self) -> Vec4
pub fn zzwx(self) -> Vec4
pub fn zzwy(self) -> Vec4
pub fn zzwz(self) -> Vec4
pub fn zzww(self) -> Vec4
pub fn zwxx(self) -> Vec4
pub fn zwxy(self) -> Vec4
pub fn zwxz(self) -> Vec4
pub fn zwxw(self) -> Vec4
pub fn zwyx(self) -> Vec4
pub fn zwyy(self) -> Vec4
pub fn zwyz(self) -> Vec4
pub fn zwyw(self) -> Vec4
pub fn zwzx(self) -> Vec4
pub fn zwzy(self) -> Vec4
pub fn zwzz(self) -> Vec4
pub fn zwzw(self) -> Vec4
pub fn zwwx(self) -> Vec4
pub fn zwwy(self) -> Vec4
pub fn zwwz(self) -> Vec4
pub fn zwww(self) -> Vec4
pub fn wxxx(self) -> Vec4
pub fn wxxy(self) -> Vec4
pub fn wxxz(self) -> Vec4
pub fn wxxw(self) -> Vec4
pub fn wxyx(self) -> Vec4
pub fn wxyy(self) -> Vec4
pub fn wxyz(self) -> Vec4
pub fn wxyw(self) -> Vec4
pub fn wxzx(self) -> Vec4
pub fn wxzy(self) -> Vec4
pub fn wxzz(self) -> Vec4
pub fn wxzw(self) -> Vec4
pub fn wxwx(self) -> Vec4
pub fn wxwy(self) -> Vec4
pub fn wxwz(self) -> Vec4
pub fn wxww(self) -> Vec4
pub fn wyxx(self) -> Vec4
pub fn wyxy(self) -> Vec4
pub fn wyxz(self) -> Vec4
pub fn wyxw(self) -> Vec4
pub fn wyyx(self) -> Vec4
pub fn wyyy(self) -> Vec4
pub fn wyyz(self) -> Vec4
pub fn wyyw(self) -> Vec4
pub fn wyzx(self) -> Vec4
pub fn wyzy(self) -> Vec4
pub fn wyzz(self) -> Vec4
pub fn wyzw(self) -> Vec4
pub fn wywx(self) -> Vec4
pub fn wywy(self) -> Vec4
pub fn wywz(self) -> Vec4
pub fn wyww(self) -> Vec4
pub fn wzxx(self) -> Vec4
pub fn wzxy(self) -> Vec4
pub fn wzxz(self) -> Vec4
pub fn wzxw(self) -> Vec4
pub fn wzyx(self) -> Vec4
pub fn wzyy(self) -> Vec4
pub fn wzyz(self) -> Vec4
pub fn wzyw(self) -> Vec4
pub fn wzzx(self) -> Vec4
pub fn wzzy(self) -> Vec4
pub fn wzzz(self) -> Vec4
pub fn wzzw(self) -> Vec4
pub fn wzwx(self) -> Vec4
pub fn wzwy(self) -> Vec4
pub fn wzwz(self) -> Vec4
pub fn wzww(self) -> Vec4
pub fn wwxx(self) -> Vec4
pub fn wwxy(self) -> Vec4
pub fn wwxz(self) -> Vec4
pub fn wwxw(self) -> Vec4
pub fn wwyx(self) -> Vec4
pub fn wwyy(self) -> Vec4
pub fn wwyz(self) -> Vec4
pub fn wwyw(self) -> Vec4
pub fn wwzx(self) -> Vec4
pub fn wwzy(self) -> Vec4
pub fn wwzz(self) -> Vec4
pub fn wwzw(self) -> Vec4
pub fn wwwx(self) -> Vec4
pub fn wwwy(self) -> Vec4
pub fn wwwz(self) -> Vec4
pub fn wwww(self) -> Vec4
pub fn xxx(self) -> Vec3
pub fn xxy(self) -> Vec3
pub fn xxz(self) -> Vec3
pub fn xxw(self) -> Vec3
pub fn xyx(self) -> Vec3
pub fn xyy(self) -> Vec3
pub fn xyz(self) -> Vec3
pub fn xyw(self) -> Vec3
pub fn xzx(self) -> Vec3
pub fn xzy(self) -> Vec3
pub fn xzz(self) -> Vec3
pub fn xzw(self) -> Vec3
pub fn xwx(self) -> Vec3
pub fn xwy(self) -> Vec3
pub fn xwz(self) -> Vec3
pub fn xww(self) -> Vec3
pub fn yxx(self) -> Vec3
pub fn yxy(self) -> Vec3
pub fn yxz(self) -> Vec3
pub fn yxw(self) -> Vec3
pub fn yyx(self) -> Vec3
pub fn yyy(self) -> Vec3
pub fn yyz(self) -> Vec3
pub fn yyw(self) -> Vec3
pub fn yzx(self) -> Vec3
pub fn yzy(self) -> Vec3
pub fn yzz(self) -> Vec3
pub fn yzw(self) -> Vec3
pub fn ywx(self) -> Vec3
pub fn ywy(self) -> Vec3
pub fn ywz(self) -> Vec3
pub fn yww(self) -> Vec3
pub fn zxx(self) -> Vec3
pub fn zxy(self) -> Vec3
pub fn zxz(self) -> Vec3
pub fn zxw(self) -> Vec3
pub fn zyx(self) -> Vec3
pub fn zyy(self) -> Vec3
pub fn zyz(self) -> Vec3
pub fn zyw(self) -> Vec3
pub fn zzx(self) -> Vec3
pub fn zzy(self) -> Vec3
pub fn zzz(self) -> Vec3
pub fn zzw(self) -> Vec3
pub fn zwx(self) -> Vec3
pub fn zwy(self) -> Vec3
pub fn zwz(self) -> Vec3
pub fn zww(self) -> Vec3
pub fn wxx(self) -> Vec3
pub fn wxy(self) -> Vec3
pub fn wxz(self) -> Vec3
pub fn wxw(self) -> Vec3
pub fn wyx(self) -> Vec3
pub fn wyy(self) -> Vec3
pub fn wyz(self) -> Vec3
pub fn wyw(self) -> Vec3
pub fn wzx(self) -> Vec3
pub fn wzy(self) -> Vec3
pub fn wzz(self) -> Vec3
pub fn wzw(self) -> Vec3
pub fn wwx(self) -> Vec3
pub fn wwy(self) -> Vec3
pub fn wwz(self) -> Vec3
pub fn www(self) -> Vec3
pub fn xx(self) -> Vec2
pub fn xy(self) -> Vec2
pub fn xz(self) -> Vec2
pub fn xw(self) -> Vec2
pub fn yx(self) -> Vec2
pub fn yy(self) -> Vec2
pub fn yz(self) -> Vec2
pub fn yw(self) -> Vec2
pub fn zx(self) -> Vec2
pub fn zy(self) -> Vec2
pub fn zz(self) -> Vec2
pub fn zw(self) -> Vec2
pub fn wx(self) -> Vec2
pub fn wy(self) -> Vec2
pub fn wz(self) -> Vec2
pub fn ww(self) -> Vec2
fn xyzw(self) -> Self
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Convert 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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
pub fn from_world(_world: &mut World) -> T
pub fn from_world(_world: &mut World) -> T
Creates Self
using data from the given World
impl<T> GetPath for T where
T: Reflect,
impl<T> GetPath for T where
T: Reflect,
pub fn path(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
pub fn path_mut(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn get_path<T>(&'r self, path: &'p str) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
fn get_path_mut<T>(
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
impl<T> GlslArray for T where
T: Glsl,
impl<T> GlslArray for T where
T: Glsl,
type ArraySize = DimensionNil
type ArraySize = DimensionNil
Type-level linked list of array dimensions, ordered outer to inner.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourceimpl<T> Serialize for T where
T: Serialize + ?Sized,
impl<T> Serialize for T where
T: Serialize + ?Sized,
pub fn erased_serialize(
&self,
serializer: &mut dyn Serializer
) -> Result<Ok, Error>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
impl<T> WriteStd140 for T where
T: AsStd140,
impl<T> WriteStd140 for T where
T: AsStd140,
pub fn std140_size(&self) -> usize
pub fn std140_size(&self) -> usize
The space required to write this value using std140
layout rules. This
does not include alignment padding that may be needed before or after
this type when written as part of a larger buffer. Read more
impl<T> WriteStd430 for T where
T: AsStd430,
impl<T> WriteStd430 for T where
T: AsStd430,
pub fn std430_size(&self) -> usize
pub fn std430_size(&self) -> usize
The space required to write this value using std430
layout rules. This
does not include alignment padding that may be needed before or after
this type when written as part of a larger buffer. Read more