#[repr(transparent)]pub struct DVec4(_);
Expand description
A 4-dimensional vector.
Implementations
sourceimpl DVec4
impl DVec4
sourcepub fn truncate(self) -> DVec3
pub fn truncate(self) -> DVec3
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: 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 fn min(self, other: DVec4) -> DVec4
pub fn min(self, other: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn max(self, other: DVec4) -> DVec4
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: 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, other: DVec4) -> BVec4
pub fn cmpeq(self, other: DVec4) -> BVec4
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: DVec4) -> BVec4
pub fn cmpne(self, other: DVec4) -> BVec4
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: DVec4) -> BVec4
pub fn cmpge(self, other: DVec4) -> BVec4
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: DVec4) -> BVec4
pub fn cmpgt(self, other: DVec4) -> BVec4
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: DVec4) -> BVec4
pub fn cmple(self, other: DVec4) -> BVec4
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: DVec4) -> BVec4
pub fn cmplt(self, other: DVec4) -> BVec4
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: &[f64]) -> DVec4
pub fn from_slice(slice: &[f64]) -> DVec4
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 [f64])
pub fn write_to_slice(self, slice: &mut [f64])
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) -> 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, other: DVec4) -> f64
pub fn distance(self, other: DVec4) -> f64
Computes the Euclidean distance between two points in space.
sourcepub fn distance_squared(self, other: DVec4) -> f64
pub fn distance_squared(self, other: 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, other: DVec4) -> DVec4
pub fn project_onto(self, other: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn reject_from(self, other: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn project_onto_normalized(self, other: DVec4) -> DVec4
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: DVec4) -> DVec4
pub fn reject_from_normalized(self, other: DVec4) -> DVec4
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) -> 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, other: DVec4, s: f64) -> DVec4
pub fn lerp(self, other: DVec4, s: f64) -> DVec4
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: DVec4, max_abs_diff: f64) -> bool
pub fn abs_diff_eq(self, other: DVec4, max_abs_diff: f64) -> 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: 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
Trait Implementations
sourceimpl AddAssign<DVec4> for DVec4
impl AddAssign<DVec4> for DVec4
sourcepub fn add_assign(&mut self, other: DVec4)
pub fn add_assign(&mut self, other: DVec4)
Performs the +=
operation. Read more
sourceimpl AddAssign<f64> for DVec4
impl AddAssign<f64> for DVec4
sourcepub fn add_assign(&mut self, other: f64)
pub fn add_assign(&mut self, other: f64)
Performs the +=
operation. Read more
impl AsStd140 for DVec4
impl AsStd140 for DVec4
pub fn as_std140(&self) -> <DVec4 as AsStd140>::Output
pub fn as_std140(&self) -> <DVec4 as AsStd140>::Output
Convert this value into the std140
version of itself.
pub fn from_std140(value: <DVec4 as AsStd140>::Output) -> DVec4
pub fn from_std140(value: <DVec4 as AsStd140>::Output) -> DVec4
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 DVec4
impl AsStd430 for DVec4
pub fn as_std430(&self) -> <DVec4 as AsStd430>::Output
pub fn as_std430(&self) -> <DVec4 as AsStd430>::Output
Convert this value into the std430
version of itself.
pub fn from_std430(value: <DVec4 as AsStd430>::Output) -> DVec4
pub fn from_std430(value: <DVec4 as AsStd430>::Output) -> DVec4
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 DVec4
impl<'de> Deserialize<'de> for DVec4
sourcepub fn deserialize<D>(
deserializer: D
) -> Result<DVec4, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
pub 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
sourcepub fn div_assign(&mut self, other: DVec4)
pub fn div_assign(&mut self, other: DVec4)
Performs the /=
operation. Read more
sourceimpl DivAssign<f64> for DVec4
impl DivAssign<f64> for DVec4
sourcepub fn div_assign(&mut self, other: f64)
pub fn div_assign(&mut self, other: f64)
Performs the /=
operation. Read more
sourceimpl MulAssign<DVec4> for DVec4
impl MulAssign<DVec4> for DVec4
sourcepub fn mul_assign(&mut self, other: DVec4)
pub fn mul_assign(&mut self, other: DVec4)
Performs the *=
operation. Read more
sourceimpl MulAssign<f64> for DVec4
impl MulAssign<f64> for DVec4
sourcepub fn mul_assign(&mut self, other: f64)
pub fn mul_assign(&mut self, other: f64)
Performs the *=
operation. Read more
sourceimpl RemAssign<DVec4> for DVec4
impl RemAssign<DVec4> for DVec4
sourcepub fn rem_assign(&mut self, other: DVec4)
pub fn rem_assign(&mut self, other: DVec4)
Performs the %=
operation. Read more
sourceimpl RemAssign<f64> for DVec4
impl RemAssign<f64> for DVec4
sourcepub fn rem_assign(&mut self, other: f64)
pub fn rem_assign(&mut self, other: f64)
Performs the %=
operation. Read more
sourceimpl Serialize for DVec4
impl Serialize for DVec4
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<DVec4> for DVec4
impl SubAssign<DVec4> for DVec4
sourcepub fn sub_assign(&mut self, other: DVec4)
pub fn sub_assign(&mut self, other: DVec4)
Performs the -=
operation. Read more
sourceimpl SubAssign<f64> for DVec4
impl SubAssign<f64> for DVec4
sourcepub fn sub_assign(&mut self, other: f64)
pub fn sub_assign(&mut self, other: f64)
Performs the -=
operation. Read more
sourceimpl Vec4Swizzles for DVec4
impl Vec4Swizzles for DVec4
type Vec2 = DVec2
type Vec3 = DVec3
pub fn xxxx(self) -> DVec4
pub fn xxxy(self) -> DVec4
pub fn xxxz(self) -> DVec4
pub fn xxxw(self) -> DVec4
pub fn xxyx(self) -> DVec4
pub fn xxyy(self) -> DVec4
pub fn xxyz(self) -> DVec4
pub fn xxyw(self) -> DVec4
pub fn xxzx(self) -> DVec4
pub fn xxzy(self) -> DVec4
pub fn xxzz(self) -> DVec4
pub fn xxzw(self) -> DVec4
pub fn xxwx(self) -> DVec4
pub fn xxwy(self) -> DVec4
pub fn xxwz(self) -> DVec4
pub fn xxww(self) -> DVec4
pub fn xyxx(self) -> DVec4
pub fn xyxy(self) -> DVec4
pub fn xyxz(self) -> DVec4
pub fn xyxw(self) -> DVec4
pub fn xyyx(self) -> DVec4
pub fn xyyy(self) -> DVec4
pub fn xyyz(self) -> DVec4
pub fn xyyw(self) -> DVec4
pub fn xyzx(self) -> DVec4
pub fn xyzy(self) -> DVec4
pub fn xyzz(self) -> DVec4
pub fn xywx(self) -> DVec4
pub fn xywy(self) -> DVec4
pub fn xywz(self) -> DVec4
pub fn xyww(self) -> DVec4
pub fn xzxx(self) -> DVec4
pub fn xzxy(self) -> DVec4
pub fn xzxz(self) -> DVec4
pub fn xzxw(self) -> DVec4
pub fn xzyx(self) -> DVec4
pub fn xzyy(self) -> DVec4
pub fn xzyz(self) -> DVec4
pub fn xzyw(self) -> DVec4
pub fn xzzx(self) -> DVec4
pub fn xzzy(self) -> DVec4
pub fn xzzz(self) -> DVec4
pub fn xzzw(self) -> DVec4
pub fn xzwx(self) -> DVec4
pub fn xzwy(self) -> DVec4
pub fn xzwz(self) -> DVec4
pub fn xzww(self) -> DVec4
pub fn xwxx(self) -> DVec4
pub fn xwxy(self) -> DVec4
pub fn xwxz(self) -> DVec4
pub fn xwxw(self) -> DVec4
pub fn xwyx(self) -> DVec4
pub fn xwyy(self) -> DVec4
pub fn xwyz(self) -> DVec4
pub fn xwyw(self) -> DVec4
pub fn xwzx(self) -> DVec4
pub fn xwzy(self) -> DVec4
pub fn xwzz(self) -> DVec4
pub fn xwzw(self) -> DVec4
pub fn xwwx(self) -> DVec4
pub fn xwwy(self) -> DVec4
pub fn xwwz(self) -> DVec4
pub fn xwww(self) -> DVec4
pub fn yxxx(self) -> DVec4
pub fn yxxy(self) -> DVec4
pub fn yxxz(self) -> DVec4
pub fn yxxw(self) -> DVec4
pub fn yxyx(self) -> DVec4
pub fn yxyy(self) -> DVec4
pub fn yxyz(self) -> DVec4
pub fn yxyw(self) -> DVec4
pub fn yxzx(self) -> DVec4
pub fn yxzy(self) -> DVec4
pub fn yxzz(self) -> DVec4
pub fn yxzw(self) -> DVec4
pub fn yxwx(self) -> DVec4
pub fn yxwy(self) -> DVec4
pub fn yxwz(self) -> DVec4
pub fn yxww(self) -> DVec4
pub fn yyxx(self) -> DVec4
pub fn yyxy(self) -> DVec4
pub fn yyxz(self) -> DVec4
pub fn yyxw(self) -> DVec4
pub fn yyyx(self) -> DVec4
pub fn yyyy(self) -> DVec4
pub fn yyyz(self) -> DVec4
pub fn yyyw(self) -> DVec4
pub fn yyzx(self) -> DVec4
pub fn yyzy(self) -> DVec4
pub fn yyzz(self) -> DVec4
pub fn yyzw(self) -> DVec4
pub fn yywx(self) -> DVec4
pub fn yywy(self) -> DVec4
pub fn yywz(self) -> DVec4
pub fn yyww(self) -> DVec4
pub fn yzxx(self) -> DVec4
pub fn yzxy(self) -> DVec4
pub fn yzxz(self) -> DVec4
pub fn yzxw(self) -> DVec4
pub fn yzyx(self) -> DVec4
pub fn yzyy(self) -> DVec4
pub fn yzyz(self) -> DVec4
pub fn yzyw(self) -> DVec4
pub fn yzzx(self) -> DVec4
pub fn yzzy(self) -> DVec4
pub fn yzzz(self) -> DVec4
pub fn yzzw(self) -> DVec4
pub fn yzwx(self) -> DVec4
pub fn yzwy(self) -> DVec4
pub fn yzwz(self) -> DVec4
pub fn yzww(self) -> DVec4
pub fn ywxx(self) -> DVec4
pub fn ywxy(self) -> DVec4
pub fn ywxz(self) -> DVec4
pub fn ywxw(self) -> DVec4
pub fn ywyx(self) -> DVec4
pub fn ywyy(self) -> DVec4
pub fn ywyz(self) -> DVec4
pub fn ywyw(self) -> DVec4
pub fn ywzx(self) -> DVec4
pub fn ywzy(self) -> DVec4
pub fn ywzz(self) -> DVec4
pub fn ywzw(self) -> DVec4
pub fn ywwx(self) -> DVec4
pub fn ywwy(self) -> DVec4
pub fn ywwz(self) -> DVec4
pub fn ywww(self) -> DVec4
pub fn zxxx(self) -> DVec4
pub fn zxxy(self) -> DVec4
pub fn zxxz(self) -> DVec4
pub fn zxxw(self) -> DVec4
pub fn zxyx(self) -> DVec4
pub fn zxyy(self) -> DVec4
pub fn zxyz(self) -> DVec4
pub fn zxyw(self) -> DVec4
pub fn zxzx(self) -> DVec4
pub fn zxzy(self) -> DVec4
pub fn zxzz(self) -> DVec4
pub fn zxzw(self) -> DVec4
pub fn zxwx(self) -> DVec4
pub fn zxwy(self) -> DVec4
pub fn zxwz(self) -> DVec4
pub fn zxww(self) -> DVec4
pub fn zyxx(self) -> DVec4
pub fn zyxy(self) -> DVec4
pub fn zyxz(self) -> DVec4
pub fn zyxw(self) -> DVec4
pub fn zyyx(self) -> DVec4
pub fn zyyy(self) -> DVec4
pub fn zyyz(self) -> DVec4
pub fn zyyw(self) -> DVec4
pub fn zyzx(self) -> DVec4
pub fn zyzy(self) -> DVec4
pub fn zyzz(self) -> DVec4
pub fn zyzw(self) -> DVec4
pub fn zywx(self) -> DVec4
pub fn zywy(self) -> DVec4
pub fn zywz(self) -> DVec4
pub fn zyww(self) -> DVec4
pub fn zzxx(self) -> DVec4
pub fn zzxy(self) -> DVec4
pub fn zzxz(self) -> DVec4
pub fn zzxw(self) -> DVec4
pub fn zzyx(self) -> DVec4
pub fn zzyy(self) -> DVec4
pub fn zzyz(self) -> DVec4
pub fn zzyw(self) -> DVec4
pub fn zzzx(self) -> DVec4
pub fn zzzy(self) -> DVec4
pub fn zzzz(self) -> DVec4
pub fn zzzw(self) -> DVec4
pub fn zzwx(self) -> DVec4
pub fn zzwy(self) -> DVec4
pub fn zzwz(self) -> DVec4
pub fn zzww(self) -> DVec4
pub fn zwxx(self) -> DVec4
pub fn zwxy(self) -> DVec4
pub fn zwxz(self) -> DVec4
pub fn zwxw(self) -> DVec4
pub fn zwyx(self) -> DVec4
pub fn zwyy(self) -> DVec4
pub fn zwyz(self) -> DVec4
pub fn zwyw(self) -> DVec4
pub fn zwzx(self) -> DVec4
pub fn zwzy(self) -> DVec4
pub fn zwzz(self) -> DVec4
pub fn zwzw(self) -> DVec4
pub fn zwwx(self) -> DVec4
pub fn zwwy(self) -> DVec4
pub fn zwwz(self) -> DVec4
pub fn zwww(self) -> DVec4
pub fn wxxx(self) -> DVec4
pub fn wxxy(self) -> DVec4
pub fn wxxz(self) -> DVec4
pub fn wxxw(self) -> DVec4
pub fn wxyx(self) -> DVec4
pub fn wxyy(self) -> DVec4
pub fn wxyz(self) -> DVec4
pub fn wxyw(self) -> DVec4
pub fn wxzx(self) -> DVec4
pub fn wxzy(self) -> DVec4
pub fn wxzz(self) -> DVec4
pub fn wxzw(self) -> DVec4
pub fn wxwx(self) -> DVec4
pub fn wxwy(self) -> DVec4
pub fn wxwz(self) -> DVec4
pub fn wxww(self) -> DVec4
pub fn wyxx(self) -> DVec4
pub fn wyxy(self) -> DVec4
pub fn wyxz(self) -> DVec4
pub fn wyxw(self) -> DVec4
pub fn wyyx(self) -> DVec4
pub fn wyyy(self) -> DVec4
pub fn wyyz(self) -> DVec4
pub fn wyyw(self) -> DVec4
pub fn wyzx(self) -> DVec4
pub fn wyzy(self) -> DVec4
pub fn wyzz(self) -> DVec4
pub fn wyzw(self) -> DVec4
pub fn wywx(self) -> DVec4
pub fn wywy(self) -> DVec4
pub fn wywz(self) -> DVec4
pub fn wyww(self) -> DVec4
pub fn wzxx(self) -> DVec4
pub fn wzxy(self) -> DVec4
pub fn wzxz(self) -> DVec4
pub fn wzxw(self) -> DVec4
pub fn wzyx(self) -> DVec4
pub fn wzyy(self) -> DVec4
pub fn wzyz(self) -> DVec4
pub fn wzyw(self) -> DVec4
pub fn wzzx(self) -> DVec4
pub fn wzzy(self) -> DVec4
pub fn wzzz(self) -> DVec4
pub fn wzzw(self) -> DVec4
pub fn wzwx(self) -> DVec4
pub fn wzwy(self) -> DVec4
pub fn wzwz(self) -> DVec4
pub fn wzww(self) -> DVec4
pub fn wwxx(self) -> DVec4
pub fn wwxy(self) -> DVec4
pub fn wwxz(self) -> DVec4
pub fn wwxw(self) -> DVec4
pub fn wwyx(self) -> DVec4
pub fn wwyy(self) -> DVec4
pub fn wwyz(self) -> DVec4
pub fn wwyw(self) -> DVec4
pub fn wwzx(self) -> DVec4
pub fn wwzy(self) -> DVec4
pub fn wwzz(self) -> DVec4
pub fn wwzw(self) -> DVec4
pub fn wwwx(self) -> DVec4
pub fn wwwy(self) -> DVec4
pub fn wwwz(self) -> DVec4
pub fn wwww(self) -> DVec4
pub fn xxx(self) -> DVec3
pub fn xxy(self) -> DVec3
pub fn xxz(self) -> DVec3
pub fn xxw(self) -> DVec3
pub fn xyx(self) -> DVec3
pub fn xyy(self) -> DVec3
pub fn xyz(self) -> DVec3
pub fn xyw(self) -> DVec3
pub fn xzx(self) -> DVec3
pub fn xzy(self) -> DVec3
pub fn xzz(self) -> DVec3
pub fn xzw(self) -> DVec3
pub fn xwx(self) -> DVec3
pub fn xwy(self) -> DVec3
pub fn xwz(self) -> DVec3
pub fn xww(self) -> DVec3
pub fn yxx(self) -> DVec3
pub fn yxy(self) -> DVec3
pub fn yxz(self) -> DVec3
pub fn yxw(self) -> DVec3
pub fn yyx(self) -> DVec3
pub fn yyy(self) -> DVec3
pub fn yyz(self) -> DVec3
pub fn yyw(self) -> DVec3
pub fn yzx(self) -> DVec3
pub fn yzy(self) -> DVec3
pub fn yzz(self) -> DVec3
pub fn yzw(self) -> DVec3
pub fn ywx(self) -> DVec3
pub fn ywy(self) -> DVec3
pub fn ywz(self) -> DVec3
pub fn yww(self) -> DVec3
pub fn zxx(self) -> DVec3
pub fn zxy(self) -> DVec3
pub fn zxz(self) -> DVec3
pub fn zxw(self) -> DVec3
pub fn zyx(self) -> DVec3
pub fn zyy(self) -> DVec3
pub fn zyz(self) -> DVec3
pub fn zyw(self) -> DVec3
pub fn zzx(self) -> DVec3
pub fn zzy(self) -> DVec3
pub fn zzz(self) -> DVec3
pub fn zzw(self) -> DVec3
pub fn zwx(self) -> DVec3
pub fn zwy(self) -> DVec3
pub fn zwz(self) -> DVec3
pub fn zww(self) -> DVec3
pub fn wxx(self) -> DVec3
pub fn wxy(self) -> DVec3
pub fn wxz(self) -> DVec3
pub fn wxw(self) -> DVec3
pub fn wyx(self) -> DVec3
pub fn wyy(self) -> DVec3
pub fn wyz(self) -> DVec3
pub fn wyw(self) -> DVec3
pub fn wzx(self) -> DVec3
pub fn wzy(self) -> DVec3
pub fn wzz(self) -> DVec3
pub fn wzw(self) -> DVec3
pub fn wwx(self) -> DVec3
pub fn wwy(self) -> DVec3
pub fn wwz(self) -> DVec3
pub fn www(self) -> DVec3
pub fn xx(self) -> DVec2
pub fn xy(self) -> DVec2
pub fn xz(self) -> DVec2
pub fn xw(self) -> DVec2
pub fn yx(self) -> DVec2
pub fn yy(self) -> DVec2
pub fn yz(self) -> DVec2
pub fn yw(self) -> DVec2
pub fn zx(self) -> DVec2
pub fn zy(self) -> DVec2
pub fn zz(self) -> DVec2
pub fn zw(self) -> DVec2
pub fn wx(self) -> DVec2
pub fn wy(self) -> DVec2
pub fn wz(self) -> DVec2
pub fn ww(self) -> DVec2
fn xyzw(self) -> Self
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
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<I, A>impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
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> 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<I, A>impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
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