Expand description
A 4-dimensional vector.
Fields
x: f64
y: f64
z: f64
w: f64
Implementations
sourceimpl DVec4
impl DVec4
sourcepub const X: DVec4 = Self::new(1.0, 0.0, 0.0, 0.0)
pub const X: DVec4 = Self::new(1.0, 0.0, 0.0, 0.0)
A unit-length vector pointing along the positive X axis.
sourcepub const Y: DVec4 = Self::new(0.0, 1.0, 0.0, 0.0)
pub const Y: DVec4 = Self::new(0.0, 1.0, 0.0, 0.0)
A unit-length vector pointing along the positive Y axis.
sourcepub const Z: DVec4 = Self::new(0.0, 0.0, 1.0, 0.0)
pub const Z: DVec4 = Self::new(0.0, 0.0, 1.0, 0.0)
A unit-length vector pointing along the positive Z axis.
sourcepub const W: DVec4 = Self::new(0.0, 0.0, 0.0, 1.0)
pub const W: DVec4 = Self::new(0.0, 0.0, 0.0, 1.0)
A unit-length vector pointing along the positive W axis.
sourcepub const NEG_X: DVec4 = Self::new(-1.0, 0.0, 0.0, 0.0)
pub const NEG_X: DVec4 = Self::new(-1.0, 0.0, 0.0, 0.0)
A unit-length vector pointing along the negative X axis.
sourcepub const NEG_Y: DVec4 = Self::new(0.0, -1.0, 0.0, 0.0)
pub const NEG_Y: DVec4 = Self::new(0.0, -1.0, 0.0, 0.0)
A unit-length vector pointing along the negative Y axis.
sourcepub const NEG_Z: DVec4 = Self::new(0.0, 0.0, -1.0, 0.0)
pub const NEG_Z: DVec4 = Self::new(0.0, 0.0, -1.0, 0.0)
A unit-length vector pointing along the negative Z axis.
sourcepub const NEG_W: DVec4 = Self::new(0.0, 0.0, 0.0, -1.0)
pub const NEG_W: DVec4 = Self::new(0.0, 0.0, 0.0, -1.0)
A unit-length vector pointing along the negative W axis.
sourcepub fn select(mask: BVec4, if_true: DVec4, if_false: DVec4) -> DVec4
pub fn select(mask: BVec4, if_true: DVec4, if_false: DVec4) -> DVec4
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_slice(slice: &[f64]) -> DVec4
pub const fn from_slice(slice: &[f64]) -> DVec4
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 [f64])
pub fn write_to_slice(self, slice: &mut [f64])
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) -> DVec3
pub fn truncate(self) -> DVec3
Creates a 2D vector from the x
, y
and z
elements of self
, discarding w
.
Truncation to DVec3
may also be performed by using self.xyz()
or DVec3::from()
.
sourcepub fn min(self, rhs: DVec4) -> DVec4
pub fn min(self, rhs: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn max(self, rhs: DVec4) -> DVec4
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: DVec4, max: DVec4) -> DVec4
pub fn clamp(self, min: DVec4, max: DVec4) -> DVec4
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) -> f64
pub fn min_element(self) -> f64
Returns the horizontal minimum of self
.
In other words this computes min(x, y, ..)
.
sourcepub fn max_element(self) -> f64
pub fn max_element(self) -> f64
Returns the horizontal maximum of self
.
In other words this computes max(x, y, ..)
.
sourcepub fn cmpeq(self, rhs: DVec4) -> BVec4
pub fn cmpeq(self, rhs: DVec4) -> 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: DVec4) -> BVec4
pub fn cmpne(self, rhs: DVec4) -> 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: DVec4) -> BVec4
pub fn cmpge(self, rhs: DVec4) -> 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: DVec4) -> BVec4
pub fn cmpgt(self, rhs: DVec4) -> 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: DVec4) -> BVec4
pub fn cmple(self, rhs: DVec4) -> 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: DVec4) -> BVec4
pub fn cmplt(self, rhs: DVec4) -> 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 abs(self) -> DVec4
pub fn abs(self) -> DVec4
Returns a vector containing the absolute value of each element of self
.
sourcepub fn signum(self) -> DVec4
pub fn signum(self) -> DVec4
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) -> BVec4
pub fn is_nan_mask(self) -> BVec4
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) -> f64
pub fn length_squared(self) -> f64
Computes the squared length of self
.
This is faster than length()
as it avoids a square root operation.
sourcepub fn length_recip(self) -> f64
pub fn length_recip(self) -> f64
Computes 1.0 / length()
.
For valid results, self
must not be of length zero.
sourcepub fn distance(self, rhs: DVec4) -> f64
pub fn distance(self, rhs: DVec4) -> f64
Computes the Euclidean distance between two points in space.
sourcepub fn distance_squared(self, rhs: DVec4) -> f64
pub fn distance_squared(self, rhs: DVec4) -> f64
Compute the squared euclidean distance between two points in space.
sourcepub fn normalize(self) -> DVec4
pub fn normalize(self) -> DVec4
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<DVec4>
pub fn try_normalize(self) -> Option<DVec4>
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) -> DVec4
pub fn normalize_or_zero(self) -> DVec4
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: DVec4) -> DVec4
pub fn project_onto(self, rhs: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn reject_from(self, rhs: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn project_onto_normalized(self, rhs: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn reject_from_normalized(self, rhs: DVec4) -> DVec4
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) -> DVec4
pub fn round(self) -> DVec4
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) -> DVec4
pub fn floor(self) -> DVec4
Returns a vector containing the largest integer less than or equal to a number for each
element of self
.
sourcepub fn ceil(self) -> DVec4
pub fn ceil(self) -> DVec4
Returns a vector containing the smallest integer greater than or equal to a number for
each element of self
.
sourcepub fn fract(self) -> DVec4
pub fn fract(self) -> DVec4
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) -> DVec4
pub fn exp(self) -> DVec4
Returns a vector containing e^self
(the exponential function) for each element of
self
.
sourcepub fn powf(self, n: f64) -> DVec4
pub fn powf(self, n: f64) -> DVec4
Returns a vector containing each element of self
raised to the power of n
.
sourcepub fn recip(self) -> DVec4
pub fn recip(self) -> DVec4
Returns a vector containing the reciprocal 1.0/n
of each element of self
.
sourcepub fn lerp(self, rhs: DVec4, s: f64) -> DVec4
pub fn lerp(self, rhs: DVec4, s: f64) -> DVec4
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: DVec4, max_abs_diff: f64) -> bool
pub fn abs_diff_eq(self, rhs: DVec4, max_abs_diff: f64) -> 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: f64, max: f64) -> DVec4
pub fn clamp_length(self, min: f64, max: f64) -> DVec4
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: f64) -> DVec4
pub fn clamp_length_max(self, max: f64) -> DVec4
Returns a vector with a length no more than max
sourcepub fn clamp_length_min(self, min: f64) -> DVec4
pub fn clamp_length_min(self, min: f64) -> DVec4
Returns a vector with a length no less than min
sourcepub fn mul_add(self, a: DVec4, b: DVec4) -> DVec4
pub fn mul_add(self, a: DVec4, b: DVec4) -> DVec4
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.
Trait Implementations
sourceimpl AddAssign<DVec4> for DVec4
impl AddAssign<DVec4> for DVec4
sourcefn add_assign(&mut self, rhs: DVec4)
fn add_assign(&mut self, rhs: DVec4)
Performs the +=
operation. Read more
sourceimpl AddAssign<f64> for DVec4
impl AddAssign<f64> for DVec4
sourcefn add_assign(&mut self, rhs: f64)
fn add_assign(&mut self, rhs: f64)
Performs the +=
operation. Read more
sourceimpl<'de> Deserialize<'de> for DVec4
impl<'de> Deserialize<'de> for DVec4
sourcefn deserialize<D>(
deserializer: D
) -> Result<DVec4, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<DVec4, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl DivAssign<DVec4> for DVec4
impl DivAssign<DVec4> for DVec4
sourcefn div_assign(&mut self, rhs: DVec4)
fn div_assign(&mut self, rhs: DVec4)
Performs the /=
operation. Read more
sourceimpl DivAssign<f64> for DVec4
impl DivAssign<f64> for DVec4
sourcefn div_assign(&mut self, rhs: f64)
fn div_assign(&mut self, rhs: f64)
Performs the /=
operation. Read more
impl FromReflect for DVec4 where
f64: FromReflect,
impl FromReflect for DVec4 where
f64: FromReflect,
fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<DVec4>
fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<DVec4>
Constructs a concrete instance of Self
from a reflected value.
impl GetTypeRegistration for DVec4
impl GetTypeRegistration for DVec4
sourceimpl MulAssign<DVec4> for DVec4
impl MulAssign<DVec4> for DVec4
sourcefn mul_assign(&mut self, rhs: DVec4)
fn mul_assign(&mut self, rhs: DVec4)
Performs the *=
operation. Read more
sourceimpl MulAssign<f64> for DVec4
impl MulAssign<f64> for DVec4
sourcefn mul_assign(&mut self, rhs: f64)
fn mul_assign(&mut self, rhs: f64)
Performs the *=
operation. Read more
sourceimpl PartialEq<DVec4> for DVec4
impl PartialEq<DVec4> for DVec4
impl Reflect for DVec4
impl Reflect for DVec4
fn get_type_info(&self) -> &'static TypeInfo
fn get_type_info(&self) -> &'static TypeInfo
fn into_any(self: Box<DVec4, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<DVec4, Global>) -> Box<dyn Any + 'static, Global>
Returns the value as a Box<dyn Any>
.
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Returns the value as a &mut dyn Any
.
fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
Casts this type to a reflected value
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
Casts this type to a mutable reflected value
fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>
fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>
Clones the value as a Reflect
trait object. Read more
fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
Performs a type-checked assignment of a reflected value to this value. Read more
fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
Applies a reflected value to this value. Read more
fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Returns an enumeration of “kinds” of type. Read more
fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Returns a mutable enumeration of “kinds” of type. Read more
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
Returns a “partial equality” comparison result. Read more
fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Returns a hash of the value (which includes the type). Read more
fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
Returns a serializable version of the value. Read more
sourceimpl RemAssign<DVec4> for DVec4
impl RemAssign<DVec4> for DVec4
sourcefn rem_assign(&mut self, rhs: DVec4)
fn rem_assign(&mut self, rhs: DVec4)
Performs the %=
operation. Read more
sourceimpl RemAssign<f64> for DVec4
impl RemAssign<f64> for DVec4
sourcefn rem_assign(&mut self, rhs: f64)
fn rem_assign(&mut self, rhs: f64)
Performs the %=
operation. Read more
sourceimpl Serialize for DVec4
impl Serialize for DVec4
sourcefn 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,
Serialize this value into the given Serde serializer. Read more
impl Struct for DVec4
impl Struct for DVec4
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
Returns a reference to the value of the field named name
as a &dyn Reflect
. Read more
fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
Returns a mutable reference to the value of the field named name
as a
&mut dyn Reflect
. Read more
fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
Returns a reference to the value of the field with index index
as a
&dyn Reflect
. Read more
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)>
Returns a mutable reference to the value of the field with index index
as a &mut dyn Reflect
. Read more
fn iter_fields(&self) -> FieldIter<'_>ⓘNotable traits for FieldIter<'a>impl<'a> Iterator for FieldIter<'a> type Item = &'a (dyn Reflect + 'static);
fn iter_fields(&self) -> FieldIter<'_>ⓘNotable traits for FieldIter<'a>impl<'a> Iterator for FieldIter<'a> type Item = &'a (dyn Reflect + 'static);
Returns an iterator over the values of the struct’s fields.
fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
Clones the struct into a DynamicStruct
.
sourceimpl SubAssign<DVec4> for DVec4
impl SubAssign<DVec4> for DVec4
sourcefn sub_assign(&mut self, rhs: DVec4)
fn sub_assign(&mut self, rhs: DVec4)
Performs the -=
operation. Read more
sourceimpl SubAssign<f64> for DVec4
impl SubAssign<f64> for DVec4
sourcefn sub_assign(&mut self, rhs: f64)
fn sub_assign(&mut self, rhs: f64)
Performs the -=
operation. Read more
sourceimpl Vec4Swizzles for DVec4
impl Vec4Swizzles for DVec4
type Vec2 = DVec2
type Vec3 = DVec3
fn xx(self) -> DVec2
fn xy(self) -> DVec2
fn xz(self) -> DVec2
fn xw(self) -> DVec2
fn yx(self) -> DVec2
fn yy(self) -> DVec2
fn yz(self) -> DVec2
fn yw(self) -> DVec2
fn zx(self) -> DVec2
fn zy(self) -> DVec2
fn zz(self) -> DVec2
fn zw(self) -> DVec2
fn wx(self) -> DVec2
fn wy(self) -> DVec2
fn wz(self) -> DVec2
fn ww(self) -> DVec2
fn xxx(self) -> DVec3
fn xxy(self) -> DVec3
fn xxz(self) -> DVec3
fn xxw(self) -> DVec3
fn xyx(self) -> DVec3
fn xyy(self) -> DVec3
fn xyz(self) -> DVec3
fn xyw(self) -> DVec3
fn xzx(self) -> DVec3
fn xzy(self) -> DVec3
fn xzz(self) -> DVec3
fn xzw(self) -> DVec3
fn xwx(self) -> DVec3
fn xwy(self) -> DVec3
fn xwz(self) -> DVec3
fn xww(self) -> DVec3
fn yxx(self) -> DVec3
fn yxy(self) -> DVec3
fn yxz(self) -> DVec3
fn yxw(self) -> DVec3
fn yyx(self) -> DVec3
fn yyy(self) -> DVec3
fn yyz(self) -> DVec3
fn yyw(self) -> DVec3
fn yzx(self) -> DVec3
fn yzy(self) -> DVec3
fn yzz(self) -> DVec3
fn yzw(self) -> DVec3
fn ywx(self) -> DVec3
fn ywy(self) -> DVec3
fn ywz(self) -> DVec3
fn yww(self) -> DVec3
fn zxx(self) -> DVec3
fn zxy(self) -> DVec3
fn zxz(self) -> DVec3
fn zxw(self) -> DVec3
fn zyx(self) -> DVec3
fn zyy(self) -> DVec3
fn zyz(self) -> DVec3
fn zyw(self) -> DVec3
fn zzx(self) -> DVec3
fn zzy(self) -> DVec3
fn zzz(self) -> DVec3
fn zzw(self) -> DVec3
fn zwx(self) -> DVec3
fn zwy(self) -> DVec3
fn zwz(self) -> DVec3
fn zww(self) -> DVec3
fn wxx(self) -> DVec3
fn wxy(self) -> DVec3
fn wxz(self) -> DVec3
fn wxw(self) -> DVec3
fn wyx(self) -> DVec3
fn wyy(self) -> DVec3
fn wyz(self) -> DVec3
fn wyw(self) -> DVec3
fn wzx(self) -> DVec3
fn wzy(self) -> DVec3
fn wzz(self) -> DVec3
fn wzw(self) -> DVec3
fn wwx(self) -> DVec3
fn wwy(self) -> DVec3
fn wwz(self) -> DVec3
fn www(self) -> DVec3
fn xxxx(self) -> DVec4
fn xxxy(self) -> DVec4
fn xxxz(self) -> DVec4
fn xxxw(self) -> DVec4
fn xxyx(self) -> DVec4
fn xxyy(self) -> DVec4
fn xxyz(self) -> DVec4
fn xxyw(self) -> DVec4
fn xxzx(self) -> DVec4
fn xxzy(self) -> DVec4
fn xxzz(self) -> DVec4
fn xxzw(self) -> DVec4
fn xxwx(self) -> DVec4
fn xxwy(self) -> DVec4
fn xxwz(self) -> DVec4
fn xxww(self) -> DVec4
fn xyxx(self) -> DVec4
fn xyxy(self) -> DVec4
fn xyxz(self) -> DVec4
fn xyxw(self) -> DVec4
fn xyyx(self) -> DVec4
fn xyyy(self) -> DVec4
fn xyyz(self) -> DVec4
fn xyyw(self) -> DVec4
fn xyzx(self) -> DVec4
fn xyzy(self) -> DVec4
fn xyzz(self) -> DVec4
fn xyzw(self) -> DVec4
fn xywx(self) -> DVec4
fn xywy(self) -> DVec4
fn xywz(self) -> DVec4
fn xyww(self) -> DVec4
fn xzxx(self) -> DVec4
fn xzxy(self) -> DVec4
fn xzxz(self) -> DVec4
fn xzxw(self) -> DVec4
fn xzyx(self) -> DVec4
fn xzyy(self) -> DVec4
fn xzyz(self) -> DVec4
fn xzyw(self) -> DVec4
fn xzzx(self) -> DVec4
fn xzzy(self) -> DVec4
fn xzzz(self) -> DVec4
fn xzzw(self) -> DVec4
fn xzwx(self) -> DVec4
fn xzwy(self) -> DVec4
fn xzwz(self) -> DVec4
fn xzww(self) -> DVec4
fn xwxx(self) -> DVec4
fn xwxy(self) -> DVec4
fn xwxz(self) -> DVec4
fn xwxw(self) -> DVec4
fn xwyx(self) -> DVec4
fn xwyy(self) -> DVec4
fn xwyz(self) -> DVec4
fn xwyw(self) -> DVec4
fn xwzx(self) -> DVec4
fn xwzy(self) -> DVec4
fn xwzz(self) -> DVec4
fn xwzw(self) -> DVec4
fn xwwx(self) -> DVec4
fn xwwy(self) -> DVec4
fn xwwz(self) -> DVec4
fn xwww(self) -> DVec4
fn yxxx(self) -> DVec4
fn yxxy(self) -> DVec4
fn yxxz(self) -> DVec4
fn yxxw(self) -> DVec4
fn yxyx(self) -> DVec4
fn yxyy(self) -> DVec4
fn yxyz(self) -> DVec4
fn yxyw(self) -> DVec4
fn yxzx(self) -> DVec4
fn yxzy(self) -> DVec4
fn yxzz(self) -> DVec4
fn yxzw(self) -> DVec4
fn yxwx(self) -> DVec4
fn yxwy(self) -> DVec4
fn yxwz(self) -> DVec4
fn yxww(self) -> DVec4
fn yyxx(self) -> DVec4
fn yyxy(self) -> DVec4
fn yyxz(self) -> DVec4
fn yyxw(self) -> DVec4
fn yyyx(self) -> DVec4
fn yyyy(self) -> DVec4
fn yyyz(self) -> DVec4
fn yyyw(self) -> DVec4
fn yyzx(self) -> DVec4
fn yyzy(self) -> DVec4
fn yyzz(self) -> DVec4
fn yyzw(self) -> DVec4
fn yywx(self) -> DVec4
fn yywy(self) -> DVec4
fn yywz(self) -> DVec4
fn yyww(self) -> DVec4
fn yzxx(self) -> DVec4
fn yzxy(self) -> DVec4
fn yzxz(self) -> DVec4
fn yzxw(self) -> DVec4
fn yzyx(self) -> DVec4
fn yzyy(self) -> DVec4
fn yzyz(self) -> DVec4
fn yzyw(self) -> DVec4
fn yzzx(self) -> DVec4
fn yzzy(self) -> DVec4
fn yzzz(self) -> DVec4
fn yzzw(self) -> DVec4
fn yzwx(self) -> DVec4
fn yzwy(self) -> DVec4
fn yzwz(self) -> DVec4
fn yzww(self) -> DVec4
fn ywxx(self) -> DVec4
fn ywxy(self) -> DVec4
fn ywxz(self) -> DVec4
fn ywxw(self) -> DVec4
fn ywyx(self) -> DVec4
fn ywyy(self) -> DVec4
fn ywyz(self) -> DVec4
fn ywyw(self) -> DVec4
fn ywzx(self) -> DVec4
fn ywzy(self) -> DVec4
fn ywzz(self) -> DVec4
fn ywzw(self) -> DVec4
fn ywwx(self) -> DVec4
fn ywwy(self) -> DVec4
fn ywwz(self) -> DVec4
fn ywww(self) -> DVec4
fn zxxx(self) -> DVec4
fn zxxy(self) -> DVec4
fn zxxz(self) -> DVec4
fn zxxw(self) -> DVec4
fn zxyx(self) -> DVec4
fn zxyy(self) -> DVec4
fn zxyz(self) -> DVec4
fn zxyw(self) -> DVec4
fn zxzx(self) -> DVec4
fn zxzy(self) -> DVec4
fn zxzz(self) -> DVec4
fn zxzw(self) -> DVec4
fn zxwx(self) -> DVec4
fn zxwy(self) -> DVec4
fn zxwz(self) -> DVec4
fn zxww(self) -> DVec4
fn zyxx(self) -> DVec4
fn zyxy(self) -> DVec4
fn zyxz(self) -> DVec4
fn zyxw(self) -> DVec4
fn zyyx(self) -> DVec4
fn zyyy(self) -> DVec4
fn zyyz(self) -> DVec4
fn zyyw(self) -> DVec4
fn zyzx(self) -> DVec4
fn zyzy(self) -> DVec4
fn zyzz(self) -> DVec4
fn zyzw(self) -> DVec4
fn zywx(self) -> DVec4
fn zywy(self) -> DVec4
fn zywz(self) -> DVec4
fn zyww(self) -> DVec4
fn zzxx(self) -> DVec4
fn zzxy(self) -> DVec4
fn zzxz(self) -> DVec4
fn zzxw(self) -> DVec4
fn zzyx(self) -> DVec4
fn zzyy(self) -> DVec4
fn zzyz(self) -> DVec4
fn zzyw(self) -> DVec4
fn zzzx(self) -> DVec4
fn zzzy(self) -> DVec4
fn zzzz(self) -> DVec4
fn zzzw(self) -> DVec4
fn zzwx(self) -> DVec4
fn zzwy(self) -> DVec4
fn zzwz(self) -> DVec4
fn zzww(self) -> DVec4
fn zwxx(self) -> DVec4
fn zwxy(self) -> DVec4
fn zwxz(self) -> DVec4
fn zwxw(self) -> DVec4
fn zwyx(self) -> DVec4
fn zwyy(self) -> DVec4
fn zwyz(self) -> DVec4
fn zwyw(self) -> DVec4
fn zwzx(self) -> DVec4
fn zwzy(self) -> DVec4
fn zwzz(self) -> DVec4
fn zwzw(self) -> DVec4
fn zwwx(self) -> DVec4
fn zwwy(self) -> DVec4
fn zwwz(self) -> DVec4
fn zwww(self) -> DVec4
fn wxxx(self) -> DVec4
fn wxxy(self) -> DVec4
fn wxxz(self) -> DVec4
fn wxxw(self) -> DVec4
fn wxyx(self) -> DVec4
fn wxyy(self) -> DVec4
fn wxyz(self) -> DVec4
fn wxyw(self) -> DVec4
fn wxzx(self) -> DVec4
fn wxzy(self) -> DVec4
fn wxzz(self) -> DVec4
fn wxzw(self) -> DVec4
fn wxwx(self) -> DVec4
fn wxwy(self) -> DVec4
fn wxwz(self) -> DVec4
fn wxww(self) -> DVec4
fn wyxx(self) -> DVec4
fn wyxy(self) -> DVec4
fn wyxz(self) -> DVec4
fn wyxw(self) -> DVec4
fn wyyx(self) -> DVec4
fn wyyy(self) -> DVec4
fn wyyz(self) -> DVec4
fn wyyw(self) -> DVec4
fn wyzx(self) -> DVec4
fn wyzy(self) -> DVec4
fn wyzz(self) -> DVec4
fn wyzw(self) -> DVec4
fn wywx(self) -> DVec4
fn wywy(self) -> DVec4
fn wywz(self) -> DVec4
fn wyww(self) -> DVec4
fn wzxx(self) -> DVec4
fn wzxy(self) -> DVec4
fn wzxz(self) -> DVec4
fn wzxw(self) -> DVec4
fn wzyx(self) -> DVec4
fn wzyy(self) -> DVec4
fn wzyz(self) -> DVec4
fn wzyw(self) -> DVec4
fn wzzx(self) -> DVec4
fn wzzy(self) -> DVec4
fn wzzz(self) -> DVec4
fn wzzw(self) -> DVec4
fn wzwx(self) -> DVec4
fn wzwy(self) -> DVec4
fn wzwz(self) -> DVec4
fn wzww(self) -> DVec4
fn wwxx(self) -> DVec4
fn wwxy(self) -> DVec4
fn wwxz(self) -> DVec4
fn wwxw(self) -> DVec4
fn wwyx(self) -> DVec4
fn wwyy(self) -> DVec4
fn wwyz(self) -> DVec4
fn wwyw(self) -> DVec4
fn wwzx(self) -> DVec4
fn wwzy(self) -> DVec4
fn wwzz(self) -> DVec4
fn wwzw(self) -> DVec4
fn wwwx(self) -> DVec4
fn wwwy(self) -> DVec4
fn wwwz(self) -> DVec4
fn wwww(self) -> DVec4
impl Copy for DVec4
impl Pod for DVec4
Auto Trait Implementations
impl RefUnwindSafe for DVec4
impl Send for DVec4
impl Sync for DVec4
impl Unpin for DVec4
impl UnwindSafe for DVec4
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
Return the T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> CheckedBitPattern for T where
T: AnyBitPattern,
impl<T> CheckedBitPattern for T where
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
. Read more
fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
If this function returns true, then it must be valid to reinterpret bits
as &Self
.
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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
fn as_any(&self) -> &(dyn Any + 'static)
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
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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,
fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self
using data from the given World
impl<S> GetField for S where
S: Struct,
impl<S> GetField for S where
S: Struct,
impl<T> GetPath for T where
T: Reflect,
impl<T> GetPath for T where
T: Reflect,
fn path(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
fn path(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
Returns a reference to the value specified by path
. Read more
fn path_mut(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn path_mut(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
Returns a mutable reference to the value specified by path
. Read more
fn get_path<T>(&'r self, path: &'p str) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
fn get_path<T>(&'r self, path: &'p str) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
Returns a statically typed reference to the value specified by path
.
fn get_path_mut<T>(
&'r mut self,
path: &'p str
) -> Result<&'r mut 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,
Returns a statically typed mutable reference to the value specified by
path
. Read more
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,
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
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