pub struct CollisionRotatedRect<const ID: usize = 0> { /* private fields */ }
Expand description
Rotated 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
.
Implementations§
Source§impl CollisionRotatedRect
impl CollisionRotatedRect
Sourcepub fn new(rect: Rect, rotation: Rot2) -> Self
pub fn new(rect: Rect, rotation: Rot2) -> Self
Create a new CollisionRotatedRect with ID = 0
, and given Rect, rotation. See Self::new_id
for the version with ID
.
The rotation is relative to the center of the rect. When updating, the rotation from the GlobalTransform will directly cover the isometric, instead of based on the initial rotation.
Source§impl<const ID: usize> CollisionRotatedRect<ID>
impl<const ID: usize> CollisionRotatedRect<ID>
Trait Implementations§
Source§impl<const D: usize> AsDynCollision for CollisionRotatedRect<D>
impl<const D: usize> AsDynCollision for CollisionRotatedRect<D>
fn as_dyn_collision(&self) -> Box<dyn DynCollision>
Source§impl<const ID: usize> Clone for CollisionRotatedRect<ID>
impl<const ID: usize> Clone for CollisionRotatedRect<ID>
Source§fn clone(&self) -> CollisionRotatedRect<ID>
fn clone(&self) -> CollisionRotatedRect<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 CollisionRotatedRect
impl Collision<CollisionCircle> for CollisionRotatedRect
Source§fn detect(&self, circle: &CollisionCircle) -> Relation
fn detect(&self, circle: &CollisionCircle) -> 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 CollisionCircle
impl Collision<CollisionRotatedRect> for CollisionCircle
Source§fn detect(&self, r_rect: &CollisionRotatedRect) -> Relation
fn detect(&self, r_rect: &CollisionRotatedRect) -> 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 Collision<CollisionRotatedRect> for CollisionRotatedRect
impl Collision<CollisionRotatedRect> for CollisionRotatedRect
Source§fn detect(&self, r_rect: &CollisionRotatedRect) -> Relation
fn detect(&self, r_rect: &CollisionRotatedRect) -> Relation
Return collision detection result.
Source§impl CollisionQuery for CollisionRotatedRect
impl CollisionQuery for CollisionRotatedRect
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 CollisionRotatedRect<ID>
impl<const ID: usize> Component for CollisionRotatedRect<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 CollisionRotatedRect<ID>
impl<const ID: usize> Debug for CollisionRotatedRect<ID>
Source§impl<const ID: usize> From<&CollisionRotatedRect<ID>> for CollisionRotatedRect<0>
impl<const ID: usize> From<&CollisionRotatedRect<ID>> for CollisionRotatedRect<0>
Source§fn from(value: &CollisionRotatedRect<ID>) -> Self
fn from(value: &CollisionRotatedRect<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 CollisionRotatedRect
impl From<Rect> for CollisionRotatedRect
Source§impl<const ID: usize> UpdateCollision<GlobalTransform> for CollisionRotatedRect<ID>
impl<const ID: usize> UpdateCollision<GlobalTransform> for CollisionRotatedRect<ID>
Source§impl<const ID: usize> UpdateCollision<Sprite> for CollisionRotatedRect<ID>
Available on crate feature sprite
only.
impl<const ID: usize> UpdateCollision<Sprite> for CollisionRotatedRect<ID>
Available on crate feature
sprite
only.Auto Trait Implementations§
impl<const ID: usize> Freeze for CollisionRotatedRect<ID>
impl<const ID: usize> RefUnwindSafe for CollisionRotatedRect<ID>
impl<const ID: usize> Send for CollisionRotatedRect<ID>
impl<const ID: usize> Sync for CollisionRotatedRect<ID>
impl<const ID: usize> Unpin for CollisionRotatedRect<ID>
impl<const ID: usize> UnwindSafe for CollisionRotatedRect<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