pub struct Dir2(/* private fields */);Expand description
A normalized vector pointing in a direction in 2D space
Implementations§
Source§impl Dir2
impl Dir2
Sourcepub const SOUTH: Dir2
pub const SOUTH: Dir2
The “south” direction, equivalent to Dir2::NEG_Y.
Sourcepub const WEST: Dir2
pub const WEST: Dir2
The “west” direction, equivalent to Dir2::NEG_X.
Sourcepub const NORTH_EAST: Dir2
pub const NORTH_EAST: Dir2
The “north-east” direction, between Dir2::NORTH and Dir2::EAST.
Sourcepub const NORTH_WEST: Dir2
pub const NORTH_WEST: Dir2
The “north-west” direction, between Dir2::NORTH and Dir2::WEST.
Sourcepub const SOUTH_EAST: Dir2
pub const SOUTH_EAST: Dir2
The “south-east” direction, between Dir2::SOUTH and Dir2::EAST.
Sourcepub const SOUTH_WEST: Dir2
pub const SOUTH_WEST: Dir2
The “south-west” direction, between Dir2::SOUTH and Dir2::WEST.
Sourcepub const ALL_NEIGHBORS: [Dir2; 8]
pub const ALL_NEIGHBORS: [Dir2; 8]
All neighbors of a tile on a square grid in a 3x3 neighborhood. A combination of Self::CARDINALS and Self::DIAGONALS
Sourcepub fn new(value: Vec2) -> Result<Dir2, InvalidDirectionError>
pub fn new(value: Vec2) -> Result<Dir2, InvalidDirectionError>
Create a direction from a finite, nonzero Vec2, normalizing it.
Returns Err(InvalidDirectionError) if the length
of the given vector is zero (or very close to zero), infinite, or NaN.
Sourcepub fn new_unchecked(value: Vec2) -> Dir2
pub fn new_unchecked(value: Vec2) -> Dir2
Create a Dir2 from a Vec2 that is already normalized.
§Warning
value must be normalized, i.e its length must be 1.0.
Examples found in repository?
285fn get_and_draw_ray(gizmos: &mut Gizmos, time: &Time) -> RayCast2d {
286 let ray = Vec2::new(ops::cos(time.elapsed_secs()), ops::sin(time.elapsed_secs()));
287 let dist = 150. + ops::sin(0.5 * time.elapsed_secs()).abs() * 500.;
288
289 let aabb_ray = Ray2d {
290 origin: ray * 250.,
291 direction: Dir2::new_unchecked(-ray),
292 };
293 let ray_cast = RayCast2d::from_ray(aabb_ray, dist - 20.);
294
295 draw_ray(gizmos, &ray_cast);
296 ray_cast
297}Sourcepub fn new_and_length(value: Vec2) -> Result<(Dir2, f32), InvalidDirectionError>
pub fn new_and_length(value: Vec2) -> Result<(Dir2, f32), InvalidDirectionError>
Create a direction from a finite, nonzero Vec2, normalizing it and
also returning its original length.
Returns Err(InvalidDirectionError) if the length
of the given vector is zero (or very close to zero), infinite, or NaN.
Sourcepub fn from_xy(x: f32, y: f32) -> Result<Dir2, InvalidDirectionError>
pub fn from_xy(x: f32, y: f32) -> Result<Dir2, InvalidDirectionError>
Create a direction from its x and y components.
Returns Err(InvalidDirectionError) if the length
of the vector formed by the components is zero (or very close to zero), infinite, or NaN.
Examples found in repository?
352fn navigate(
353 action_state: Res<ActionState>,
354 mut auto_directional_navigator: AutoDirectionalNavigator,
355) {
356 let net_east_west = action_state
357 .pressed_actions
358 .contains(&DirectionalNavigationAction::Right) as i8
359 - action_state
360 .pressed_actions
361 .contains(&DirectionalNavigationAction::Left) as i8;
362
363 let net_north_south = action_state
364 .pressed_actions
365 .contains(&DirectionalNavigationAction::Up) as i8
366 - action_state
367 .pressed_actions
368 .contains(&DirectionalNavigationAction::Down) as i8;
369
370 // Use Dir2::from_xy to convert input to direction, then convert to CompassOctant
371 let maybe_direction = Dir2::from_xy(net_east_west as f32, net_north_south as f32)
372 .ok()
373 .map(CompassOctant::from);
374
375 if let Some(direction) = maybe_direction {
376 match auto_directional_navigator.navigate(direction) {
377 Ok(_entity) => {
378 // Successfully navigated
379 }
380 Err(_e) => {
381 // Navigation failed (no neighbor in that direction)
382 }
383 }
384 }
385}More examples
202fn setup(mut commands: Commands) {
203 commands.spawn(Camera2d);
204
205 commands.spawn((
206 Transform::from_xyz(-OFFSET_X, OFFSET_Y, 0.),
207 Shape::Circle(Circle::new(45.)),
208 DesiredVolume::Aabb,
209 Intersects::default(),
210 ));
211
212 commands.spawn((
213 Transform::from_xyz(0., OFFSET_Y, 0.),
214 Shape::Rectangle(Rectangle::new(80., 80.)),
215 Spin,
216 DesiredVolume::Circle,
217 Intersects::default(),
218 ));
219
220 commands.spawn((
221 Transform::from_xyz(OFFSET_X, OFFSET_Y, 0.),
222 Shape::Triangle(Triangle2d::new(
223 Vec2::new(-40., -40.),
224 Vec2::new(-20., 40.),
225 Vec2::new(40., 50.),
226 )),
227 Spin,
228 DesiredVolume::Aabb,
229 Intersects::default(),
230 ));
231
232 commands.spawn((
233 Transform::from_xyz(-OFFSET_X, -OFFSET_Y, 0.),
234 Shape::Line(Segment2d::from_direction_and_length(
235 Dir2::from_xy(1., 0.3).unwrap(),
236 90.,
237 )),
238 Spin,
239 DesiredVolume::Circle,
240 Intersects::default(),
241 ));
242
243 commands.spawn((
244 Transform::from_xyz(0., -OFFSET_Y, 0.),
245 Shape::Capsule(Capsule2d::new(25., 50.)),
246 Spin,
247 DesiredVolume::Aabb,
248 Intersects::default(),
249 ));
250
251 commands.spawn((
252 Transform::from_xyz(OFFSET_X, -OFFSET_Y, 0.),
253 Shape::Polygon(RegularPolygon::new(50., 6)),
254 Spin,
255 DesiredVolume::Circle,
256 Intersects::default(),
257 ));
258
259 commands.spawn((
260 Text::default(),
261 Node {
262 position_type: PositionType::Absolute,
263 top: px(12),
264 left: px(12),
265 ..default()
266 },
267 ));
268}674fn navigate(
675 action_state: Res<ActionState>,
676 parent_query: Query<&ChildOf>,
677 mut visibility_query: Query<&mut Visibility>,
678 mut auto_directional_navigator: AutoDirectionalNavigator,
679) {
680 let net_east_west = action_state
681 .pressed_actions
682 .contains(&DirectionalNavigationAction::Right) as i8
683 - action_state
684 .pressed_actions
685 .contains(&DirectionalNavigationAction::Left) as i8;
686
687 let net_north_south = action_state
688 .pressed_actions
689 .contains(&DirectionalNavigationAction::Up) as i8
690 - action_state
691 .pressed_actions
692 .contains(&DirectionalNavigationAction::Down) as i8;
693
694 // Use Dir2::from_xy to convert input to direction, then convert to CompassOctant
695 let maybe_direction = Dir2::from_xy(net_east_west as f32, net_north_south as f32)
696 .ok()
697 .map(CompassOctant::from);
698
699 // Store the previous focus in case navigation switches pages.
700 let previous_focus = auto_directional_navigator.input_focus();
701 if let Some(direction) = maybe_direction {
702 match auto_directional_navigator.navigate(direction) {
703 Ok(new_focus) => {
704 // Successfully navigated!
705
706 // If navigation switches between pages, change the visibilities of pages
707 if let Ok(current_child_of) = parent_query.get(new_focus)
708 && let Ok(mut current_page_visibility) =
709 visibility_query.get_mut(current_child_of.parent())
710 {
711 *current_page_visibility = Visibility::Inherited;
712
713 if let Some(previous_focus_entity) = previous_focus
714 && let Ok(previous_child_of) = parent_query.get(previous_focus_entity)
715 && previous_child_of.parent() != current_child_of.parent()
716 && let Ok(mut previous_page_visibility) =
717 visibility_query.get_mut(previous_child_of.parent())
718 {
719 *previous_page_visibility = Visibility::Hidden;
720 }
721 }
722 }
723 Err(_e) => {
724 // Navigation failed (no neighbor in that direction)
725 }
726 }
727 }
728}Sourcepub fn from_xy_unchecked(x: f32, y: f32) -> Dir2
pub fn from_xy_unchecked(x: f32, y: f32) -> Dir2
Create a direction from its x and y components, assuming the resulting vector is normalized.
§Warning
The vector produced from x and y must be normalized, i.e its length must be 1.0.
Sourcepub fn from_angle(angle: f32) -> Dir2
pub fn from_angle(angle: f32) -> Dir2
Creates a 2D direction containing [angle.cos(), angle.sin()].
Sourcepub fn slerp(self, rhs: Dir2, s: f32) -> Dir2
pub fn slerp(self, rhs: Dir2, s: f32) -> Dir2
Performs a spherical linear interpolation between self and rhs
based on the value s.
This corresponds to interpolating between the two directions at a constant angular velocity.
When s == 0.0, the result will be equal to self.
When s == 1.0, the result will be equal to rhs.
§Example
let dir1 = Dir2::X;
let dir2 = Dir2::Y;
let result1 = dir1.slerp(dir2, 1.0 / 3.0);
#[cfg(feature = "approx")]
assert_relative_eq!(result1, Dir2::from_xy(0.75_f32.sqrt(), 0.5).unwrap());
let result2 = dir1.slerp(dir2, 0.5);
#[cfg(feature = "approx")]
assert_relative_eq!(result2, Dir2::from_xy(0.5_f32.sqrt(), 0.5_f32.sqrt()).unwrap());Sourcepub fn rotation_to(self, other: Dir2) -> Rot2
pub fn rotation_to(self, other: Dir2) -> Rot2
Get the rotation that rotates this direction to other.
Sourcepub fn rotation_from(self, other: Dir2) -> Rot2
pub fn rotation_from(self, other: Dir2) -> Rot2
Get the rotation that rotates other to this direction.
Sourcepub fn rotation_from_x(self) -> Rot2
pub fn rotation_from_x(self) -> Rot2
Get the rotation that rotates the X-axis to this direction.
Sourcepub fn rotation_to_x(self) -> Rot2
pub fn rotation_to_x(self) -> Rot2
Get the rotation that rotates this direction to the X-axis.
Sourcepub fn rotation_from_y(self) -> Rot2
pub fn rotation_from_y(self) -> Rot2
Get the rotation that rotates the Y-axis to this direction.
Sourcepub fn rotation_to_y(self) -> Rot2
pub fn rotation_to_y(self) -> Rot2
Get the rotation that rotates this direction to the Y-axis.
Sourcepub fn fast_renormalize(self) -> Dir2
pub fn fast_renormalize(self) -> Dir2
Returns self after an approximate normalization, assuming the value is already nearly normalized.
Useful for preventing numerical error accumulation.
See Dir3::fast_renormalize for an example of when such error accumulation might occur.
Sourcepub fn perpendicular(self) -> Dir2
pub fn perpendicular(self) -> Dir2
Returns the perpendicular vector rotated to 90 degrees counterclockwise.
Trait Implementations§
Source§impl AbsDiffEq for Dir2
Available on crate features approx only.
impl AbsDiffEq for Dir2
approx only.Source§fn default_epsilon() -> f32
fn default_epsilon() -> f32
Source§fn abs_diff_eq(&self, other: &Dir2, epsilon: f32) -> bool
fn abs_diff_eq(&self, other: &Dir2, epsilon: f32) -> 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.impl Copy for Dir2
Source§impl<'de> Deserialize<'de> for Dir2
impl<'de> Deserialize<'de> for Dir2
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Dir2, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Dir2, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Ease for Dir2
impl Ease for Dir2
Source§impl From<CompassOctant> for Dir2
impl From<CompassOctant> for Dir2
Source§fn from(o: CompassOctant) -> Dir2
fn from(o: CompassOctant) -> Dir2
Source§impl From<CompassQuadrant> for Dir2
impl From<CompassQuadrant> for Dir2
Source§fn from(q: CompassQuadrant) -> Dir2
fn from(q: CompassQuadrant) -> Dir2
Source§impl From<Dir2> for CompassQuadrant
impl From<Dir2> for CompassQuadrant
Source§fn from(dir: Dir2) -> CompassQuadrant
fn from(dir: Dir2) -> CompassQuadrant
Converts a Dir2 to a CompassQuadrant in a lossy manner.
Converting back to a Dir2 is not guaranteed to yield the same value.
Source§impl From<Dir2> for CompassOctant
impl From<Dir2> for CompassOctant
Source§fn from(dir: Dir2) -> CompassOctant
fn from(dir: Dir2) -> CompassOctant
Converts a Dir2 to a CompassOctant in a lossy manner.
Converting back to a Dir2 is not guaranteed to yield the same value.
Source§impl FromReflect for Dir2
impl FromReflect for Dir2
Source§fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Dir2>
fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Dir2>
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 GetTypeRegistration for Dir2
impl GetTypeRegistration for Dir2
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<Config, Clear> GizmoPrimitive2d<Dir2> for GizmoBuffer<Config, Clear>
impl<Config, Clear> GizmoPrimitive2d<Dir2> for GizmoBuffer<Config, Clear>
Source§type Output<'a> = ()
where
GizmoBuffer<Config, Clear>: 'a
type Output<'a> = () where GizmoBuffer<Config, Clear>: 'a
primitive_2d. This is a builder to set non-default values.Source§fn primitive_2d(
&mut self,
primitive: &Dir2,
isometry: impl Into<Isometry2d>,
color: impl Into<Color>,
) -> <GizmoBuffer<Config, Clear> as GizmoPrimitive2d<Dir2>>::Output<'_>
fn primitive_2d( &mut self, primitive: &Dir2, isometry: impl Into<Isometry2d>, color: impl Into<Color>, ) -> <GizmoBuffer<Config, Clear> as GizmoPrimitive2d<Dir2>>::Output<'_>
Source§impl IntoReturn for Dir2
impl IntoReturn for Dir2
Source§impl Mul<Dir2> for Isometry2d
impl Mul<Dir2> for Isometry2d
Source§impl PartialReflect for Dir2
impl PartialReflect for Dir2
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<Dir2>) -> ReflectOwned
fn reflect_owned(self: Box<Dir2>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<Dir2>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Dir2>, ) -> 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<Dir2>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Dir2>) -> 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 Primitive2d for Dir2
Source§impl Reflect for Dir2
impl Reflect for Dir2
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<Dir2>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Dir2>) -> 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 Dir2
Available on crate features approx only.
impl RelativeEq for Dir2
approx only.Source§fn default_max_relative() -> f32
fn default_max_relative() -> f32
Source§fn relative_eq(&self, other: &Dir2, epsilon: f32, max_relative: f32) -> bool
fn relative_eq(&self, other: &Dir2, epsilon: f32, max_relative: f32) -> 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 Serialize for Dir2
impl Serialize for Dir2
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 StableInterpolate for Dir2
impl StableInterpolate for Dir2
Source§fn interpolate_stable(&self, other: &Dir2, t: f32) -> Dir2
fn interpolate_stable(&self, other: &Dir2, t: f32) -> Dir2
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 moreimpl StructuralPartialEq for Dir2
Source§impl TupleStruct for Dir2
impl TupleStruct for Dir2
Source§fn field(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
fn field(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
index as a
&dyn Reflect.Source§fn field_mut(
&mut self,
index: usize,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>
index
as a &mut dyn Reflect.Source§fn iter_fields(&self) -> TupleStructFieldIter<'_> ⓘ
fn iter_fields(&self) -> TupleStructFieldIter<'_> ⓘ
Source§fn to_dynamic_tuple_struct(
&self,
) -> Result<DynamicTupleStruct, ReflectCloneError>
fn to_dynamic_tuple_struct( &self, ) -> Result<DynamicTupleStruct, ReflectCloneError>
DynamicTupleStruct from this tuple struct. Read moreSource§fn get_represented_tuple_struct_info(&self) -> Option<&'static TupleStructInfo>
fn get_represented_tuple_struct_info(&self) -> Option<&'static TupleStructInfo>
None if TypeInfo is not available.Source§impl TypePath for Dir2
impl TypePath for Dir2
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 Dir2
Available on crate features approx only.
impl UlpsEq for Dir2
approx only.Auto Trait Implementations§
impl Freeze for Dir2
impl RefUnwindSafe for Dir2
impl Send for Dir2
impl Sync for Dir2
impl Unpin for Dir2
impl UnsafeUnpin for Dir2
impl UnwindSafe for Dir2
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.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> 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 moreSource§impl<S> GetTupleStructField for Swhere
S: TupleStruct,
impl<S> GetTupleStructField for Swhere
S: TupleStruct,
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> ⓘ
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
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,
impl<T> Reflectable for T
Source§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<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.