pub struct CollisionRect<const ID: usize = 0> { /* private fields */ }Expand description
Rectagle shape to be used in the QuadTreePlugin and as a Component in the ECS.
Also, implemented CollisionQuery trait to be used as boundary in the QuadTree::query.
§Panic
Rotation is not supported for CollisionRect, see CollisionRotatedRect instead.
Implementations§
Source§impl CollisionRect
impl CollisionRect
Sourcepub fn new(rect: Rect) -> Self
pub fn new(rect: Rect) -> Self
Create a new CollisionRect from a Rect with ID = 0.
The initial size is set to the size of the rect. It is used to compute the size with the GlobalTransform’s scale.
The initial center is set to the center of the rect. It is covered by the GlobalTransform’s translation during the update.
Source§impl<const ID: usize> CollisionRect<ID>
impl<const ID: usize> CollisionRect<ID>
Trait Implementations§
Source§impl<const D: usize> AsDynCollision for CollisionRect<D>
impl<const D: usize> AsDynCollision for CollisionRect<D>
fn as_dyn_collision(&self) -> Box<dyn DynCollision>
Source§impl<const ID: usize> Clone for CollisionRect<ID>
impl<const ID: usize> Clone for CollisionRect<ID>
Source§fn clone(&self) -> CollisionRect<ID>
fn clone(&self) -> CollisionRect<ID>
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Collision<CollisionCircle> for CollisionRect
impl Collision<CollisionCircle> for CollisionRect
Source§fn detect(&self, circle: &CollisionCircle) -> Relation
fn detect(&self, circle: &CollisionCircle) -> Relation
Return collision detection result.
Source§impl Collision<CollisionRect> for CollisionCircle
impl Collision<CollisionRect> for CollisionCircle
Source§fn detect(&self, rect: &CollisionRect) -> Relation
fn detect(&self, rect: &CollisionRect) -> Relation
Return collision detection result.
Source§impl Collision<CollisionRect> for CollisionRect
impl Collision<CollisionRect> for CollisionRect
Source§fn detect(&self, rect: &CollisionRect) -> Relation
fn detect(&self, rect: &CollisionRect) -> Relation
Return collision detection result.
Source§impl Collision<CollisionRect> for CollisionRotatedRect
impl Collision<CollisionRect> for CollisionRotatedRect
Source§fn detect(&self, rect: &CollisionRect) -> Relation
fn detect(&self, rect: &CollisionRect) -> Relation
Return collision detection result.
Source§impl Collision<CollisionRotatedRect> for CollisionRect
impl Collision<CollisionRotatedRect> for CollisionRect
Source§fn detect(&self, r_rect: &CollisionRotatedRect) -> Relation
fn detect(&self, r_rect: &CollisionRotatedRect) -> Relation
Return collision detection result.
Source§impl CollisionQuery for CollisionRect
impl CollisionQuery for CollisionRect
Source§fn query(&self, obj: &dyn DynCollision) -> Relation
fn query(&self, obj: &dyn DynCollision) -> Relation
Detect the relation between the boundary and objects from the tree.
Source§impl<const ID: usize> Component for CollisionRect<ID>
impl<const ID: usize> Component for CollisionRect<ID>
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
A constant indicating the storage type used for this component.
Source§type Mutability = Mutable
type Mutability = Mutable
A marker type to assist Bevy with determining if this component is
mutable, or immutable. Mutable components will have [
Component<Mutability = Mutable>],
while immutable components will instead have [Component<Mutability = Immutable>]. Read moreSource§fn register_required_components(
requiree: ComponentId,
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
inheritance_depth: u16,
recursion_check_stack: &mut Vec<ComponentId>,
)
fn register_required_components( requiree: ComponentId, components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, inheritance_depth: u16, recursion_check_stack: &mut Vec<ComponentId>, )
Registers required components.
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§fn register_component_hooks(hooks: &mut ComponentHooks)
fn register_component_hooks(hooks: &mut ComponentHooks)
👎Deprecated since 0.16.0: Use the individual hook methods instead (e.g.,
Component::on_add, etc.)Called when registering this component, allowing mutable access to its
ComponentHooks.Source§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
Maps the entities on this component using the given
EntityMapper. This is used to remap entities in contexts like scenes and entity cloning.
When deriving Component, this is populated by annotating fields containing entities with #[entities] Read moreSource§impl<const ID: usize> Debug for CollisionRect<ID>
impl<const ID: usize> Debug for CollisionRect<ID>
Source§impl<const ID: usize> From<&CollisionRect<ID>> for CollisionRect<0>
impl<const ID: usize> From<&CollisionRect<ID>> for CollisionRect<0>
Source§fn from(value: &CollisionRect<ID>) -> Self
fn from(value: &CollisionRect<ID>) -> Self
Convert the shape with ID to the shape with ID = 0.
Used to eliminate the ID in the collision detection.
Source§impl From<Rect> for CollisionRect
impl From<Rect> for CollisionRect
Source§impl<const ID: usize> UpdateCollision<GlobalTransform> for CollisionRect<ID>
impl<const ID: usize> UpdateCollision<GlobalTransform> for CollisionRect<ID>
Auto Trait Implementations§
impl<const ID: usize> Freeze for CollisionRect<ID>
impl<const ID: usize> RefUnwindSafe for CollisionRect<ID>
impl<const ID: usize> Send for CollisionRect<ID>
impl<const ID: usize> Sync for CollisionRect<ID>
impl<const ID: usize> Unpin for CollisionRect<ID>
impl<const ID: usize> UnwindSafe for CollisionRect<ID>
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
Return the
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
Mutably borrows from an owned value. Read more
Source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )
Source§fn register_required_components(
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
)
fn register_required_components( components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, )
Registers components that are required by the components in this
Bundle.Source§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
Source§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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)
Converts
&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)
Converts
&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<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect
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>
Converts
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>
Converts
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 more