pub struct Vec4(/* private fields */);Expand description
A 4-dimensional vector.
SIMD vector types are used for storage on supported platforms.
This type is 16 byte aligned.
Implementations§
Source§impl Vec4
impl Vec4
Sourcepub const NEG_INFINITY: Vec4
pub const NEG_INFINITY: Vec4
All f32::NEG_INFINITY.
Sourcepub const USES_CORE_SIMD: bool = false
pub const USES_CORE_SIMD: bool = false
Vec4 uses Rust Portable SIMD
Sourcepub const USES_SCALAR_MATH: bool = false
pub const USES_SCALAR_MATH: bool = false
Vec4 uses scalar math
Sourcepub const USES_WASM_SIMD: bool = false
pub const USES_WASM_SIMD: bool = false
Vec4 uses WebAssembly 128-bit SIMD
pub const USES_WASM32_SIMD: bool = false
Renamed to USES_WASM_SIMD
Sourcepub const fn splat(v: f32) -> Vec4
pub const fn splat(v: f32) -> Vec4
Creates a vector with all elements set to v.
Examples found in repository?
20fn setup(
21 mut commands: Commands,
22 mut ui_materials: ResMut<Assets<CustomUiMaterial>>,
23 asset_server: Res<AssetServer>,
24) {
25 // Camera so we can see UI
26 commands.spawn(Camera2d);
27
28 commands
29 .spawn(Node {
30 width: percent(100),
31 height: percent(100),
32 align_items: AlignItems::Center,
33 justify_content: JustifyContent::Center,
34 ..default()
35 })
36 .with_children(|parent| {
37 let banner_scale_factor = 0.5;
38 parent.spawn((
39 Node {
40 position_type: PositionType::Absolute,
41 width: px(905.0 * banner_scale_factor),
42 height: px(363.0 * banner_scale_factor),
43 border: UiRect::all(px(20)),
44 border_radius: BorderRadius::all(px(20)),
45 ..default()
46 },
47 MaterialNode(ui_materials.add(CustomUiMaterial {
48 color: LinearRgba::WHITE.to_f32_array().into(),
49 slider: Vec4::splat(0.5),
50 color_texture: asset_server.load("branding/banner.png"),
51 border_color: LinearRgba::WHITE.to_f32_array().into(),
52 })),
53 // UI material nodes can have outlines and shadows like any other UI node
54 Outline {
55 width: px(2),
56 offset: px(100),
57 color: DARK_BLUE.into(),
58 },
59 ));
60 });
61}More examples
3606 pub fn setup(
3607 mut commands: Commands,
3608 mut default_ui_materials: ResMut<Assets<DefaultUiMaterial>>,
3609 mut ui_materials: ResMut<Assets<CustomUiMaterial>>,
3610 asset_server: Res<AssetServer>,
3611 ) {
3612 let default_material = default_ui_materials.add(DefaultUiMaterial {});
3613 let custom_material = |slider| CustomUiMaterial {
3614 color: LinearRgba::from(CYAN_100).to_vec4(),
3615 slider: Vec4::splat(slider),
3616 color_texture: asset_server.load("branding/banner.png"),
3617 border_color: LinearRgba::from(YELLOW_100).to_vec4(),
3618 };
3619 let full_material = ui_materials.add(custom_material(1.));
3620 let material_node = Node {
3621 width: px(200),
3622 height: px(80),
3623 border: px(10).all(),
3624 border_radius: BorderRadius::all(px(20)),
3625 ..default()
3626 };
3627 let material_label = |text: &str| (Text::new(text), TextFont::from_font_size(px(10.)));
3628
3629 commands.spawn((Camera2d, DespawnOnExit(super::Scene::NodeMaterial)));
3630 commands.spawn((
3631 Node {
3632 display: Display::Grid,
3633 // two column grid, labels then materials, first row is spanned by title.
3634 width: percent(100),
3635 height: percent(100),
3636 grid_template_columns: vec![GridTrack::auto(), GridTrack::px(200.)],
3637 align_items: AlignItems::Center,
3638 align_content: AlignContent::Center,
3639 justify_content: JustifyContent::Center,
3640 row_gap: px(10.),
3641 column_gap: px(20.),
3642 ..default()
3643 },
3644 DespawnOnExit(super::Scene::NodeMaterial),
3645 children![
3646 (
3647 Text::new("MaterialNode"),
3648 TextFont::from_font_size(px(30.)),
3649 TextLayout::justify(Justify::Center),
3650 Node {
3651 grid_column: GridPlacement::span(2),
3652 margin: px(10.).bottom(),
3653 ..default()
3654 },
3655 ),
3656 // Default UI material (just white with the default ui_material.wgsl shader for the bevy_ui crate)
3657 material_label("'ui_material.wgsl' default material"),
3658 (material_node.clone(), MaterialNode(default_material),),
3659 // Custom UI material, 1./3 full.
3660 material_label("'custom_ui_material.wgsl' 1/3"),
3661 (
3662 material_node.clone(),
3663 MaterialNode(ui_materials.add(custom_material(1. / 3.))),
3664 ),
3665 // Custom UI material, 2./3 full.
3666 material_label("'custom_ui_material.wgsl' 2/3"),
3667 (
3668 material_node.clone(),
3669 MaterialNode(ui_materials.add(custom_material(2. / 3.)))
3670 ),
3671 // Custom UI material, full.
3672 material_label("'custom_ui_material.wgsl' Full"),
3673 (material_node.clone(), MaterialNode(full_material.clone()),),
3674 // Custom UI material, full. Clipped using overflow so bottom 50% missing
3675 material_label("'custom_ui_material.wgsl' clipped vertically"),
3676 (
3677 Node {
3678 width: material_node.width,
3679 height: material_node.height,
3680 ..default()
3681 },
3682 Outline {
3683 width: px(1),
3684 color: RED_500.into(),
3685 ..default()
3686 },
3687 children![(
3688 Node {
3689 width: percent(100),
3690 height: percent(50),
3691 overflow: Overflow::clip(),
3692 ..default()
3693 },
3694 children![(material_node.clone(), MaterialNode(full_material.clone()))],
3695 )],
3696 ),
3697 // Custom UI material clipped on both axis so bottom 25% and right 25% not visible.
3698 material_label("'custom_ui_material.wgsl' end clipped on both axis"),
3699 (
3700 Node {
3701 width: material_node.width,
3702 height: material_node.height,
3703 ..default()
3704 },
3705 Outline {
3706 width: px(1),
3707 color: RED_500.into(),
3708 ..default()
3709 },
3710 children![(
3711 Node {
3712 width: percent(75),
3713 height: percent(75),
3714 overflow: Overflow::clip(),
3715 ..default()
3716 },
3717 children![(
3718 Node {
3719 position_type: PositionType::Absolute,
3720 width: px(200),
3721 height: px(80),
3722 border: px(10).all(),
3723 border_radius: BorderRadius::all(px(20)),
3724 ..default()
3725 },
3726 MaterialNode(full_material.clone()),
3727 )],
3728 )],
3729 ),
3730 // Custom UI material clipped on both axis so top 25% and left 25% not visible.
3731 material_label("'custom_ui_material.wgsl' start clipped on both axis"),
3732 (
3733 Node {
3734 width: material_node.width,
3735 height: material_node.height,
3736 align_items: AlignItems::End,
3737 justify_content: JustifyContent::End,
3738 ..default()
3739 },
3740 Outline {
3741 width: px(1),
3742 color: RED_500.into(),
3743 ..default()
3744 },
3745 children![(
3746 Node {
3747 width: percent(75),
3748 height: percent(75),
3749 overflow: Overflow::clip(),
3750 ..default()
3751 },
3752 children![(
3753 Node {
3754 position_type: PositionType::Absolute,
3755 width: px(200),
3756 height: px(80),
3757 right: px(0),
3758 bottom: px(0),
3759 border: px(10).all(),
3760 border_radius: BorderRadius::all(px(20)),
3761 ..default()
3762 },
3763 MaterialNode(full_material),
3764 )],
3765 )],
3766 ),
3767 ],
3768 ));
3769 }Sourcepub fn map<F>(self, f: F) -> Vec4
pub fn map<F>(self, f: F) -> Vec4
Returns a vector containing each element of self modified by a mapping function f.
Sourcepub fn select(mask: BVec4A, if_true: Vec4, if_false: Vec4) -> Vec4
pub fn select(mask: BVec4A, if_true: Vec4, if_false: Vec4) -> Vec4
Creates a vector from the elements in if_true and if_false, selecting which to use
for each element of self.
A true element in the mask uses the corresponding element from if_true, and false
uses the element from if_false.
Sourcepub const fn from_array(a: [f32; 4]) -> Vec4
pub const fn from_array(a: [f32; 4]) -> Vec4
Creates a new vector from an array.
Sourcepub const fn from_slice(slice: &[f32]) -> Vec4
pub const fn from_slice(slice: &[f32]) -> Vec4
Creates a vector from the first 4 values in slice.
§Panics
Panics if slice is less than 4 elements long.
Sourcepub fn write_to_slice(self, slice: &mut [f32])
pub fn write_to_slice(self, slice: &mut [f32])
Writes the elements of self to the first 4 elements in slice.
§Panics
Panics if slice is less than 4 elements long.
Sourcepub fn truncate(self) -> Vec3
pub fn truncate(self) -> Vec3
Creates a 3D vector from the x, y and z elements of self, discarding w.
Truncation to Vec3 may also be performed by using self.xyz().
To truncate to Vec3A use Vec3A::from_vec4().
Sourcepub fn project(self) -> Vec3
pub fn project(self) -> Vec3
Projects a homogeneous coordinate to 3D space by performing perspective divide.
To project to Vec3A use Vec3A::from_homogeneous().
§Panics
Will panic if self.w is 0 when glam_assert is enabled.
Sourcepub fn dot_into_vec(self, rhs: Vec4) -> Vec4
pub fn dot_into_vec(self, rhs: Vec4) -> Vec4
Returns a vector where every component is the dot product of self and rhs.
Sourcepub fn min(self, rhs: Vec4) -> Vec4
pub fn min(self, rhs: Vec4) -> Vec4
Returns a vector containing the minimum values for each element of self and rhs.
In other words this computes [min(x, rhs.x), min(self.y, rhs.y), ..].
NaN propogation does not follow IEEE 754-2008 semantics for minNum and may differ on different SIMD architectures.
Sourcepub fn max(self, rhs: Vec4) -> Vec4
pub fn max(self, rhs: Vec4) -> Vec4
Returns a vector containing the maximum values for each element of self and rhs.
In other words this computes [max(self.x, rhs.x), max(self.y, rhs.y), ..].
NaN propogation does not follow IEEE 754-2008 semantics for maxNum and may differ on different SIMD architectures.
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.
NaN propogation does not follow IEEE 754-2008 semantics and may differ on different SIMD architectures.
§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, ..).
NaN propogation does not follow IEEE 754-2008 semantics and may differ on different SIMD architectures.
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, ..).
NaN propogation does not follow IEEE 754-2008 semantics and may differ on different SIMD architectures.
Sourcepub fn min_position(self) -> usize
pub fn min_position(self) -> usize
Returns the index of the first minimum element of self.
Sourcepub fn max_position(self) -> usize
pub fn max_position(self) -> usize
Returns the index of the first maximum element of self.
Sourcepub fn element_sum(self) -> f32
pub fn element_sum(self) -> f32
Returns the sum of all elements of self.
In other words, this computes self.x + self.y + ...
Sourcepub fn element_product(self) -> f32
pub fn element_product(self) -> f32
Returns the product of all elements of self.
In other words, this computes self.x * self.y * ...
Sourcepub fn cmpeq(self, rhs: Vec4) -> BVec4A
pub fn cmpeq(self, rhs: Vec4) -> BVec4A
Returns a vector mask containing the result of a == comparison for each element of
self and rhs.
In other words, this computes [self.x == rhs.x, self.y == rhs.y, ..] for all
elements.
Sourcepub fn cmpne(self, rhs: Vec4) -> BVec4A
pub fn cmpne(self, rhs: Vec4) -> BVec4A
Returns a vector mask containing the result of a != comparison for each element of
self and rhs.
In other words this computes [self.x != rhs.x, self.y != rhs.y, ..] for all
elements.
Sourcepub fn cmpge(self, rhs: Vec4) -> BVec4A
pub fn cmpge(self, rhs: Vec4) -> BVec4A
Returns a vector mask containing the result of a >= comparison for each element of
self and rhs.
In other words this computes [self.x >= rhs.x, self.y >= rhs.y, ..] for all
elements.
Sourcepub fn cmpgt(self, rhs: Vec4) -> BVec4A
pub fn cmpgt(self, rhs: Vec4) -> BVec4A
Returns a vector mask containing the result of a > comparison for each element of
self and rhs.
In other words this computes [self.x > rhs.x, self.y > rhs.y, ..] for all
elements.
Sourcepub fn cmple(self, rhs: Vec4) -> BVec4A
pub fn cmple(self, rhs: Vec4) -> BVec4A
Returns a vector mask containing the result of a <= comparison for each element of
self and rhs.
In other words this computes [self.x <= rhs.x, self.y <= rhs.y, ..] for all
elements.
Sourcepub fn cmplt(self, rhs: Vec4) -> BVec4A
pub fn cmplt(self, rhs: Vec4) -> BVec4A
Returns a vector mask containing the result of a < comparison for each element of
self and rhs.
In other words this computes [self.x < rhs.x, self.y < rhs.y, ..] for all
elements.
Sourcepub fn abs(self) -> Vec4
pub fn abs(self) -> Vec4
Returns a vector containing the absolute value of each element of self.
Sourcepub fn signum(self) -> Vec4
pub fn signum(self) -> Vec4
Returns a vector with elements representing the sign of self.
1.0if the number is positive,+0.0orINFINITY-1.0if the number is negative,-0.0orNEG_INFINITYNANif the number isNAN
Sourcepub fn copysign(self, rhs: Vec4) -> Vec4
pub fn copysign(self, rhs: Vec4) -> Vec4
Returns a vector with signs of rhs and the magnitudes of self.
Sourcepub fn is_negative_bitmask(self) -> u32
pub fn is_negative_bitmask(self) -> u32
Returns a bitmask with the lowest 4 bits set to the sign bits from the elements of self.
A negative element results in a 1 bit and a positive element in a 0 bit. Element x goes
into the first lowest bit, element y into the second, etc.
An element is negative if it has a negative sign, including -0.0, NaNs with negative sign bit and negative infinity.
Sourcepub fn is_negative_mask(self) -> BVec4A
pub fn is_negative_mask(self) -> BVec4A
Returns a mask indicating which components are negative.
An element is negative if it has a negative sign, including -0.0, NaNs with negative sign bit and negative infinity.
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_finite_mask(self) -> BVec4A
pub fn is_finite_mask(self) -> BVec4A
Performs is_finite on each element of self, returning a vector mask of the results.
In other words, this computes [x.is_finite(), y.is_finite(), ...].
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(), ...].
Sourcepub fn length_squared(self) -> f32
pub fn length_squared(self) -> f32
Computes the squared length of self.
This is faster than length() as it avoids a square root operation.
Sourcepub fn length_recip(self) -> f32
pub fn length_recip(self) -> f32
Computes 1.0 / length().
For valid results, self must not be of length zero.
Sourcepub fn distance(self, rhs: Vec4) -> f32
pub fn distance(self, rhs: Vec4) -> f32
Computes the Euclidean distance between two points in space.
Sourcepub fn distance_squared(self, rhs: Vec4) -> f32
pub fn distance_squared(self, rhs: Vec4) -> f32
Compute the squared euclidean distance between two points in space.
Sourcepub fn div_euclid(self, rhs: Vec4) -> Vec4
pub fn div_euclid(self, rhs: Vec4) -> Vec4
Returns the element-wise quotient of [Euclidean division] of self by rhs.
Sourcepub fn rem_euclid(self, rhs: Vec4) -> Vec4
pub fn rem_euclid(self, rhs: Vec4) -> Vec4
Returns the element-wise remainder of Euclidean division of self by rhs.
Sourcepub fn normalize(self) -> Vec4
pub fn normalize(self) -> Vec4
Returns self normalized to length 1.0.
For valid results, self must be finite and not of length zero, nor very close to zero.
See also Self::try_normalize() and Self::normalize_or_zero().
§Panics
Will panic if the resulting normalized vector is not finite 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(self, fallback: Vec4) -> Vec4
pub fn normalize_or(self, fallback: Vec4) -> Vec4
Returns self normalized to length 1.0 if possible, else returns a
fallback value.
In particular, if the input is zero (or very close to zero), or non-finite, the result of this operation will be the fallback value.
See also Self::try_normalize().
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 normalize_and_length(self) -> (Vec4, f32)
pub fn normalize_and_length(self) -> (Vec4, f32)
Returns self normalized to length 1.0 and the length of self.
If self is zero length then (Self::X, 0.0) is returned.
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 approximately 1e-4.
Sourcepub fn project_onto(self, rhs: Vec4) -> Vec4
pub fn project_onto(self, rhs: Vec4) -> Vec4
Returns the vector projection of self onto rhs.
rhs must be of non-zero length.
§Panics
Will panic if rhs is zero length when glam_assert is enabled.
Sourcepub fn reject_from(self, rhs: Vec4) -> Vec4
pub fn reject_from(self, rhs: Vec4) -> Vec4
Returns the vector rejection of self from rhs.
The vector rejection is the vector perpendicular to the projection of self onto
rhs, in rhs words the result of self - self.project_onto(rhs).
rhs must be of non-zero length.
§Panics
Will panic if rhs has a length of zero when glam_assert is enabled.
Sourcepub fn project_onto_normalized(self, rhs: Vec4) -> Vec4
pub fn project_onto_normalized(self, rhs: Vec4) -> Vec4
Returns the vector projection of self onto rhs.
rhs must be normalized.
§Panics
Will panic if rhs is not normalized when glam_assert is enabled.
Sourcepub fn reject_from_normalized(self, rhs: Vec4) -> Vec4
pub fn reject_from_normalized(self, rhs: Vec4) -> Vec4
Returns the vector rejection of self from rhs.
The vector rejection is the vector perpendicular to the projection of self onto
rhs, in rhs words the result of self - self.project_onto(rhs).
rhs must be normalized.
§Panics
Will panic if rhs is not normalized when glam_assert is enabled.
Sourcepub fn round(self) -> Vec4
pub fn round(self) -> Vec4
Returns a vector containing the nearest integer to a number for each element of self.
Round half-way cases away from 0.0.
Sourcepub fn floor(self) -> Vec4
pub fn floor(self) -> Vec4
Returns a vector containing the largest integer less than or equal to a number for each
element of self.
Sourcepub fn ceil(self) -> Vec4
pub fn ceil(self) -> Vec4
Returns a vector containing the smallest integer greater than or equal to a number for
each element of self.
Sourcepub fn trunc(self) -> Vec4
pub fn trunc(self) -> Vec4
Returns a vector containing the integer part each element of self. This means numbers are
always truncated towards zero.
Sourcepub fn step(self, rhs: Vec4) -> Vec4
pub fn step(self, rhs: Vec4) -> Vec4
Returns a vector containing 0.0 if rhs < self and 1.0 otherwise.
Similar to glsl’s step(edge, x), which translates into edge.step(x)
Sourcepub fn smoothstep(self, edge0: Vec4, edge1: Vec4) -> Vec4
pub fn smoothstep(self, edge0: Vec4, edge1: Vec4) -> Vec4
Performs Hermite interpolation between 0.0 and 1.0 using x normalized to [edge0, edge1].
This is equivalent to t * t * (3.0 - 2.0 * t), where t is clamped to [0.0, 1.0].
Results are undefined if any element of edge0 is greater than or equal to the corresponding
element of edge1.
§Panics
Will panic if any element of edge0 is greater than or equal to the corresponding element
of edge1, when glam_assert is enabled.
Sourcepub fn saturate(self) -> Vec4
pub fn saturate(self) -> Vec4
Returns a vector containing all elements of self clamped to the range of [0, 1].
Sourcepub fn fract(self) -> Vec4
pub fn fract(self) -> Vec4
Returns a vector containing the fractional part of the vector as self - self.trunc().
Note that this differs from the GLSL implementation of fract which returns
self - self.floor().
Note that this is fast but not precise for large numbers.
Sourcepub fn fract_gl(self) -> Vec4
pub fn fract_gl(self) -> Vec4
Returns a vector containing the fractional part of the vector as self - self.floor().
Note that this differs from the Rust implementation of fract which returns
self - self.trunc().
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 ln(self) -> Vec4
pub fn ln(self) -> Vec4
Returns a vector containing the natural logarithm for each element of self.
This returns NaN when the element is negative and negative infinity when the element is zero.
Sourcepub fn log2(self) -> Vec4
pub fn log2(self) -> Vec4
Returns a vector containing the base 2 logarithm for each element of self.
This returns NaN when the element is negative and negative infinity when the element is zero.
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 sqrt(self) -> Vec4
pub fn sqrt(self) -> Vec4
Returns a vector containing the square root for each element of self.
This returns NaN when the element is negative.
Sourcepub fn sin_cos(self) -> (Vec4, Vec4)
pub fn sin_cos(self) -> (Vec4, Vec4)
Returns a tuple of two vectors containing the sine and cosine for each element of self.
Sourcepub fn recip(self) -> Vec4
pub fn recip(self) -> Vec4
Returns a vector containing the reciprocal 1.0/n of each element of self.
Sourcepub fn lerp(self, rhs: Vec4, s: f32) -> Vec4
pub fn lerp(self, rhs: Vec4, s: f32) -> Vec4
Performs a linear interpolation between self and rhs based on the value s, using the
form self * (1.0 - s) + rhs * 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 the range [0, 1], the result is linearly
extrapolated.
The result is guaranteed to be self at s == 0.0 and rhs at s == 1.0, even when the
values differ greatly in magnitude, but it is not monotonic in s for nearly equal inputs
and may not preserve equal inputs exactly. Consider lerp_monotonic
instead when interpolating between values that may be equal or nearly equal.
Sourcepub fn lerp_monotonic(self, rhs: Vec4, s: f32) -> Vec4
pub fn lerp_monotonic(self, rhs: Vec4, s: f32) -> Vec4
Performs a linear interpolation between self and rhs based on the value s, using the
monotonic form self + (rhs - self) * 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 the range [0, 1], the result is linearly
extrapolated.
Prefer this over lerp when interpolating between values that may be equal or
nearly equal: the result is monotonic in s and equal inputs are preserved exactly, avoiding
the rounding jitter that lerp can introduce. The tradeoff is that
rhs - self is evaluated first, so this is less accurate than lerp when
self and rhs differ greatly in magnitude, and overflows to infinity when they have
opposite signs and large magnitudes.
On SIMD back-ends the multiply and add are fused when the target supports it, which has a single rounding step and can be more accurate than a separate multiply and add.
Sourcepub fn move_towards(self, rhs: Vec4, d: f32) -> Vec4
pub fn move_towards(self, rhs: Vec4, d: f32) -> Vec4
Moves towards rhs based on the value d.
When d is 0.0, the result will be equal to self. When d is equal to
self.distance(rhs), the result will be equal to rhs. Will not go past rhs.
Sourcepub fn midpoint(self, rhs: Vec4) -> Vec4
pub fn midpoint(self, rhs: Vec4) -> Vec4
Calculates the midpoint between self and rhs.
The midpoint is the average of, or halfway point between, two vectors.
a.midpoint(b) should yield the same result as a.lerp(b, 0.5)
while being slightly cheaper to compute.
Sourcepub fn abs_diff_eq(self, rhs: Vec4, max_abs_diff: f32) -> bool
pub fn abs_diff_eq(self, rhs: Vec4, max_abs_diff: f32) -> bool
Returns true if the absolute difference of all elements between self and rhs is
less than or equal to max_abs_diff.
This can be used to compare if two vectors contain similar elements. It works best when
comparing with a known value. The max_abs_diff that should be used used depends on
the values being compared against.
For more see comparing floating point numbers.
Sourcepub fn clamp_length(self, min: f32, max: f32) -> Vec4
pub fn clamp_length(self, min: f32, max: f32) -> Vec4
Returns a vector with a length no less than min and no more than max.
§Panics
Will panic if min is greater than max, or if either min or max is negative, 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.
§Panics
Will panic if max is negative when glam_assert is enabled.
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.
§Panics
Will panic if min is negative when glam_assert is enabled.
Sourcepub fn mul_add(self, a: Vec4, b: Vec4) -> Vec4
pub fn mul_add(self, a: Vec4, b: Vec4) -> Vec4
Fused multiply-add. Computes (self * a) + b element-wise with only one rounding
error, yielding a more accurate result than an unfused multiply-add.
Using mul_add may be more performant than an unfused multiply-add if the target
architecture has a dedicated fma CPU instruction. However, this is not always true,
and will be heavily dependant on designing algorithms with specific target hardware in
mind.
Sourcepub fn reflect(self, normal: Vec4) -> Vec4
pub fn reflect(self, normal: Vec4) -> Vec4
Returns the reflection vector for a given incident vector self and surface normal
normal.
normal must be normalized.
§Panics
Will panic if normal is not normalized when glam_assert is enabled.
Sourcepub fn refract(self, normal: Vec4, eta: f32) -> Vec4
pub fn refract(self, normal: Vec4, eta: f32) -> Vec4
Returns the refraction direction for a given incident vector self, surface normal
normal and ratio of indices of refraction, eta. When total internal reflection occurs,
a zero vector will be returned.
self and normal must be normalized.
§Panics
Will panic if self or normal is not normalized when glam_assert is enabled.
Sourcepub fn as_dvec4(self) -> DVec4
Available on crate feature f64 only.
pub fn as_dvec4(self) -> DVec4
f64 only.Casts all elements of self to f64.
Sourcepub fn as_i8vec4(self) -> I8Vec4
Available on crate feature i8 only.
pub fn as_i8vec4(self) -> I8Vec4
i8 only.Casts all elements of self to i8.
Sourcepub fn as_u8vec4(self) -> U8Vec4
Available on crate feature u8 only.
pub fn as_u8vec4(self) -> U8Vec4
u8 only.Casts all elements of self to u8.
Sourcepub fn as_i16vec4(self) -> I16Vec4
Available on crate feature i16 only.
pub fn as_i16vec4(self) -> I16Vec4
i16 only.Casts all elements of self to i16.
Sourcepub fn as_u16vec4(self) -> U16Vec4
Available on crate feature u16 only.
pub fn as_u16vec4(self) -> U16Vec4
u16 only.Casts all elements of self to u16.
Sourcepub fn as_ivec4(self) -> IVec4
Available on crate feature i32 only.
pub fn as_ivec4(self) -> IVec4
i32 only.Casts all elements of self to i32.
Sourcepub fn as_uvec4(self) -> UVec4
Available on crate feature u32 only.
pub fn as_uvec4(self) -> UVec4
u32 only.Casts all elements of self to u32.
Sourcepub fn as_i64vec4(self) -> I64Vec4
Available on crate feature i64 only.
pub fn as_i64vec4(self) -> I64Vec4
i64 only.Casts all elements of self to i64.
Sourcepub fn as_u64vec4(self) -> U64Vec4
Available on crate feature u64 only.
pub fn as_u64vec4(self) -> U64Vec4
u64 only.Casts all elements of self to u64.
Trait Implementations§
Source§impl AbsDiffEq for Vec4
impl AbsDiffEq for Vec4
Source§fn default_epsilon() -> <Vec4 as AbsDiffEq>::Epsilon
fn default_epsilon() -> <Vec4 as AbsDiffEq>::Epsilon
Source§fn abs_diff_eq(
&self,
other: &Vec4,
epsilon: <Vec4 as AbsDiffEq>::Epsilon,
) -> bool
fn abs_diff_eq( &self, other: &Vec4, epsilon: <Vec4 as AbsDiffEq>::Epsilon, ) -> bool
Source§fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
AbsDiffEq::abs_diff_eq.Source§impl AddAssign for Vec4
impl AddAssign for Vec4
Source§fn add_assign(&mut self, rhs: Vec4)
fn add_assign(&mut self, rhs: Vec4)
+= operation. Read moreSource§impl AddAssign<&Vec4> for Vec4
impl AddAssign<&Vec4> for Vec4
Source§fn add_assign(&mut self, rhs: &Vec4)
fn add_assign(&mut self, rhs: &Vec4)
+= operation. Read moreSource§impl AddAssign<&f32> for Vec4
impl AddAssign<&f32> for Vec4
Source§fn add_assign(&mut self, rhs: &f32)
fn add_assign(&mut self, rhs: &f32)
+= operation. Read moreSource§impl AddAssign<f32> for Vec4
impl AddAssign<f32> for Vec4
Source§fn add_assign(&mut self, rhs: f32)
fn add_assign(&mut self, rhs: f32)
+= operation. Read moreSource§impl Animatable for Vec4
impl Animatable for Vec4
Source§impl AsMutVectorParts<f32, 4> for Vec4
impl AsMutVectorParts<f32, 4> for Vec4
fn as_mut_parts(&mut self) -> &mut [f32; 4]
Source§impl AsRefVectorParts<f32, 4> for Vec4
impl AsRefVectorParts<f32, 4> for Vec4
fn as_ref_parts(&self) -> &[f32; 4]
impl Copy for Vec4
Source§impl CreateFrom for Vec4
impl CreateFrom for Vec4
Source§impl<'de> Deserialize<'de> for Vec4
Deserialize expects a sequence of 4 values.
impl<'de> Deserialize<'de> for Vec4
Deserialize expects a sequence of 4 values.
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Vec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Vec4, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl DivAssign for Vec4
impl DivAssign for Vec4
Source§fn div_assign(&mut self, rhs: Vec4)
fn div_assign(&mut self, rhs: Vec4)
/= operation. Read moreSource§impl DivAssign<&Vec4> for Vec4
impl DivAssign<&Vec4> for Vec4
Source§fn div_assign(&mut self, rhs: &Vec4)
fn div_assign(&mut self, rhs: &Vec4)
/= operation. Read moreSource§impl DivAssign<&f32> for Vec4
impl DivAssign<&f32> for Vec4
Source§fn div_assign(&mut self, rhs: &f32)
fn div_assign(&mut self, rhs: &f32)
/= operation. Read moreSource§impl DivAssign<f32> for Vec4
impl DivAssign<f32> for Vec4
Source§fn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
/= operation. Read moreimpl EaseVectorSpace for Vec4
Source§impl FromReflect for Vec4
impl FromReflect for Vec4
Source§fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Vec4>
fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Vec4>
Self from a reflected value.Source§fn take_from_reflect(
reflect: Box<dyn PartialReflect>,
) -> Result<Self, Box<dyn PartialReflect>>
fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>
Self using,
constructing the value using from_reflect if that fails. Read moreSource§impl FromVectorParts<f32, 4> for Vec4
impl FromVectorParts<f32, 4> for Vec4
Source§impl GetTypeRegistration for Vec4
impl GetTypeRegistration for Vec4
Source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration for this type.Source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
Source§impl IntoReturn for Vec4
impl IntoReturn for Vec4
Source§impl MulAssign for Vec4
impl MulAssign for Vec4
Source§fn mul_assign(&mut self, rhs: Vec4)
fn mul_assign(&mut self, rhs: Vec4)
*= operation. Read moreSource§impl MulAssign<&Vec4> for Vec4
impl MulAssign<&Vec4> for Vec4
Source§fn mul_assign(&mut self, rhs: &Vec4)
fn mul_assign(&mut self, rhs: &Vec4)
*= operation. Read moreSource§impl MulAssign<&f32> for Vec4
impl MulAssign<&f32> for Vec4
Source§fn mul_assign(&mut self, rhs: &f32)
fn mul_assign(&mut self, rhs: &f32)
*= operation. Read moreSource§impl MulAssign<f32> for Vec4
impl MulAssign<f32> for Vec4
Source§fn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
*= operation. Read moreSource§impl NormedVectorSpace for Vec4
impl NormedVectorSpace for Vec4
Source§fn norm_squared(self) -> f32
fn norm_squared(self) -> f32
NormedVectorSpace::norm.Source§fn distance(self, rhs: Self) -> Self::Scalar
fn distance(self, rhs: Self) -> Self::Scalar
Source§fn distance_squared(self, rhs: Self) -> Self::Scalar
fn distance_squared(self, rhs: Self) -> Self::Scalar
NormedVectorSpace::distance.Source§impl PartialReflect for Vec4
impl PartialReflect for Vec4
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn try_apply(
&mut self,
value: &(dyn PartialReflect + 'static),
) -> Result<(), ApplyError>
fn try_apply( &mut self, value: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>
Source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
Source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Source§fn reflect_owned(self: Box<Vec4>) -> ReflectOwned
fn reflect_owned(self: Box<Vec4>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<Vec4>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Vec4>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
Source§fn into_partial_reflect(self: Box<Vec4>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Vec4>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
Source§fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
Source§fn reflect_partial_eq(
&self,
value: &(dyn PartialReflect + 'static),
) -> Option<bool>
fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>
Source§fn reflect_partial_cmp(
&self,
value: &(dyn PartialReflect + 'static),
) -> Option<Ordering>
fn reflect_partial_cmp( &self, value: &(dyn PartialReflect + 'static), ) -> Option<Ordering>
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
Self using reflection. Read moreSource§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn to_dynamic(&self) -> Result<Box<dyn PartialReflect>, ReflectCloneError>
fn to_dynamic(&self) -> Result<Box<dyn PartialReflect>, ReflectCloneError>
Source§fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
PartialReflect, combines reflect_clone and
take in a useful fashion, automatically constructing an appropriate
ReflectCloneError if the downcast fails.Source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
impl Pod for Vec4
Source§impl Reflect for Vec4
impl Reflect for Vec4
Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any. Read moreSource§fn into_reflect(self: Box<Vec4>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Vec4>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
Source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
Source§impl RelativeEq for Vec4
impl RelativeEq for Vec4
Source§fn default_max_relative() -> <Vec4 as AbsDiffEq>::Epsilon
fn default_max_relative() -> <Vec4 as AbsDiffEq>::Epsilon
Source§fn relative_eq(
&self,
other: &Vec4,
epsilon: <Vec4 as AbsDiffEq>::Epsilon,
max_relative: <Vec4 as AbsDiffEq>::Epsilon,
) -> bool
fn relative_eq( &self, other: &Vec4, epsilon: <Vec4 as AbsDiffEq>::Epsilon, max_relative: <Vec4 as AbsDiffEq>::Epsilon, ) -> bool
Source§fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon,
) -> bool
fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool
RelativeEq::relative_eq.Source§impl RemAssign for Vec4
impl RemAssign for Vec4
Source§fn rem_assign(&mut self, rhs: Vec4)
fn rem_assign(&mut self, rhs: Vec4)
%= operation. Read moreSource§impl RemAssign<&Vec4> for Vec4
impl RemAssign<&Vec4> for Vec4
Source§fn rem_assign(&mut self, rhs: &Vec4)
fn rem_assign(&mut self, rhs: &Vec4)
%= operation. Read moreSource§impl RemAssign<&f32> for Vec4
impl RemAssign<&f32> for Vec4
Source§fn rem_assign(&mut self, rhs: &f32)
fn rem_assign(&mut self, rhs: &f32)
%= operation. Read moreSource§impl RemAssign<f32> for Vec4
impl RemAssign<f32> for Vec4
Source§fn rem_assign(&mut self, rhs: f32)
fn rem_assign(&mut self, rhs: f32)
%= operation. Read moreSource§impl SampleUniform for Vec4
impl SampleUniform for Vec4
Source§type Sampler = UniformVec4<UniformFloat<f32>>
type Sampler = UniformVec4<UniformFloat<f32>>
UniformSampler implementation supporting type X.Source§impl Serialize for Vec4
Serialize as a sequence of 4 values.
impl Serialize for Vec4
Serialize as a sequence of 4 values.
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Source§impl ShaderSize for Vec4where
f32: ShaderSize,
impl ShaderSize for Vec4where
f32: ShaderSize,
Source§const SHADER_SIZE: NonZero<u64> = _
const SHADER_SIZE: NonZero<u64> = _
ShaderType::min_size)Source§impl ShaderType for Vec4where
f32: ShaderSize,
impl ShaderType for Vec4where
f32: ShaderSize,
Source§fn assert_uniform_compat()
fn assert_uniform_compat()
Self meets the requirements of the
uniform address space restrictions on stored values and the
uniform address space layout constraints Read moreSource§impl Struct for Vec4
impl Struct for Vec4
Source§fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>
name as a &dyn PartialReflect.Source§fn field_mut(
&mut self,
name: &str,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_mut( &mut self, name: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>
name as a
&mut dyn PartialReflect.Source§fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
index as a
&dyn PartialReflect.Source§fn field_at_mut(
&mut self,
index: usize,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_at_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>
index
as a &mut dyn PartialReflect.Source§fn index_of_name(&self, name: &str) -> Option<usize>
fn index_of_name(&self, name: &str) -> Option<usize>
Source§fn iter_fields(&self) -> FieldIter<'_> ⓘ
fn iter_fields(&self) -> FieldIter<'_> ⓘ
Source§fn to_dynamic_struct(&self) -> Result<DynamicStruct, ReflectCloneError>
fn to_dynamic_struct(&self) -> Result<DynamicStruct, ReflectCloneError>
DynamicStruct from this struct. Read moreSource§fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
None if TypeInfo is not available.Source§impl SubAssign for Vec4
impl SubAssign for Vec4
Source§fn sub_assign(&mut self, rhs: Vec4)
fn sub_assign(&mut self, rhs: Vec4)
-= operation. Read moreSource§impl SubAssign<&Vec4> for Vec4
impl SubAssign<&Vec4> for Vec4
Source§fn sub_assign(&mut self, rhs: &Vec4)
fn sub_assign(&mut self, rhs: &Vec4)
-= operation. Read moreSource§impl SubAssign<&f32> for Vec4
impl SubAssign<&f32> for Vec4
Source§fn sub_assign(&mut self, rhs: &f32)
fn sub_assign(&mut self, rhs: &f32)
-= operation. Read moreSource§impl SubAssign<f32> for Vec4
impl SubAssign<f32> for Vec4
Source§fn sub_assign(&mut self, rhs: f32)
fn sub_assign(&mut self, rhs: f32)
-= operation. Read moreSource§impl TypePath for Vec4
impl TypePath for Vec4
Source§fn type_path() -> &'static str
fn type_path() -> &'static str
Source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
Source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
Source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
Source§impl UlpsEq for Vec4
impl UlpsEq for Vec4
Source§fn default_max_ulps() -> u32
fn default_max_ulps() -> u32
Source§impl Vec4Swizzles for Vec4
impl Vec4Swizzles for Vec4
type Vec2 = Vec2
type Vec3 = Vec3
fn xx(self) -> Vec2
fn xy(self) -> Vec2
fn with_xy(self, rhs: Vec2) -> Vec4
fn xz(self) -> Vec2
fn with_xz(self, rhs: Vec2) -> Vec4
fn xw(self) -> Vec2
fn with_xw(self, rhs: Vec2) -> Vec4
fn yx(self) -> Vec2
fn with_yx(self, rhs: Vec2) -> Vec4
fn yy(self) -> Vec2
fn yz(self) -> Vec2
fn with_yz(self, rhs: Vec2) -> Vec4
fn yw(self) -> Vec2
fn with_yw(self, rhs: Vec2) -> Vec4
fn zx(self) -> Vec2
fn with_zx(self, rhs: Vec2) -> Vec4
fn zy(self) -> Vec2
fn with_zy(self, rhs: Vec2) -> Vec4
fn zz(self) -> Vec2
fn zw(self) -> Vec2
fn with_zw(self, rhs: Vec2) -> Vec4
fn wx(self) -> Vec2
fn with_wx(self, rhs: Vec2) -> Vec4
fn wy(self) -> Vec2
fn with_wy(self, rhs: Vec2) -> Vec4
fn wz(self) -> Vec2
fn with_wz(self, rhs: Vec2) -> Vec4
fn ww(self) -> Vec2
fn xxx(self) -> Vec3
fn xxy(self) -> Vec3
fn xxz(self) -> Vec3
fn xxw(self) -> Vec3
fn xyx(self) -> Vec3
fn xyy(self) -> Vec3
fn xyz(self) -> Vec3
fn with_xyz(self, rhs: Vec3) -> Vec4
fn xyw(self) -> Vec3
fn with_xyw(self, rhs: Vec3) -> Vec4
fn xzx(self) -> Vec3
fn xzy(self) -> Vec3
fn with_xzy(self, rhs: Vec3) -> Vec4
fn xzz(self) -> Vec3
fn xzw(self) -> Vec3
fn with_xzw(self, rhs: Vec3) -> Vec4
fn xwx(self) -> Vec3
fn xwy(self) -> Vec3
fn with_xwy(self, rhs: Vec3) -> Vec4
fn xwz(self) -> Vec3
fn with_xwz(self, rhs: Vec3) -> Vec4
fn xww(self) -> Vec3
fn yxx(self) -> Vec3
fn yxy(self) -> Vec3
fn yxz(self) -> Vec3
fn with_yxz(self, rhs: Vec3) -> Vec4
fn yxw(self) -> Vec3
fn with_yxw(self, rhs: Vec3) -> Vec4
fn yyx(self) -> Vec3
fn yyy(self) -> Vec3
fn yyz(self) -> Vec3
fn yyw(self) -> Vec3
fn yzx(self) -> Vec3
fn with_yzx(self, rhs: Vec3) -> Vec4
fn yzy(self) -> Vec3
fn yzz(self) -> Vec3
fn yzw(self) -> Vec3
fn with_yzw(self, rhs: Vec3) -> Vec4
fn ywx(self) -> Vec3
fn with_ywx(self, rhs: Vec3) -> Vec4
fn ywy(self) -> Vec3
fn ywz(self) -> Vec3
fn with_ywz(self, rhs: Vec3) -> Vec4
fn yww(self) -> Vec3
fn zxx(self) -> Vec3
fn zxy(self) -> Vec3
fn with_zxy(self, rhs: Vec3) -> Vec4
fn zxz(self) -> Vec3
fn zxw(self) -> Vec3
fn with_zxw(self, rhs: Vec3) -> Vec4
fn zyx(self) -> Vec3
fn with_zyx(self, rhs: Vec3) -> Vec4
fn zyy(self) -> Vec3
fn zyz(self) -> Vec3
fn zyw(self) -> Vec3
fn with_zyw(self, rhs: Vec3) -> Vec4
fn zzx(self) -> Vec3
fn zzy(self) -> Vec3
fn zzz(self) -> Vec3
fn zzw(self) -> Vec3
fn zwx(self) -> Vec3
fn with_zwx(self, rhs: Vec3) -> Vec4
fn zwy(self) -> Vec3
fn with_zwy(self, rhs: Vec3) -> Vec4
fn zwz(self) -> Vec3
fn zww(self) -> Vec3
fn wxx(self) -> Vec3
fn wxy(self) -> Vec3
fn with_wxy(self, rhs: Vec3) -> Vec4
fn wxz(self) -> Vec3
fn with_wxz(self, rhs: Vec3) -> Vec4
fn wxw(self) -> Vec3
fn wyx(self) -> Vec3
fn with_wyx(self, rhs: Vec3) -> Vec4
fn wyy(self) -> Vec3
fn wyz(self) -> Vec3
fn with_wyz(self, rhs: Vec3) -> Vec4
fn wyw(self) -> Vec3
fn wzx(self) -> Vec3
fn with_wzx(self, rhs: Vec3) -> Vec4
fn wzy(self) -> Vec3
fn with_wzy(self, rhs: Vec3) -> Vec4
fn wzz(self) -> Vec3
fn wzw(self) -> Vec3
fn wwx(self) -> Vec3
fn wwy(self) -> Vec3
fn wwz(self) -> Vec3
fn www(self) -> Vec3
fn xxxx(self) -> Vec4
fn xxxy(self) -> Vec4
fn xxxz(self) -> Vec4
fn xxxw(self) -> Vec4
fn xxyx(self) -> Vec4
fn xxyy(self) -> Vec4
fn xxyz(self) -> Vec4
fn xxyw(self) -> Vec4
fn xxzx(self) -> Vec4
fn xxzy(self) -> Vec4
fn xxzz(self) -> Vec4
fn xxzw(self) -> Vec4
fn xxwx(self) -> Vec4
fn xxwy(self) -> Vec4
fn xxwz(self) -> Vec4
fn xxww(self) -> Vec4
fn xyxx(self) -> Vec4
fn xyxy(self) -> Vec4
fn xyxz(self) -> Vec4
fn xyxw(self) -> Vec4
fn xyyx(self) -> Vec4
fn xyyy(self) -> Vec4
fn xyyz(self) -> Vec4
fn xyyw(self) -> Vec4
fn xyzx(self) -> Vec4
fn xyzy(self) -> Vec4
fn xyzz(self) -> Vec4
fn xywx(self) -> Vec4
fn xywy(self) -> Vec4
fn xywz(self) -> Vec4
fn xyww(self) -> Vec4
fn xzxx(self) -> Vec4
fn xzxy(self) -> Vec4
fn xzxz(self) -> Vec4
fn xzxw(self) -> Vec4
fn xzyx(self) -> Vec4
fn xzyy(self) -> Vec4
fn xzyz(self) -> Vec4
fn xzyw(self) -> Vec4
fn xzzx(self) -> Vec4
fn xzzy(self) -> Vec4
fn xzzz(self) -> Vec4
fn xzzw(self) -> Vec4
fn xzwx(self) -> Vec4
fn xzwy(self) -> Vec4
fn xzwz(self) -> Vec4
fn xzww(self) -> Vec4
fn xwxx(self) -> Vec4
fn xwxy(self) -> Vec4
fn xwxz(self) -> Vec4
fn xwxw(self) -> Vec4
fn xwyx(self) -> Vec4
fn xwyy(self) -> Vec4
fn xwyz(self) -> Vec4
fn xwyw(self) -> Vec4
fn xwzx(self) -> Vec4
fn xwzy(self) -> Vec4
fn xwzz(self) -> Vec4
fn xwzw(self) -> Vec4
fn xwwx(self) -> Vec4
fn xwwy(self) -> Vec4
fn xwwz(self) -> Vec4
fn xwww(self) -> Vec4
fn yxxx(self) -> Vec4
fn yxxy(self) -> Vec4
fn yxxz(self) -> Vec4
fn yxxw(self) -> Vec4
fn yxyx(self) -> Vec4
fn yxyy(self) -> Vec4
fn yxyz(self) -> Vec4
fn yxyw(self) -> Vec4
fn yxzx(self) -> Vec4
fn yxzy(self) -> Vec4
fn yxzz(self) -> Vec4
fn yxzw(self) -> Vec4
fn yxwx(self) -> Vec4
fn yxwy(self) -> Vec4
fn yxwz(self) -> Vec4
fn yxww(self) -> Vec4
fn yyxx(self) -> Vec4
fn yyxy(self) -> Vec4
fn yyxz(self) -> Vec4
fn yyxw(self) -> Vec4
fn yyyx(self) -> Vec4
fn yyyy(self) -> Vec4
fn yyyz(self) -> Vec4
fn yyyw(self) -> Vec4
fn yyzx(self) -> Vec4
fn yyzy(self) -> Vec4
fn yyzz(self) -> Vec4
fn yyzw(self) -> Vec4
fn yywx(self) -> Vec4
fn yywy(self) -> Vec4
fn yywz(self) -> Vec4
fn yyww(self) -> Vec4
fn yzxx(self) -> Vec4
fn yzxy(self) -> Vec4
fn yzxz(self) -> Vec4
fn yzxw(self) -> Vec4
fn yzyx(self) -> Vec4
fn yzyy(self) -> Vec4
fn yzyz(self) -> Vec4
fn yzyw(self) -> Vec4
fn yzzx(self) -> Vec4
fn yzzy(self) -> Vec4
fn yzzz(self) -> Vec4
fn yzzw(self) -> Vec4
fn yzwx(self) -> Vec4
fn yzwy(self) -> Vec4
fn yzwz(self) -> Vec4
fn yzww(self) -> Vec4
fn ywxx(self) -> Vec4
fn ywxy(self) -> Vec4
fn ywxz(self) -> Vec4
fn ywxw(self) -> Vec4
fn ywyx(self) -> Vec4
fn ywyy(self) -> Vec4
fn ywyz(self) -> Vec4
fn ywyw(self) -> Vec4
fn ywzx(self) -> Vec4
fn ywzy(self) -> Vec4
fn ywzz(self) -> Vec4
fn ywzw(self) -> Vec4
fn ywwx(self) -> Vec4
fn ywwy(self) -> Vec4
fn ywwz(self) -> Vec4
fn ywww(self) -> Vec4
fn zxxx(self) -> Vec4
fn zxxy(self) -> Vec4
fn zxxz(self) -> Vec4
fn zxxw(self) -> Vec4
fn zxyx(self) -> Vec4
fn zxyy(self) -> Vec4
fn zxyz(self) -> Vec4
fn zxyw(self) -> Vec4
fn zxzx(self) -> Vec4
fn zxzy(self) -> Vec4
fn zxzz(self) -> Vec4
fn zxzw(self) -> Vec4
fn zxwx(self) -> Vec4
fn zxwy(self) -> Vec4
fn zxwz(self) -> Vec4
fn zxww(self) -> Vec4
fn zyxx(self) -> Vec4
fn zyxy(self) -> Vec4
fn zyxz(self) -> Vec4
fn zyxw(self) -> Vec4
fn zyyx(self) -> Vec4
fn zyyy(self) -> Vec4
fn zyyz(self) -> Vec4
fn zyyw(self) -> Vec4
fn zyzx(self) -> Vec4
fn zyzy(self) -> Vec4
fn zyzz(self) -> Vec4
fn zyzw(self) -> Vec4
fn zywx(self) -> Vec4
fn zywy(self) -> Vec4
fn zywz(self) -> Vec4
fn zyww(self) -> Vec4
fn zzxx(self) -> Vec4
fn zzxy(self) -> Vec4
fn zzxz(self) -> Vec4
fn zzxw(self) -> Vec4
fn zzyx(self) -> Vec4
fn zzyy(self) -> Vec4
fn zzyz(self) -> Vec4
fn zzyw(self) -> Vec4
fn zzzx(self) -> Vec4
fn zzzy(self) -> Vec4
fn zzzz(self) -> Vec4
fn zzzw(self) -> Vec4
fn zzwx(self) -> Vec4
fn zzwy(self) -> Vec4
fn zzwz(self) -> Vec4
fn zzww(self) -> Vec4
fn zwxx(self) -> Vec4
fn zwxy(self) -> Vec4
fn zwxz(self) -> Vec4
fn zwxw(self) -> Vec4
fn zwyx(self) -> Vec4
fn zwyy(self) -> Vec4
fn zwyz(self) -> Vec4
fn zwyw(self) -> Vec4
fn zwzx(self) -> Vec4
fn zwzy(self) -> Vec4
fn zwzz(self) -> Vec4
fn zwzw(self) -> Vec4
fn zwwx(self) -> Vec4
fn zwwy(self) -> Vec4
fn zwwz(self) -> Vec4
fn zwww(self) -> Vec4
fn wxxx(self) -> Vec4
fn wxxy(self) -> Vec4
fn wxxz(self) -> Vec4
fn wxxw(self) -> Vec4
fn wxyx(self) -> Vec4
fn wxyy(self) -> Vec4
fn wxyz(self) -> Vec4
fn wxyw(self) -> Vec4
fn wxzx(self) -> Vec4
fn wxzy(self) -> Vec4
fn wxzz(self) -> Vec4
fn wxzw(self) -> Vec4
fn wxwx(self) -> Vec4
fn wxwy(self) -> Vec4
fn wxwz(self) -> Vec4
fn wxww(self) -> Vec4
fn wyxx(self) -> Vec4
fn wyxy(self) -> Vec4
fn wyxz(self) -> Vec4
fn wyxw(self) -> Vec4
fn wyyx(self) -> Vec4
fn wyyy(self) -> Vec4
fn wyyz(self) -> Vec4
fn wyyw(self) -> Vec4
fn wyzx(self) -> Vec4
fn wyzy(self) -> Vec4
fn wyzz(self) -> Vec4
fn wyzw(self) -> Vec4
fn wywx(self) -> Vec4
fn wywy(self) -> Vec4
fn wywz(self) -> Vec4
fn wyww(self) -> Vec4
fn wzxx(self) -> Vec4
fn wzxy(self) -> Vec4
fn wzxz(self) -> Vec4
fn wzxw(self) -> Vec4
fn wzyx(self) -> Vec4
fn wzyy(self) -> Vec4
fn wzyz(self) -> Vec4
fn wzyw(self) -> Vec4
fn wzzx(self) -> Vec4
fn wzzy(self) -> Vec4
fn wzzz(self) -> Vec4
fn wzzw(self) -> Vec4
fn wzwx(self) -> Vec4
fn wzwy(self) -> Vec4
fn wzwz(self) -> Vec4
fn wzww(self) -> Vec4
fn wwxx(self) -> Vec4
fn wwxy(self) -> Vec4
fn wwxz(self) -> Vec4
fn wwxw(self) -> Vec4
fn wwyx(self) -> Vec4
fn wwyy(self) -> Vec4
fn wwyz(self) -> Vec4
fn wwyw(self) -> Vec4
fn wwzx(self) -> Vec4
fn wwzy(self) -> Vec4
fn wwzz(self) -> Vec4
fn wwzw(self) -> Vec4
fn wwwx(self) -> Vec4
fn wwwy(self) -> Vec4
fn wwwz(self) -> Vec4
fn wwww(self) -> Vec4
fn xyzw(self) -> Self
Source§impl VectorSpace for Vec4
impl VectorSpace for Vec4
Auto Trait Implementations§
impl Freeze for Vec4
impl RefUnwindSafe for Vec4
impl Send for Vec4
impl Sync for Vec4
impl Unpin for Vec4
impl UnsafeUnpin for Vec4
impl UnwindSafe for Vec4
Blanket Implementations§
impl<T> AnyBitPattern for Twhere
T: Pod,
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Brush for T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
Source§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.Source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ConditionalSend for Twhere
T: Send,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
Source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path.Source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
Source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident.Source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name.Source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
Source§impl<T> DynamicTyped for Twhere
T: Typed,
impl<T> DynamicTyped for Twhere
T: Typed,
Source§fn reflect_type_info(&self) -> &'static TypeInfo
fn reflect_type_info(&self) -> &'static TypeInfo
Typed::type_info.Source§impl<V> Ease for Vwhere
V: EaseVectorSpace,
impl<V> Ease for Vwhere
V: EaseVectorSpace,
Source§fn interpolating_curve_unbounded(start: V, end: V) -> impl Curve<V>
fn interpolating_curve_unbounded(start: V, end: V) -> impl Curve<V>
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> FromTemplate for T
impl<T> FromTemplate for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
Source§impl<T> GetPath for T
impl<T> GetPath for T
Source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
path. Read moreSource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
path. Read moreSource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path. Read moreSource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path. Read moreimpl<T> GpuArrayBufferable for T
Source§impl<V> HasTangent for Vwhere
V: VectorSpace,
impl<V> HasTangent for Vwhere
V: VectorSpace,
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T> HitDataExtra for T
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> Interleave for Twhere
T: Pod,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Source§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
impl<T> NoUninit for Twhere
T: Pod,
impl<T, Rhs> NumAssignOps<Rhs> for T
impl<T, Rhs, Output> NumOps<Rhs, Output> for T
Source§impl<G> PatchFromTemplate for Gwhere
G: FromTemplate,
impl<G> PatchFromTemplate for Gwhere
G: FromTemplate,
Source§fn patch<F>(func: F) -> TemplatePatch<F, <G as PatchFromTemplate>::Template>
fn patch<F>(func: F) -> TemplatePatch<F, <G as PatchFromTemplate>::Template>
func, and turns it into a TemplatePatch.Source§impl<T> PatchTemplate for Twhere
T: Template,
impl<T> PatchTemplate for Twhere
T: Template,
Source§fn patch_template<F>(func: F) -> TemplatePatch<F, T>
fn patch_template<F>(func: F) -> TemplatePatch<F, T>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().impl<T, Base> RefNum<Base> for T
impl<T> Reflectable for T
Source§impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
Source§fn borrow(&self) -> &Borrowed
fn borrow(&self) -> &Borrowed
Borrow::borrowSource§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
impl<T> Settings for T
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<V> StableInterpolate for Vwhere
V: NormedVectorSpace<Scalar = f32>,
impl<V> StableInterpolate for Vwhere
V: NormedVectorSpace<Scalar = f32>,
Source§fn interpolate_stable(&self, other: &V, t: f32) -> V
fn interpolate_stable(&self, other: &V, t: f32) -> V
other given value using the parameter t. At
t = 0.0, a value equivalent to self is recovered, while t = 1.0 recovers a value
equivalent to other, with intermediate values interpolating between the two.
See the trait-level documentation for details.Source§fn interpolate_stable_assign(&mut self, other: &Self, t: f32)
fn interpolate_stable_assign(&mut self, other: &Self, t: f32)
Source§fn smooth_nudge(&mut self, target: &Self, decay_rate: f32, delta: f32)
fn smooth_nudge(&mut self, target: &Self, decay_rate: f32, delta: f32)
target at a given decay rate. The decay_rate
parameter controls how fast the distance between self and target decays relative to
the units of delta; the intended usage is for decay_rate to generally remain fixed,
while delta is something like delta_time from an updating system. This produces a
smooth following of the target that is independent of framerate. Read moreSource§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T> Template for T
impl<T> Template for T
Source§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
entity context to produce a Template::Output.Source§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clone.Source§impl<T, U> ToSample<U> for Twhere
U: FromSample<T>,
impl<T, U> ToSample<U> for Twhere
U: FromSample<T>,
fn to_sample_(self) -> U
Source§impl<T> TryStableInterpolate for Twhere
T: StableInterpolate,
impl<T> TryStableInterpolate for Twhere
T: StableInterpolate,
Source§fn try_interpolate_stable(
&self,
other: &T,
t: f32,
) -> Result<T, <T as TryStableInterpolate>::Error>
fn try_interpolate_stable( &self, other: &T, t: f32, ) -> Result<T, <T as TryStableInterpolate>::Error>
Source§fn try_interpolate_stable_assign(
&mut self,
other: &T,
t: f32,
) -> Result<(), <T as TryStableInterpolate>::Error>
fn try_interpolate_stable_assign( &mut self, other: &T, t: f32, ) -> Result<(), <T as TryStableInterpolate>::Error>
try_interpolate_stable that assigns the result to self for convenience.
On failure, self remains unchanged. Read moreSource§fn try_smooth_nudge(
&mut self,
target: &Self,
decay_rate: f32,
delta: f32,
) -> Result<(), Self::Error>
fn try_smooth_nudge( &mut self, target: &Self, decay_rate: f32, delta: f32, ) -> Result<(), Self::Error>
StableInterpolate::smooth_nudge but fallible.Source§impl<T> TypeData for T
impl<T> TypeData for T
Source§fn clone_type_data(&self) -> Box<dyn TypeData>
fn clone_type_data(&self) -> Box<dyn TypeData>
self.